编译原理上机实验关于正规式产生式编写词法分析器 本实验的目的是通过编写一个简单的函数绘图语言解释器,掌握语言翻译的基本方法,特别是语言识别的基本方法。实验的过程可以分为三个步骤:词法分析、语法分析和语义分析。 词法分析器是实验的第一步。词法分析器的目的是识别出源程序中的各个记号,即某类单词。构造词法分析器可以分为以下步骤:用正规式对模式进行描述;由正规式构造 NFA;将 NFA 转化为 DFA;将 DFA 最小化;根据最小 DFA 编写程序并进行测试。在本实验中,我们使用 C/C++ 编译器编写词法分析器。词法分析器获取源程序中的字符序列,根据构词规则将其转化为记号流,并能有效地识别错误的字符序列。 在词法分析器的构造中,我们需要设计记号。记号一般由类别和属性组成,结合函数绘图语言的特点,我们可以用以下数据结构表示记号:将函数绘图语言的记号类别进行如下划分:模式的正规式表示:用一下正规式描述词法,设 letter 和 digit 为辅助变量。构造正规式的 DFA 根据书上算法 2.2,2.4,2.5,2.6 可得到最小 DFA。 语法分析器是实验的第二步。语法分析是制导翻译的基础,语法分析器是函数绘图语言解释器的核心。我们采用递归下降子程序方法,设计文法时要求是 LL(1)文法,消除左递归和左因子。语法树的建立是语法分析的过程,就是构造一颗虚拟的分析树。在本实验中,我们使用递归下降子程序来实现语法分析。语法树记录下输入源程序的完整结构,方便语义分析。 语义制导翻译绘制图形是实验的第三步。在本实验中,我们使用函数绘图语言设计图形,设计全程变量来减少函数间参数的传递。语义函数是解释器中需要的,递归子程序中语义函数的嵌入可以在任意位置。我们使用函数绘图语言编写的测试代码,测试结果显示在屏幕上。 本实验的目的是掌握语言翻译的基本方法,通过编写一个简单的函数绘图语言解释器,掌握语言识别的基本方法。实验的过程可以分为三个步骤:词法分析、语法分析和语义分析。每个步骤都使用不同的技术和方法来实现,整个实验的结果是一个可以将源程序翻译为图形的解释器。
剩余12页未读,继续阅读
- 2到史2013-07-15有用处可以用来参考参考。
- 粉丝: 1
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Cloud和Spring Boot的微服务架构管理系统.zip
- (源码)基于物联网的自动化开门控制系统 iotsaDoorOpener.zip
- (源码)基于ROS的Buddy Robot舞蹈控制系统.zip
- (源码)基于Qt框架的图书管理系统.zip
- (源码)基于Spring Boot和Vue的高校教务管理系统.zip
- (源码)基于Quartz框架的定时任务调度系统.zip
- (源码)基于Spring Boot和Spring Security的安全管理系统.zip
- (源码)基于Spring Boot的家庭智能助理系统.zip
- Marki_20241121_192504660.jpg
- (源码)基于Spring Boot框架的仓库管理系统.zip