



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编译原理实验报告编译原理实验报告专业:计算机科学与技术班级:学号:姓名:0000年00月00日 前言 “编译原理”是一门研究设计和构造编译程序原理和方法的课程,是计算机各专业的一门重要专业基础课。编译原理这门课程蕴含着计算机学科中解决问题的思路、形式化问题和解决问题的方法,对应用软件和系统软件的设计与开发有一定的启发和指导作用。编译程序构造的原理和技术在软件工程、逆向工程、软件再工程、语言转换及其他领域中都有着广泛的应用。通过本课程的实验教学,使学生加深对编译系统的结构、工作流程及编译程序各组成部分设计原理的理解,使他们能够掌握和应用常用的编译技术和方法,为今后从事应用软件和系统软件的开发打下
2、一定的理论和实践基础。编译原理实验指导书围绕着实验教学目标,详细阐述了各实验的原理和步骤。希望同学们能够充分利用实验条件,认真完成实验,从实验中得到应有的锻炼和培养。 实验要求 为了顺利完成编译原理课程实验,学生应做到:(1)熟练掌握一种高级程序设计语言。(2)实验前,认真学习教材以及实验指导书的相关内容,提前做好实验准备。(3)每次实验先分析后编程,在实验报告中应写明自己的编程思路和设计流程。(4)实验结束一周后提交实验报告。实验报告内容应包括:实验目的、实验内容、设计思路和流程框图,源程序(含注释)清单、测试结果以及实验总结。(5)遵守机房纪律,服从辅导教师指挥,爱护实验设备。实验的验收将
3、分为两个部分。第一部分是上机操作,随机抽查程序运行和即时提问;第二部分是提交书面的实验报告。此外杜绝抄袭现象,一经发现雷同,双方成绩均以0分计算。 目录 实验一词法分析程序设计1 实验二递归下降语法分析程序设计7 实验1 词法分析程序设计 【开发语言及实现平台或实验环境】c/c+/c#microsoft visual studio 6.0/ microsoft visual studio .net 2005-2008【实验目的】(1)理解词法分析在编译程序中的作用(2)加深对有穷自动机模型的理解(3)掌握词法分析程序的实现方法和技术【实验内容】对一个简单语言的子集编制一个一遍扫描的词法分析程序
4、。【实验要求】(1)待分析的简单语言的词法1) 关键字begin if then while do end2) 运算符和界符:= + - * / = = ; ( ) #3) 其他单词是标识符(id)和整形常数(num),通过以下正规式定义:id=letter(letter|digit)*num=digitdigit*4) 空格由空白、制表符和换行符组成。空格一般用来分隔id、num、运算符、界符和关键字,词法分析阶段通常被忽略。(3)词法分析程序的功能输入:所给文法的源程序字符串输出:二元组(syn,token或sum)构成的序列。syn为单词种别码;token为存放的单词自身字符串;sum为
5、整形常数。 例如:对源程序begin x:=9;if x0 then x:=2*x+1/3;end# 经词法分析后输出如下序列:(1,begin)(10,x) (18,:=) (11,9) (26,;) (2,if) 【实验步骤】(1)根据图1.1构建主程序框架图1.1 词法分析主程序示意图主代码:void main()p=0;row=1;coutdocin.get(ch);progp+=ch;while(ch!=#);p=0;doscaner();switch(syn)case 11: coutcase -1: coutcase -2: row=row+;break;default: cou
6、t while (syn!=0);getchar();getchar();(2)关键字表置初值关键字作为特殊标识符处理,把它们预先安排在一张表格中(关键字表),当扫描程序识别标识符时,查关键字表。如能查到匹配的单词,则为关键字,否则为一般标识符。(3)编写扫描子程序void scaner()for(n=0;nch=progp+; /读下一个字符送入chwhile(ch= ) /如果为空格,读下一字符ch=progp;p+;if(ch=a&ch=a&chm=0;while(ch=a&ch=a&chtokenm+=ch; /当前字符送入tokench=progp+; /读下一个字符送入chtoke
7、nm+=0; /单词结束p-;syn=10;for(n=0;nif(!strcmp(token,rwtabn)syn=n+1;break;else if(ch=0&chsum=0;while(ch=0&chsum=sum*10+ch-0; /ch送入sum,并更新数字 ch=progp+; /读下一个字符送入ch p-;syn=11;if(sum32767)syn=-1; /错误else switch(ch)/其他字符情况casech=progp+;if(ch=)syn=21;tokenm+=ch;else if(ch=)syn=22;tokenm+=ch;elsesyn=23;p-;brea
8、k;case:m=0;tokenm+=ch;ch=progp+;if(ch=)syn=24;tokenm+=ch;elsesyn=20;p-;break;case:m=0;tokenm+=ch;ch=progp+;if(ch=) syn=18; tokenm+=ch;elsesyn=17;p-;break;case*:syn=13;token0=ch;break;case/:syn=14;token0=ch;break;case+:syn=15;token0=ch;break;case-:syn=16;token0=ch;break;case=:syn=25;token0=ch;break;c
9、ase;:syn=26;token0=ch;break;case(:syn=27;token0=ch;break;case):syn=28;token0=ch;break;case#:syn=0;token0=ch;break;casen:syn=-2;break;default: syn=-1;break;(4)调试程序,验证输出结果。输入:begin x:=9;if x0 then x:=2*x+1/3;end# 输出: 【思考题】 (1)在编程过程中遇到了哪些问题,你是如何解决的。(2)源程序若存在注释,如何实现词法分析,在现有程序基础上进行扩充。【参考文献】1.胡伦骏、徐兰芳等,编译原
10、理(第2版),电子工业出版社,246,2005.72.王雷、刘志成等,编译原理课程设计,机械工业出版社,138,2005.3 实验2 递归下降语法分析程序设计 【开发语言及实现平台或实验环境】c+microsoft visual studio 2010【实验目的】(1)理解语法分析在编译程序中的作用,以及它与词法分析程序的关系(2)加深对递归下降语法分析原理的理解(3)掌握递归下降语法分析的实现方法【实验内容】编制一个递归下降分析程序,实现对词法分析程序提供的单词序列的语法检查和结构分析。【实验要求】(1)待分析的简单语言的词法同实验1(2)待分析的简单语言的语法用扩充的bnf表示如下:1):=beginend2) :=;3) :=4) :=id:=5) :=+|-6) :=*|/7) :=id|num|()(3)语法分析程序的功能输入单词串以”#”结束,如果是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 本溪市明山区2024-2025学年小升初复习数学模拟试卷含解析
- 云南旅游职业学院《混凝土和砌体结构设计》2023-2024学年第二学期期末试卷
- 广西中远职业学院《形体训练与健美》2023-2024学年第一学期期末试卷
- 宁波财经学院《趣味逻辑学与人生智慧》2023-2024学年第二学期期末试卷
- 兴义民族师范学院《数字系统设计》2023-2024学年第二学期期末试卷
- 渤海理工职业学院《外国电影史》2023-2024学年第二学期期末试卷
- 柱上式无功补偿装置项目风险评估报告
- 广州科技贸易职业学院《心理学核心理论专题研究》2023-2024学年第一学期期末试卷
- 贵州体育职业学院《童装结构与工艺设计》2023-2024学年第二学期期末试卷
- 右江民族医学院《英语学术文献阅读》2023-2024学年第二学期期末试卷
- 幽门螺杆菌检测-课件
- 儿童抑郁量表CDI
- 锤击钢筋混凝土预制桩综合施工记录
- 心电监护操作评分标准
- GB∕T 37244-2018 质子交换膜燃料电池汽车用燃料 氢气
- JJG 700 -2016气相色谱仪检定规程-(高清现行)
- API SPEC 5DP-2020钻杆规范
- (完整版)有机太阳能电池课件2
- 电梯使用单位电梯使用和运行安全管理制度
- 新中初中课程建设汇报材料
- 莲中器乐演奏活动方案
评论
0/150
提交评论