• 博客(0)
  • 资源 (5)

空空如也

编译原理 语法分析 老师给的

一. 实验目的: 1、 学习语法分析的主要方法; 2、 熟悉复习词法分析的方法; 3、 判断表达式的正确性; 4、 熟悉C语言并提高动手能力; 二. 实验内容: 用递归下降分析法编写一个用于判断数学表达式是否正确的语法分析

2010-03-17

编译原理 四元式中间代码

一、 实验目的: 1、 学习编译的基本原理; 2、 巩固课堂学习的知识; 3、 会对最基本的语句进行分析,转换成四元式; 二、 实验内容: 编制一个大型程序,可以对小型的EL语言程序进行翻译,可以处理最基本的语句如: if语句,while语句等;

2010-03-17

编译原理 词法分析 老师给的

一、 实验目的: 1、 学习编译的基本原理; 2、 巩固课堂学习的知识; 3、 会对最基本的语句进行词法分析,转换成类号; 二、 实验内容: 编写一个词法分析程序,对某源程序文件进行词法分析,将其中的所有单词经词法分析后变为由类号构成的目标文件。

2010-03-17

编译原理 表达式求值 我们老师写的

一. 实验目的: 1、 学习语法分析的主要方法; 2、 熟悉复习词法分析的方法; 3、 表达式求值; 4、 熟悉C语言并提高动手能力; 二. 实验内容: 输入一个表达式,判断是否正确后,求出其值;

2010-03-17

后缀变前缀,里面有几个不同的程序哦,不同人写的

作为结束符的中缀算术表达式已经保存在s1字符串中,转换后得到的后缀算术表达式拟存于s2字符串中。由中缀表达式转换为后缀表达式的规则可知:转换前后,表达式中的数值项的次序不变,而运算符的次序发生了变化,由处在两个运算对象的中间变为处在两个运算对象的后面,同时去掉了所有的括号。为了使转换正确,必须设定一个运算符栈,并在栈底放入一个特殊算符,假定为’@’字符,让它具有最低的运算符优先级,假定为数值0,此栈用来保存扫描中缀表达式得到的暂不能放入后缀表达式中的运算符,待它的两个运算对象都放入到后缀表达式以后,再令其出栈并写入到后缀表达式中。 把中缀表达式转换为后缀表达式算法的基本思路是从头到尾地扫描中缀表达式中的每个字符,对于不同类型的字符按不情况进行处理。 若遇到的是空格则认为是分隔符,不需要进行处理; 若遇到的是数字或小数点,则直接写入到s2中,并在每个数值的最后写入一个空格; 若遇到的是左括号,则应把它压入到运算符栈中,待以它开始的括号内的表达式转换完毕后再出栈; 若遇到的是右括号,则表明括号内的中缀表达式已经扫描完毕,把从栈底直到保存着的对应左括号之间的运算符依次退栈并写入s2串中; 若遇到的是运算符,当该运算符的优先级大于栈顶运算符的优先级(加减运算符的优先级设定为1,乘除运算符的优先级设定为2,在栈中保存的特殊运算符’@’和’(’的优先级设定为0)时,表明该运算符的后一个运算对象还没有被扫描并放入到s2串中,应把它暂存于运算符栈中,待它的后一个运算对象从s1串中读出并写入到s2串中后,再另其出栈并写入s2串中; 若遇到的运算符的优先级小于等于栈顶运算符的优先级,这表明栈顶运算符的两个运算对象已经被保存到s2串中,应将栈顶运算符退栈并写入到s2串中,对于新的栈顶运算符仍继续进行比较和处理,直到被处理的运算符的优先级大于栈顶运算符的优先级为止,然后另该运算符进栈即可。 按照以上过程扫描到中缀表达式结束符’@’时,把栈中剩余的运算符依次退栈并写入到后缀表达式中,再向s2写入表达式结束符’@’和字符串结束符’{ post.content} ’,整个转换过程就处理完毕,在s2中就得到了转换成的后缀表达式。

2009-12-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除