设计一个简单的编译程序,将某种高级程序设计语言L与C语言进行转化

来源:百度知道 编辑:UC知道 时间:2024/09/22 06:49:12
背景
编译程序将高级语言(如C++语言)“翻译”成计算机可以识别并执行的低级语言(如汇编语言),进而在计算机上执行。
目标
设计一个简单的编译程序,将某种高级程序设计语言L用C语言进行编译并执行,即将L语言中的语句“翻译”成为C语言语句之后在C语言运行环境中执行得到结果。
L语言如下规定:

标识符
标志变量或常量的名字,标识符由数字和字母组成,其第一个字母为字母;标识符区分大小写
数据类型
Integer ,String
运算符

加:ADD(Integer型操作数1,Integer型操作数2),结果为Integer型
如:Integer n1; n1 = 345; n1 = ADD(n1, 12); 则 n1 = 357

减:SUB(Integer型操作数1,Integer型操作数2),结果为Integer型
如:Integer n1; n1 = 345; n1 = SUB(n1, 12); 则 n1 = 333

并:MERGE(String型操作数1,String型操作数2),结果为String型
如:String str ; str = “China”; str = MERGE(str, “ win”); 则str = “China win”
语句
语句以“;”结束;L语言的语句有:
定义语句
格式:数据类型 变量或常量标识符;
注:Integer类型默认值为0,String类型默认值为“”
例: Integer stdNum; String str;
赋值语句
格式:变量 = 数值或表达式;
注:变量必须先定义才能进行赋值等操作;
例:stdNum = 51;str = “China”;
stdNum = SUB(stdNum, 12);<

楼主不要骂我啊。
这个题不算难,但是真写起来要费些功夫,特别是写好后还要仔细测试。我觉得麻烦,考虑再三,还是放下。估计也难有人回答。

不过,还是给楼主一些思路:这种问题用栈是完全可以实现的。

就说这么多,楼主不要骂我啊。

这是要做一个编译器么....

这叫简单撒 这是类编译程序 汗

知道吗,一年前的大后天有人问了同样的问题,我是北京某大学的,不知您是哪的,我还要编一个“寻找最长公共子串”的程序。
哥们,我和你差不多,我们是在命令行中读取,在屏幕里输出
补充一下:
处理示例
input: output:
Out(‘Begin’); Begin
Integer n1; 12
n1=12; str = ChinaWin
Out(n1); error: str=MERGE(str,12);
String str;
str=MERGE(str,’China’);
str=MERGE(str,’Win’);
Out('str = '+str);
str=MERGE(str,12);
Out('str = '+str);
您会写了一定要告诉我啊!!!!!!!!!!
我代表07级计算机的全体同学谢谢大家