问题描述
最近摸索着写一个简易的c编译器,遇到一些困难,希望能够得到大家的指点。(主要就是思路不清晰啦,编译当年就没学好,现在很艰难啊。)1.语法分析的时候(LL1),需要用到词法分析给出怎样的结果呢?因为我是从语法开始下手的,所以真的不清楚词法应该给我提供什么形式的文档。有朋友说是<id,*n>这样子的,对吗?我又该怎么应用它呢?2.一定要用户自己输入文法嘛?为什么我们常用的编译器不需要呢?它们应用的什么方法呢?3.如果我自己手工做一个预测分析表,(当然这样局限性就很大了,只能分析一类格式的文法,不过暂且不考虑,慢慢演化嘛),我该怎么继续做语法检查错误和类型检查之类的呢?是去switchcase分析表二维数组中所有可能遇到的情况吗?比如case“E->TA”这种,然后做操作吗?可以做哪些操作呢?除了语法报错,可以同时进行类型检查,生成四元式之类的吗?4.类型检查怎么做?用什么方法?5.四元式什么时候生成,怎样翻译?6.有什么方法可以分析函数的调用关系呢?呵呵,问题罗列了一堆,估计都弄清楚了,做起来就顺手了,希望朋友们能够多多指点,谢谢各位咯。。
时间: 2024-11-05 16:28:32