课件009logo 课件009网站
首 页 课 件 试 卷 教 案 毕业论文 图书软件 职教研究 期刊推介 会员中心 信息发布
首页 >> 毕业论文(设计) >> 计算机毕业论文(设计) >> 编译原理课程设计实验报告——基于语法制导翻译的表达式转换编译器
编译原理课程设计实验报告——基于语法制导翻译的表达式转换编译器
资料类别
   计算机毕业论文(设计)
课程(专业)
  编译原理
关键词
  编译原理|课程设计|语法制导翻译
适用年级
  本科
身份要求
  普通会员
金 币
  40  (金币如何获得?

文件格式

  doc
文件大小
  13K
发布时间
  2010-10-27 11:13:00
预览文件
 
下载次数
  3
发布人   凤舞九天jl
 内容简介:     一、设计目的
   通过本课程设计获得对实际编译器的构造原理、过程和方法的感性认识,全面掌握语法制导翻译技术。
   二、设计内容
   采用语法制导翻译模式设计一个包含词法分析、语法分析、符号表管理、错误处理及输出等功能模块的、由中缀表达式到后缀表达式的完整编译器。该翻译器的规格说明如下:
   start à list eof
   list à expr;list |ε
   expr à expr + term { print(‘+’) }
   | expr –term { print(‘-’) }
   | term
   term à term * factor { print(‘*’) }
   | term / factor { print(‘/’) }
   | term div factor { print(‘DIV’) }
   | term mod factor { print(‘MOD’) }
   factor à ( expr )
   | id { print( id.name ) }
   | num { print( num.value ) }
   三、设计要求
   1、使用模块化设计思想来设计该编译器;
   2、词法分析模块用于读入输入串,并将其转换成供语法分析模块使用的记号流。其中包括滤掉空格和注释、识别常数、识别标识符和关键字等功能;
   3、要求在语法分析模块中利用语法制导翻译技术完成具体的中缀表达式到后缀表达式的翻译,其中包括按前述翻译器的规格说明构建对应表达式、项、因子的非终结符expr、term和factor的函数以及检查记号是否匹配的函数;并在不匹配时调用错误处理模块;
   4、要求符号表管理模块主要完成符号表对应数据结构的具体实现功能;
   5、错误处理模块负责报告错误信息及位置,并终止分析过程;
   6、输出模块完成翻译后所得到的后缀表达式的输出。
   四、运行结果
   1、从键盘输入任意中缀表达式,如:
   4 - 5 * 6 DIV 4 + 8 MOD 2
   输出相应的后缀表达式:
   456*4DIV-82MOD+
   若键盘输入串为非中缀表达式时,如:
   4 !+* 5 - 6 DIV 4 + 8 MOD 2
   输出相应语法错误报告信息,并停止语法分析,如:
   line 1 : compiler error !
   五、提示
   1、将各功能模块设计为独立的源程序文件;
   2、建立一个全局头文件,将本设计所需要用到的系统头文件的打开、一些必要的宏定义和全局变量的声明信息放在该全局头文件中;
   3、将本设计所有文件加入一个工程文件。
   六、分析与讨论
   1、如何修改错误处理模块,使得编译器在发现错误后能跳过出错语句,继续进行语法分析;
   2、试使用手工构造和自动生成相结合的方法来完成本课程设计;
   3、仔细研读附录C有关“PL/0语言词法分析器的手工构造和自动生成”的设计内容,并通过借鉴PL/0语言词法分析器的设计方法和具体实现技术,对本课程设计的综合设计进行优化。
   基于语法制导翻译的表达式转换编译器参考源程序
   myglobal.h
   /****全局头文件myglobal.h,用于存放需加载的头文件、宏定义、全局变量****/
  
   #include ﹤stdio.h﹥
   #include ﹤string.h﹥
   #include ﹤ctype.h﹥ /* 加载字符测试函数*/
  
   #define BUFSIZE 128 /* 定义缓冲区大小*/
   #define NONE -1
   #define EOSTR ‘\0’
  
   #define NUM 256
   #define DIV 257
   #define MOD 258
   #define ID 259
   #define DONE 260
  
   int tokenval; /* 定义单词属性值*/
   int lineno;
  
   struct table{ /* 定义符号表结构*/
  
   char *lexptr;
   int token;
   };
  
   struct table symtable[];/* 定义符号表*/
  

 相关说明:
  1. 如您下载的资料不止一份,建议您注册成为本站会员。会员请登录后下载。
  2. 会员购买金币50元以下,0.7元/个,50元以上,0.5元/个。具体请看:下载与付款
  3. 会员48小时内下载同一文件,不重复扣金币。
  4. 下载后请用WinRAR WinZIP解压缩后使用。
  5. 如仍有其他下载问题,请看常见问题解答

 下载地址:

   

相关毕业论文(设计)
1 天津城市建设学院课程设计 用汇
2 操作系统课程设计—文件系统的模拟
3 东华理工大学课程设计 用VB设计简
4 《数据库原理与应用》课程设计论文
5 湖南人文科技学院数据结构课程设计
6 ATM柜员机学年论文设计(Java
7 华中科技大学数据库课程设计 图书销
8 武汉理工大学课程设计 循环彩灯控制
9 武汉理工大学《微机原理与接口技术》
10 算法与数据结构课程设计报告 堆排序
11 《Java编程》课程设计论文 日立
12 多媒体基础与应用课程设计 Show
13 唐山学院面向对象程序设计课程设计
14 XX农业大学课程设计论文 基于J2
15 java课程设计—简单拼图游戏
推荐毕业论文(设计)
1 CTI电话语音应答系统
2 IP协议及IPSec协议安全分析
3 java课程设计—拼图游戏
4 运动目标检测与提取技术研究
5 酒店管理系统
6 java课程设计—病人信息管理系统
7 房产中介管理系统
8 基于Ajax的教学工作量核算系统
9 企业工资管理系统
10 汽车销售管理系统
11 在线英语自学系统——知识库管理的设
12 毕业(论文)设计 计算机网络实验室

网友评论(点击发表评论
序号评论人评论内容时间


设为首页  加入收藏  下载与付款  上传课件  资料征集  论坛与信息发布  期刊杂志推介  免责声明  常见问题   分类说明  联系本站  会员登录
课件009教育资源网 版权所有