编译原理结课论文设计.doc

编译原理结课论文设计.doc

ID:57380711

大小:146.00 KB

页数:18页

时间:2020-08-14

编译原理结课论文设计.doc_第1页
编译原理结课论文设计.doc_第2页
编译原理结课论文设计.doc_第3页
编译原理结课论文设计.doc_第4页
编译原理结课论文设计.doc_第5页
资源描述:

《编译原理结课论文设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、目录1.绪论11.1概述11.2设计目的11.3设计题目及要求12.背景知识22.1语法制导翻译方法22.2属性文法22.3几种常见的中间语言32.4四元式的简介33.设计过程43.1设计思路43.2实现54.上机调试运行54.1代码调试界面及结果64.2执行及结果65.注意事项76.总结8参考文献9附录101.绪论1.1概述“编译原理”是一门研究设计和构造编译程序原理课程,是计算机各专业的一门重要的专业课。编译原理这门课程蕴含着计算机学科中解决问题的思路和解决问题的方法,对应用软件和系统软件的设计与开发有一定的启发和指

2、导作用。“编译原理”是一门实践性很强的课程,要掌握这门课程中的思想,就必须要把所学到的知识应用于实践当中。而课程设计是将理论与实践相互联系的一种重要方式。1.2设计目的课程设计是对学生的一种全面综合素质训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,设计题中的问题比平时的练习题要复杂很多,但也更接近实际。编译原理这门课程安排的课程设计的目的是旨在要求学生进一步巩固课堂上所学的理论知识,深化理解和灵活掌握教学容,选择合适的数据逻辑结构解决问题,然后编制算法和程序完成设计要求,从而进一步培养学生独立思考

3、问题、分析问题、解决实际问题的能力。1.3设计题目及要求基于这个学期所学习的容以及自己所掌握到的知识,本次我所要设计的题目是赋值语句的四元式生成。要求:(1)设计语法制导生成赋值语句的四元式的算法;(2)编写代码并上机调试运行通过;(3)输入一赋值语句;(4)输出相应的表达式的四元式;2.背景知识2.1语法制导翻译方法语法制导翻译的方法就是为每个产生式配上一个翻译子程序(称语义动作或语义子程序),并在语法分析的同时执行这些子程序。语义动作是为产生式赋予具体意义的手段,它一方面指出了一个产生式所产生的符号串的意义,另一方面

4、又按照这种意义规定了生成某种中间代码应做哪些基本动作。在语法分析的过程中,当一个产生式获得匹配(对于自顶向下分析)或用于规约(对于自底向上分析)时,此产生式相应的语义子程序就进入工作,完成既定的翻译任务。语法制导翻译分为自底向上语法制导翻译和自顶向下语法制导翻译。2.2属性文法属性文法是编译技术中用来说明程序语言语义的工具,也是当前实际应用中比较流行的一种语义描述方法。属性是指与文法符号的类型和值等有关的一些信息,在编译中用属性描述处理对象的特征。属性文法是一种适用于定义语义的特殊文法,即在语言的文法中增加了属性的文法,

5、它将文法符号的语义以“属性”的形式附加到各个文法的符号上,再根据产生式所包含的含义,给出每个文法符号属性的求值规则,从而形成一种带有语义属性的上下文无关文法,即属性文法。属性文法也是一种翻译文法,属性有助于更详细的指定文法中的代码生成动作。2.3几种常见的中间语言(1)抽象语法树(2)逆波兰表示法(3)三地址代码在编译程序中,三地址代码语言的具体实现通常有三种表示方法:四元式、三元式和间接三元式。2.4四元式的简介四元式是具有四个域的记录(即结构体)结构,这四个域为:(op,arg1,arg2,result)其中,op为

6、运算符,arg1、arg2及result为指针,他们可指向有关名字在符号表中的登记项或一临时变量(也可空缺)。常用的三地址语句与相应的四元式对应如下:X=yopz对应(op,y,z,x)X=-y对应(uminus,y,_,x)X=y对应(=,y,_,x)Parx1对应(par,x1,_,_)Callp对应(call,_,_,p)GotoL对应(j,_,_,L)IfxropygotoL对应(jrop,x,y,L)注意规则:如果op是一个算术或逻辑运算符,则result总是一个新引进的临时变量,它用来存放运算结果。四元式出现

7、的顺序与表达式计值的顺序是一致的,四元式之间的联系是通过临时变量实现的。四元式由于其表示更接近程序设计的习惯而成为一种普遍采用的中间代码形式。3.设计过程3.1设计思路(1)定义部分:定义常量、变量、数据结构。(2)初始化:设立算符优先分析表、初始化变量空间(包括堆栈、结构体、数组、临时变量等(3)控制部分:从键盘输入一个表达式符号串;(4)利用算符优先分析算法进行表达式处理:根据算符优先分析表对表达式符号串进行堆栈(或其他)操作,输出分析结果,如果遇到错误则显示错误信息。3.2实现本设计主要通过C语言来实现。C语言的语

8、法结构类型很多,从实习的角度可分为以下六类:⑴明语句。如各种数据类型说明(整型、实型、布尔型、字符型、复型、双精度型、枚举、子界、数组、集合、文件、记录、指针等),各种数据空间特性说明(如公用语句,共名语句,等价语句等),初值语句。实习重点是存空间的分配方法。⑵序结构语句。典型代表是各类表达式(如算术表达式、布尔表达

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

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

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