编译原理课设,老师要求写一个简单的编译器,求助,不知道怎么入手。
这是我大二写的PL/0的编译器,也是参考网上源码写的啦。你可以参考参考,有什么不懂得可以交流交流。
http://download.csdn.net/detail/zsgg_acm/9367856
先设计语言
假设
1) 变量不需要定义
2)变量只用 单个字母表示
3)变量缺省值为0
4)只有一种整数类型
5)没有输入,只有输出 print expr
6)只有+-*/四种运算,还可以简化为只有+,-
7 )只有= 一种表达式可以构成表达式语句,是独立表达式,别的表达式,必须是赋值表达式的子表达式,或者 print 的表达式部分
8)没有函数,goto if 等等,全部都没有
也就是说这种语言,只有两种语句,a= expr;print expt 一种数据类型int
现在,可以为他实现一个编译器了
先实现表达式求值
再实现输出,赋值两种语句
看你这提问的架势,像是一窍不通。我觉得与其从头学起,不如google一些现成的简单的代码,能找到一个代码自己学会编译,并且大体上能看懂,既能糊弄下老师,自己也不能说一点收获没有。
你没听错吧,编译器,确定不是词法分析器!