条件语句的翻译程序

来源:百度知道 编辑:UC知道 时间:2024/05/06 01:30:39
利用LL(1)分析方法和思想对某些语句进行语法分析和语义分析,生成相应的中间代码。正确运用语法规则,并能解决存在的问题。给出语法分析方法及中间代码形式的描述、文法和属性文法的设计。
这是道编译原理的题目,请用c++编写程序,不懂的别掺和,好么?谢谢各位了.做好了要多少分自己说,只要合理,我都给
以下是文法:
〈if 语句〉-> if boolean then S else S
S -> i = E
E -> TE′
E′-> +T E′|ε
T -> FT ′
T′-> * FT′|ε
F -> i |(E)
我要的是代码,不是大道理,没时间做了,请有的会的帮个忙,谢谢

利用C的编译器常用的递归子程序法进行递归下降分析。先设计好文法,最好自己先画出文法图,然后编写递归下降的程序。
比如:程序->分程序。那么,我写两个函数,pro();和subPro();因为程序只能推出分程序,那么我在pro()方法中的第一句,便直接调用subPro()函数来进行分析。这样递归下降,并留出适当的出口,如分析因子中的id和num,或者分析其他元素中的id和num等,这样就OK了。
建议你自己写,写出来了对你有好处。

编程原理这个东西不是一言两语说的清楚的,你自己去看一下《解释器构造及实践》这本书中的例子吧。

我这里有两个,以前在大学写的:
题目1. 输入一个文法求他的First和Follow集

题目2.实现:
(a)直接输入根据已知文法人工构造的算符优先关系矩阵。
(b)输入FIRSTVT、LASTVT集合,由程序自动生成该文法的算符优先关系矩阵。
(c)输入已知文法,由程序自动生成该文法的算符优先关系矩阵。

如果是的就给我发邮件,我发给你,如果不是就算了。
邮箱:zhengyong@ifmsoft.com.cn