编译原理实验讲义2014-3

编译原理实验讲义2014-3

ID:14389873

大小:80.00 KB

页数:13页

时间:2018-07-28

编译原理实验讲义2014-3_第1页
编译原理实验讲义2014-3_第2页
编译原理实验讲义2014-3_第3页
编译原理实验讲义2014-3_第4页
编译原理实验讲义2014-3_第5页
资源描述:

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

1、《编译原理》课程设计讲义黑龙江大学软件学院《编译原理》课程设计讲义一、开设本课程设计的目的“编译原理”课程是计算机专业中一门重要的专业理论课,是一门理论性和实践性都很强的课程。为配合《编译原理》课程的教学,培养学生的实际工作能力,加深对课堂教学内容的理解,通过设计一个小型编译器,更深刻地领会其基本概念、基本工作原理和实现方法,从而具有初步开发系统软件和应用软件的实际能力,特开设此课程设计。二、课程设计的题目用高级程序设计语言实现《小型编译器的设计与实现》。三、课程设计的主要内容通过小型编译器的设计与实现,使学生系统地掌握编译程序的总体结构以及词法分析程序、语法

2、分析程序、语义分析程序、代码生成程序;掌握结构化设计方法;了解大型软件的设计技术。四、课程设计的具体内容和要求1掌握PL/0语言源程序的结构及构成规则。2掌握形式语言与自动机的概念,能构造识别相应符号串的自动机。3掌握编译程序的词法分析程序的构造,能改编PL/O编译程序的总控程序和词法分析程序。4掌握编译程序中语法分析程序的构造,能改编PL/O编译程序总控程序和语法分析程序。5掌握LL(1)、LR、算符优先等语法分析技术,构造相应的语法分析程序。6掌握中间语言的生成算法,并构造将表达式翻译成逆波兰式的程序。7掌握语法制导生成四元式的算法,并构造将表达式翻

3、译成四元式程序8掌握编译程序的代码生成程序,并改编PL/0的总控控制和代码生成程序。本课程在词法分析阶段、语法分析阶段、语义分析及代码生成阶段均安排了上机实践的内容,按以下的基本实践内容的要求改编总控程序和相应阶段的程序,达到学以致用的目的。学生在对PL/O语言某一扫描的分析程序或主程序进行修改或护充时,必须保存完整的源程序正本,只需在相应源文件副本上进行修改。然后再重新对修改的程序进行编译,得到新的源文件和新的可执行文件,并用来编译用户编制的含有增加或修改成分的新源程序。实验一用PL/O语言编写用户源程序(一)实验目的:1了解运行TURBOPASCA

4、L系统对计算机软硬件环境的要求。2熟悉PASCAL系统中的基本语句及文件类型的使用方法。3掌握PL/O语言源程序的结构及构成规则。(二)实验内容与步骤1用PL/0语言编写程序:建立和访问正文文件2用PL/O语言编写能打印如下图形的程序*************************3用PL/O语言编写求3~100之间全部素数的程序。4将一正数倒置。5对任意给定的整数,列出其二进制、八进制、十六进制表示形式。6深刻理解源程序、目标程序、编译程序的概念。7用EBNF描述PL/O语言的程序结构及构成规则。注:PL/0语言程序(自行定义的源

5、语言)汇编语言程序(你所编译的结果——目标程序)编译器实验二构造识别符号串的自动机(一)实验目的:1掌握形式语言与自动机的概念2了解正规集及有穷自动机的关系3能构造识别相应符号串的自动机4能构造词法分析程序所识别的各类单词的自动机(二)实验步骤及内容:1用高级语言编写程序:该程序能接受所有的标识符。2用高级语言编写程序:该程序能接受所有的常数(整数和定点小数)。3用高级语言编写程序:该程序能接受PL/0的所有保留字。4用高级语言编写程序:该程序能接受PL/0的所有界符、运算符。(三)有关说明:1高级及语言可选择C语言实现。

6、2以上各程序要求:对输入的任意符号串能给出接受与否的识别信息。实验三词法分析程序的构造(一)实验目的1掌握PL/O编译程序的使用方法2掌握PL/O编译程序的总体结构3掌握PL/O编译程序的词法分析程序4改编总控程序和词法分析程序(二)实验内容及步骤1单词的分类:可将所有标识符归为一类;将常数归为另一类:保留字、界符、运算符符则可采取一词一类。2符号表的建立可事先建立一保留字表,以备识别保留字时进行查询。变量名表及常数表则在词法分析过程中建立。3单词串的输出形式:所输出的每一单词,均按形如(CLASS,VALUE)的二元式编码

7、。对于变量标识符和常数,CLASS字段为相应的类别码,VALUE字段是该标识符、常数在其符号表中登记项的序号(要求在变量名表登记项中存放该标识符的字符串,其最大长度为四个字符;常数表登记项中则存放该常数(整数)的二进制形式)。对于保留字、界符和运算符,由于采用一词一类的编码方式,所以仅需在二元式的CLASS字段上放置相应的单词的类别码,VALUE字段则为“空”。(或:为便于查看由词法分析程序输出的单词串也可以在CLASS字段上放置单词符号串本身)。4编写上述词法分析程序(三)有关说明:1该词法分析程序只能识别用PL/O语言书写的简单程序。2也可改编

8、PL/O的编译程序中的词

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

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

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