文档详情

编译原理读书工程报告.doc

发布:2016-12-13约1.18万字共29页下载文档
文本预览下载声明
编译原理读书工程报告黑龙江大学 “编译原理课程设计”读书报告 学院 年级 专业 学号 姓名 报告日期 成绩 软件学院软件工程 黑龙江大学计算机科学技术学院 黑龙江大学软件学院 一、开发环境简介 开发平台:Microsoft visual C++ 6.0. 开发环境:是指在基本硬件和数字软件的基础上,为支持系统软件和应用软件的工程化开发和维护儿使用的一组软件,简称SDE。它有软件工具和环境继承机制构成,前者用以支持软件开发的相关过程、活动和人物,后者为工具集成和软件的开发、维护及管理提供统一的支持。 1.支持开发完备模型 2.可视化 3.灵活控制 二、基本理论阐述、当前理论或实践应用现状 《编译原理》理论和实践并重,叙述严谨、简明,富有启发性,且内容深入浅出,便于自学。《编译原理》不仅可以作为高等院校相关专业的教材,也可以作为计算机专业人员的参考用书。 编译器的构造工具是根据用户输入的语言的文法,编译器的构造工具可以生成程序来处理以用户输入的文法书写的文本。随着计算机应用范围的扩大,在软件自动生成,文档处理,特定专业的语言等领域,编译器的构造工具这一技术显得越来越重要. 在分析语法成分时比较方便直观,更便于操作。运行程序的同时不断修正改进程序,直至的到最优源程序。 三、小型编译器系统架构 它是一个编译器的架构.通俗的来说,它实现了一个库,在这个库上,可以很容易的实现不同的编译相关的程序,当然,编译器自然是其中最重要的一个. 当然其他像编译时间的代码分析也是很容易实现的。构造识别符号串的自动机、词法分析程序的构造、语法分析程序的构造、中间语言的生成程序、编译程序的代码生成 四、小型编译器主要功能模块与实现 词法分析 1 (1)功能介绍 词法分析(英语:lexical analysis)是计算机科学中将字符序列转换为单词(Token) 序列的过程。进行词法分析的程序或者函数叫作词法分析器(Lexical analyzer,简称Lexer),也叫扫描器(Scanner)。词法分析器一般以函数的形式存在,供语法分析器调用。词法分析阶段是编译过程的第一个阶段,是编译的基础。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用Lex等工具自动生成。 单词:这里的单词是一个字符串,是构成源代码的最小单位。从输入字符流中生成单词的过程叫作单词化(Tokenization),在这个过程中,词法分析器还会对单词进行分类。词法分析器通常不会关心单词之间的关系(属于语法分析的范畴),举例来说:词法分析器能够将括号识别为单词,但并不保证括号是否匹配。针对如下C语言表达式: 单词经常使用正则表达式进行定义,像lex一类的词法分析器生成器就支持使用正则表达式。语法分析器读取输入字符流、从中识别出语素、最后生成不同类型的单词。其间一旦发现无效单词,便会报错 扫描器词法分析的第一阶段即扫描器,通常基于有限状态自动机。扫描器能够识别其所能处理的单词中可能包含的所有字符序列(单个这样的字符序列即前面所说的“语素”)。例如“整数”单词可以包含所有数字字符序列。很多情况下,根据第一个非空白字符便可以推导出该单词的类型,于是便可逐个处理之后的字符,直到出现不属于该类型单词字符集中的字符(即最长一致原则)。 (2)相关理论 从源程序中依次读入字符并解析。与关键字,运算符,界符,结束符等进行比较,得出其中的关键字,运算符等并存入数组中。 (3)算法描述 写入词法程序在C盘中,判断是否是标示符,保留字,运算符,数字。如果是关 2 键字则直接把信息存入四元组,如果不是则是标示符,把相关信息存入四元组,如果是数字则跳转到数字拼接函数,拼接结束后把信息存入四元组,如果是运算符,界符则直接把信息存入四元组, 最后把标示符,和常数信息写入标示符表,和常数表的相关文件。 (4)程序流程图 3 (5) (5)测试用例与实验结果 (6) 五、读书工程心得总结 1.收获:通过本次试验,我对编译原理理论有了更深的理解掌握了此法分析,变异程序工作的基本构成及各个阶段的基本任务,熟悉编译程序钱应该先建立程序流程图,建立基本框架,分开编译各个部分程序,让复杂的程序简单化,调理清晰,对该里路实现中的应用有了很深的理解,熟悉了其中的算法; 2.不足:部分老师要求的功能没有实现,文件处理部分的实现还有欠缺,让我意识到哪方面应该加强, 六、参考文献 书目名称:编译原理(第2版) 原书名: Compilers:Principles,Techniques,and Tools原出版社: Pearson Education 作者: [美]Alfred V.Aho,Ravi Sethi,Jeffr
显示全部
相似文档