ts0612 发表于 2009-07-24 12:49

LCC架构

各位,学习LCC除了《可变目标》之外,还有没有其他参考的资料?最好是中文的。目前碰到的问题主要是对整体结构的不清楚。比如:《可》里面提到的语法分析,它里面只包括error.c里面的一些出错处理,但其实还应该包括后面的表达式、声明等(虽然书中已分立章节单独介绍,但感觉似乎有些乱,可能是我不太习惯书里的这种排版吧)。我曾经猜测src/main.c是整个程序的入口,但又很难通过它清晰的将各个部分联系起来,总感觉没底。尤其是我并不太清楚它总共需要输出多少文件,即比如词法分析,它需不需要输出文件,语法分析呢,它又是不是在利用词法分析的输出文件呢?诸如此类。我也曾经在网上看到过一些博客,里面有对LCC的介绍,但是没有总体的概括(即没有介绍到lcc的一个总领文件(可能是一个*.c的文件),要实现LCC这个编译器,第一步、第二步等等)。如果各位当中,谁曾经也学习过LCC,同时还保留了当时的一些读书笔记,请共享一下,谢谢。

ts0612 发表于 2009-07-24 12:50

回复 #1 ts0612 的帖子

先顶一下

prolj 发表于 2009-07-24 15:04

http://blog.csdn.net/caimouse/category/281237.aspx
他“分析”了代码,其实直接看代码很好懂
========================================================================
你对编译器设计和实现的理解就和现在的编译器实现不同:
一开始就是Parse,在Parse的过程中调用Lex,Parse出来之后调用Sem,Opt之后CG。
看不懂就别看了,先看书吧。
=========================================================================
在C版不是告诉你了么?
另外,我觉得Lcc根本没什么意义了,在这个年代。
GCC的代码可以直接去看,当然如果看不懂,还是算了吧,你连走都不会,怎么能飞呢?踏踏实实一步一步来。去看书,把基础的东西搞明白,理论是最重要的。

ts0612 发表于 2009-07-24 15:28

回复 #3 prolj 的帖子

谢谢你的建议。

但是个人感觉没必要去看GCC,LCC本身已是一个不错的ANSI C编译器,且代码量合适。虽然目前学习LCC遇到一些困难,但个人觉得还是值得坚持下去......

mingyanguo 发表于 2009-07-26 23:44

原帖由 ts0612 于 2009-7-23 20:49 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
各位,学习LCC除了《可变目标》之外,还有没有其他参考的资料?最好是中文的。目前碰到的问题主要是对整体结构的不清楚。比如:《可》里面提到的语法分析,它里面只包括error.c里面的一些出错处理,但其实还应该 ...
src/main.c是入口,代码很容易看。不用急着把各部分联系起来,先跟着代码走一遍就能有个大概的印象了。需要的理论知识不多,就是编译器的基本理论,像lex,syntax之类的。

prolj 发表于 2009-07-27 12:45

原帖由 ts0612 于 2009-7-24 15:28 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
谢谢你的建议。

但是个人感觉没必要去看GCC,LCC本身已是一个不错的ANSI C编译器,且代码量合适。虽然目前学习LCC遇到一些困难,但个人觉得还是值得坚持下去......
坚持吧,不过你的理解有问题。一般来说,GCC,Open64这些编译器,都是围绕Parser和CG展开的,当然其中的Lower部分,就可以暂时不去关心了... 因为你还是先把两头简单搞明白吧...
页: [1]
查看完整版本: LCC架构