编译原理上机实验.docx

编译原理上机实验.docx

ID:57713342

大小:118.24 KB

页数:7页

时间:2020-09-01

编译原理上机实验.docx_第1页
编译原理上机实验.docx_第2页
编译原理上机实验.docx_第3页
编译原理上机实验.docx_第4页
编译原理上机实验.docx_第5页
资源描述:

《编译原理上机实验.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验1简单的词法分析子程序【实验目的】l理解词法分析在编译程序中的作用l初步了解和掌握词法分析程序的实现方法和技术【实验内容】1.编写程序,输入一串字符,判断该字符串是否为合法标识符或合法整型常量。2.无符号数的算术四则运算中的各类单词的识别。输入:由无符号数、+、-、*、/、(、)构成的算术表达式。输出:对识别出的每一单词均单行输出。如,输入:8*2.5-1.0e2则,输出:8*2.5-1.0e2描述无符号数的确定的、最小化的状态转换图如图1所示。其中编号1,2和6为终态,分别代表整数、小数和科学计数的识别结束状态。图1文法G[<无符号数>]的状态转换图实验2词法分析程序设计【

2、实验目的】l理解词法分析中的正规式和自动机l掌握词法分析程序的实现方法和技术【实验内容】某一高级程序设计语言的部分语言子集定义如下:(1)关键字:forifthenelsewhiledo(所有关键字都是小写)(2)运算符和分隔符:+-*/:=<><=<>>===;()#(3)其他标识符(ID)和整型常数(NUM),通过以下正规式定义:ID=letter(letter|digit)*NUM=digit·digit*(4)空格由空白、制表符和换行符组成。空格一般用来分隔ID、NUM、运算符、分隔符和关键字,词法分析阶段通常被忽略。各种词法单元对应的词法记号如下:词法单元词法记号词法单

3、元词法记号词法单元词法记号for1+13<=22if2-14<>23then3*15>=24else4/16==25while5:17;26do6=18(27ID10<20)28NUM11>21#0编写程序,实现词法分析功能。输入:源程序输出:二元组(词法记号,属性值/其在符号表中的位置)构成的序列。例如:输入源程序x=5;if(x>0)thenx=2*x+1/3;elsex=2/x;#(#表示输入结束)经词法分析后输出如下序列:(10,x)(18,=)(11,5)(26,;)(2,if)(27,()…说明:关键字表的初值。关键字作为特殊标识符处理,把它们预先安排在一张表格中(称

4、为关键字表),当扫描程序识别出标识符,查关键字表。如能查到匹配的单词,则该单词的关键字,否则为一般标识符。关键字表为一个字符串数组,其描述如下:char*keyword[6]={”for”,”if”,”then”,”else”,”while”,”do”};图2-1主程序示意图是否文件结束?忽略空格变量初始化返回是否字母拼字符串数字其他运算符、符号拼数界符等符号是否关键字?否报错对不同符号给出相应的syn值syn=10syn为对应关键字的单词种别码(词法记号)是syn=1111返回图2-2扫描子程序主要部分流程图实验3语法分析程序设计【实验目的】l理解语法分析在编译程序中的作用l在

5、词法分析的基础上进行语法检查和结构分析l掌握语法分析程序的实现方法和技术【实验内容】某一高级程序设计语言的部分语法规则用扩充的BNF表示如下:⑴<程序>::=begin<语句串>end⑵<语句串>::=<语句>{;<语句>}⑶<语句>::=<赋值语句>⑷<赋值语句>::=ID=<表达式>⑸<表达式>::=<项>{+<项>

6、-<项>}⑹<项>::=<因子>{*<因子>

7、/<因子>}⑺<因子>::=ID

8、NUM

9、(<表达式>)要求:输入单词串,以“#”结束,如果是文法正确的句子,则输出“success”,否则输出“error”。例如:输入begina=9;x=2*3;b=a+xend

10、#输出success!输入x=a+b*cend#输出error!实验4语义分析及中间代码生成程序设计【实验目的】l理解语义分析及中间代码生成在编译程序中的作用l在语法分析的基础上进行语义检查并生成中间代码l加深对语法制导翻译的理解l掌握将语法分析所识别的语法成分变换为中间代码的语义翻译方法【实验内容】某一高级程序设计语言的部分词法、语法规则同以上实验,在实验3语法分析程序基础上,设计和实现该语言的语义分析程序。要求:输入是一段语句串,输出为三地址指令形式的四元式代码例如:对于语句串Begina=2+3*4;x=(a+b)/cend#输出的三地址码为:t1=3*4t2=2+t1a=

11、t2t3=a+bt4=t3/cx=t4

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。