问问编译原理的过程

morrisyuan 2010-08-25 11:45:01
我的数据结构是一条链,中间有几种节点:1 控制外部硬件; 2 if else语句; 3 while循环 等
其实后面的都是辅助的来有条件的控制外部硬件

现在不会做编译过程。
哪个讲一下,

我这两天一直在试把这条链变成树,感觉还是不好弄,没掌握方法


最终目标;可以像在DEBUG模式下的单步,(不仅可以顺着走还可以倒着走)
...全文
119 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这个涉及多方面的知识...两句话说不清..
hztj2005 2010-08-25
  • 打赏
  • 举报
回复
你用c++实现,那你就
class ifnode{
char name[20];//条件变量名n,编译时应该替代成统一的名字吧?
//条件变量类型不同,可能要 union
int ifvaule;// 1;

decide(){

//这里要根据判断运算符> = <分支处理:

if(name>ifvaule){
listsentence[i];//指向条件成立时,语句表中要执行的语句。
}

}

parent * ifnode;//指向上级if
sun * ifnode;//指向下级if
}

很好,能这样探索。
我觉得中国软件业没有发展就是缺人去探讨编译方法。
morrisyuan 2010-08-25
  • 打赏
  • 举报
回复
现在我把链变成树了
执行时顺着就顺着遍历,反着就反向遍历

但是编译的理论忘了
在节点的条件判断这里怎么处理。。

比如if(n>1)

那么我记录n,调用它??
hztj2005 2010-08-25
  • 打赏
  • 举报
回复
你说的不是很明白,不过我想,你可以声明一个结构:

struct sentnode{
char sentence[80];//记录一个语句
sentnode * prev;
sentnode * next;
}

list <sentnode> listsentence[1000];

struct ifnode{

union{
char[20];//name ="liping";
int [1];//x>20;
} //存贮 if语句的条件

listsentence[i];//指向条件成立时,语句表中要执行的语句。

parent * ifnode;//指向上级if
sun * ifnode;//指向下级if
}

list <ifnode> listif[200];
morrisyuan 2010-08-25
  • 打赏
  • 举报
回复
因为自己编译灵活些

我现在对其进行简单的词法检测,如果没错,

然后想按链的逻辑结构一步一步往下执行或往上执行就行了

关键是逻辑结构这一块怎么办
hztj2005 2010-08-25
  • 打赏
  • 举报
回复
你做什么项目,需要自己编译?
dingshaofengbinbin 2010-08-25
  • 打赏
  • 举报
回复
这个在这讲太多了!!讲少了有不好懂或只懂皮毛,LZ还是找本好书看看。支持!!!!
zjz800800 2010-08-25
  • 打赏
  • 举报
回复
感情上支持一下楼主。
tufaqing 2010-08-25
  • 打赏
  • 举报
回复
看一下编译原理的教材

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧