- 论坛徽章:
- 0
|
to:prolj (爱好者)
感谢您的建议,
只是PLC的指令表程序的编译器,我网上找了几个月了,从没看到说到点子上的,收费论文也弄了N多篇,没用,基本东插一段西插一段是抄袭的多,
我是想用编译的方法来识别分析它,做一个实用的编译器,硬件早弄好了,单片机方面的编程也没什么问题了,现在就卡在这上位机上,呵呵,还是希望继续得到您的帮助,谢谢
to:
cjaizss,真的是万分的感谢!
您的意思是,这一伪码就是非终结符A的函数A()的实现部分么?
您的这一伪码,是不是自顶向下分析中的"递归下降分析法"?还是其它,我的#23楼的图中的程序的语法,是不是可以用"递归下降分析法"分析?还是要用"LR(1)"?
编译原理方面,我是菜鸟,希望继续得到您的帮助,谢谢!
A()
{
if(输入!=d) {
语言不接受
结束
}
if(输入结束) {
语言接受
结束
}
while(输入==c);
if(输入!=d) {
语言不接受
结束
}
d_count=2
b_count=0
last=d
while(输入没结束) {
if(d_count<=b_count) {
语言不接受
结束
}
x=输入
if(x==d)
d_count++
else if(x==b)
b_count++
else if(x!=c || (x==c & last!=c|d)){
语言不接受 //该语言不接受bcd之外的字符
结束
}
last=x
}
if(d_count==b_count+1) {
语言接受
} else {
语言不接受
}
}
[ 本帖最后由 liuzq71 于 2009-2-5 11:44 编辑 ] |
|