




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
前期报告 第一篇:前期报告河北工业大学城市学院本科毕业设计(论文)前期报告河北工业大学城市学院本科毕业设计(论文)前期报告毕业设计(论文)题目:高级语言编译系统前端程序的开发专业:计算机科学与技术学生信息:学号:075851姓名:柏少乾班级:网络C072班指导教师信息:姓名:吴清职称:教授报告提交日期:2011年03月17日1、课题意义对源程序的词法分析开始到中间代码生成,编译程序所完成的处理工作只依赖于源语言,而与运行目标程序的计算机(或目标语言)无关,通常将这些环节统称为编译程序的前端(FrontEnd)。代码优化和目标代码生成,一般只依赖于目标语言,通常将它称为编译程序的后端(BackEnd)。如果能将编译程序严格划分为前端和后端两个相对独立的部分,并以中间代码作为其间信息交流的载体这样的模式来构造编译程序,将会给编译程序的开发和维护带来许多好处。例如在构建支持不同硬件平台的编译程序时,只需以编译前端生成的中间代码为接口开发不同硬件平台下的编译后端,以实现代码最大程度的复用。本次课题主要提供的是一个适合于教学的编译器前端系统的软件雏形和演示程序。要完成具有词法扫描、语法和语义分析、符号表管理等模块的编译器前端的编程工作,即将字符串形式的源程序翻译成四元式形式的中间代码。2、国内外研究现状上世纪50年代,NoamChomsky开始了他对自然语言结构的研究。他的发现最终使得编译器的结构异常简单,甚至还带有了一些自动化。Chomsky的研究导致了根据语言文法的难易程度以及识别它们所需要的算法来对语言分类。正如现在所称的Chomsky架构(ChomskyHierarchy),它包括了文法的四个层次:0型文法、1型文法、2型文法和3型文法,且其中的每一个都是其前者的特殊情况。2型文法(或上下文无关文法)被证明是程序设计语言中最有用的,而且今天它已代表着程序设计语言结构的标准方式。分析问题(parsingproblem,用于上下文无关文法识别的有效算法)的研究是在60年代和70年代,它相当完善的解决了这个问题。现在它已是编译原理中的一个标准部分。有限状态自动机(FiniteAutomaton)和正则表达式(RegularExpression)同上下文无关文法紧密相关,它们与Chomsky的3型文法相对应。对它们的研究与Chomsky的研究几乎同时开始,并且引出了表示程序设计语言的单词的符号方式。当分析问题变得好懂起来时,人们就在开发程序上花费了很大的功夫来研究这一部分的编译器自动构造。这些程序最初被称为编译器的编译器(Compiler-compiler),但更确切地应称为分析程序生成器(ParserGenerator),这是因为它们仅仅能够自动处理编译的一部分。这些程序中最著名的是Yacc(YetAnotherCompiler-compiler),它是由SteveJohnson在1975年为Unix系统编写的。类似的,有限状态自动机的研究也发展了一种称为扫描程序生成器(ScannerGenerator)的工具,Lex(与Yacc同时,由MikeLesk为Unix系统开发)是这其中的佼佼者。3、课题研究的内容及重点解决的问题(1)词法分析程序编译程序的整个工作过程,是从接受字符串形式的源程序文件作为输入,并对此输入进行词法分析开始的。词法分析的任务就在于依次扫视输入串中的各个字符,并从其中识别出一系列具有独立意义的基本语法单位——单词(token,也称为记号)。作为词法分析的结果,通常是把从源程序中所识别出的各个单词的词文(lexeme)转换为某种内部表示,并依次进行输出。而此种内部编码形式的单词串,将作为语法分析程序的输入和编译程序后续相关工作阶段的处理对象。解决的问题有两方面,其一是如何描述一个语言中各种单词的结构,另一个是通过什么途径来识别源程序中的各个单词。(2)语法分析程序语法分析是编译过程的一个逻辑阶段。语法分析程序以词法分析程序所输出的用内部编码格式表示的单词序列作为输入,其任务是分析源程序的结构,判别它是否为相应程序设计语言中的一个合法程序。为了完成这种分析,一般的途径是由语法分析程序试着为其构造一棵完整的语法树。如果这种尝试成功,就表明该输入串在结构上的确是一个合乎语法的程序,否则,源程序中就必然存在语法错误。产生语法树的方法,可大致分为两大类:自顶向下和自底向上。(3)语义分析程序语义分析是编译过程的一个逻辑阶段。语义分析规定各语法成分的含义和用途,以及应进行的运算和操作。在进行语义分析的过程中,还应进行相应的语义检查,以保证源程序在语义上的正确性。在其过程中,语义分析程序也需要进行频繁的造表和查表工作。由于对程序语言的语义至今还没有找到一种公认的方法来系统地描述它们。在多数情况下,人们不得不采用一种半机械化的方

邻家****文章
实名认证
内容提供者


最近下载