实验二算术表达式解释器于龙斌

实验二算术表达式解释器于龙斌

ID:22287216

大小:138.00 KB

页数:6页

时间:2018-10-28

实验二算术表达式解释器于龙斌_第1页
实验二算术表达式解释器于龙斌_第2页
实验二算术表达式解释器于龙斌_第3页
实验二算术表达式解释器于龙斌_第4页
实验二算术表达式解释器于龙斌_第5页
资源描述:

《实验二算术表达式解释器于龙斌》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验二算数表达式解释器的设计与实现一.实验0的1、了解并掌握自顶向下语法分析的思想,熟悉递归下降子程序分析法。2、了解并掌握语法制导翻译法,掌握采用递归子程序进行语义分析的方法。二.实验内容用适当的程序没计语言编制一个算术表达式的解释器,并完成相应的调试,要求该程序能够读入一个算术表达式,运行后给出计算的结果。1.算术表达式的解释过程(参考)第一步:首先进行词法分析(即使用实验一编制的词法分析器),提取最终得到的结果一一单词符号序列,将其作为语法和语义分析的输入:第二步:调用算术表达式的语法分析器。本次实验要求采用递归下降子程序法编写语法分析器,并且此语法分析器屮包含对语义的分析。分析

2、结束后,显示表达式的计算结果。2.使用的文法E->TE'E’->+TE9lel-TE9T->FT,T,->*Fr

3、e

4、/TE,F->iI(E)其中i可为整数(简单点的),如果考虑周全的话,可収实数类型(需要看一下自己编制的同法分析器是否对实数进行了识别)。该文法的递归下降子程序参见课堂笔记(单纯语法分析部分在第四章介绍过,结合语义分析的部分代码在第六章介绍过)。3.有能力的同学在完成加乘算术表达式的计算后,试扩充2中定义的文法,增加识别减法和除法的规则,并修改对应的程序,使之能够识别并计算加减乘除叫则运算式。三.实验要求1.程序完成后,由实验老师检查代码,验证程序的功能。如:输入(2+

5、3)*10对文法进行扩充的,输入(12-8)*20/5+4等等。2.实验二共4学时,实验完成后,提交一份实验报告,写清实验的目的、内容、思路、设计及实现的过程(包括关键的代码,不宜多),以及实验的结果。实验类型为设计型实验。四.程序设计流程图语法分析器遵循自上而下语法分析的基木算法。芄核心思想是将每个非终结符组织成函数的形式,并在每个函数屮依据相应的产生式右部的符号序列,对读进的符号串进行匹配。如果在产生式右部遇到终结符,那么新读进的符号必须与该终结符一致;如果遇到非终结符,实验二算数表达式解释器的设计与实现一.实验0的1、了解并掌握自顶向下语法分析的思想,熟悉递归下降子程序分析法。2

6、、了解并掌握语法制导翻译法,掌握采用递归子程序进行语义分析的方法。二.实验内容用适当的程序没计语言编制一个算术表达式的解释器,并完成相应的调试,要求该程序能够读入一个算术表达式,运行后给出计算的结果。1.算术表达式的解释过程(参考)第一步:首先进行词法分析(即使用实验一编制的词法分析器),提取最终得到的结果一一单词符号序列,将其作为语法和语义分析的输入:第二步:调用算术表达式的语法分析器。本次实验要求采用递归下降子程序法编写语法分析器,并且此语法分析器屮包含对语义的分析。分析结束后,显示表达式的计算结果。2.使用的文法E->TE'E’->+TE9lel-TE9T->FT,T,->*Fr

7、

8、e

9、/TE,F->iI(E)其中i可为整数(简单点的),如果考虑周全的话,可収实数类型(需要看一下自己编制的同法分析器是否对实数进行了识别)。该文法的递归下降子程序参见课堂笔记(单纯语法分析部分在第四章介绍过,结合语义分析的部分代码在第六章介绍过)。3.有能力的同学在完成加乘算术表达式的计算后,试扩充2中定义的文法,增加识别减法和除法的规则,并修改对应的程序,使之能够识别并计算加减乘除叫则运算式。三.实验要求1.程序完成后,由实验老师检查代码,验证程序的功能。如:输入(2+3)*10对文法进行扩充的,输入(12-8)*20/5+4等等。2.实验二共4学时,实验完成后,提交一份实验报告

10、,写清实验的目的、内容、思路、设计及实现的过程(包括关键的代码,不宜多),以及实验的结果。实验类型为设计型实验。四.程序设计流程图语法分析器遵循自上而下语法分析的基木算法。芄核心思想是将每个非终结符组织成函数的形式,并在每个函数屮依据相应的产生式右部的符号序列,对读进的符号串进行匹配。如果在产生式右部遇到终结符,那么新读进的符号必须与该终结符一致;如果遇到非终结符,那么则根据预测分析表,调用相应的非终结符对应的函数继续匹配。如果不能满足以上两点,则认为源程序出现了语法错误。算法的流程阁如下所示:开始打开文件Y一.实验步骤1、定义一些全局变量和数组,其屮数组用来存放词法分析的结果,定义布

11、尔型变量flag用來作为错误信息的提示标志。关键代码如下:stringfjstr=newstringf50,21;2、打开词法分析的结果:点击词法分析按钮,将保存在磁盘上的词法分析结果赋值给textbox并将其显示在文本框中。3、进行语法分析:在进行语法分析前,首先将textbox中的字符串进行分割,调用tiQuZiFu()方法,在该方法中我们首先定义三个数组ml,m2,m3分别记录左括号、右栝号和顿号的位置,如果遇到左桮号(譬如“((、()“

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

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

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