代码之家  ›  专栏  ›  技术社区  ›  artificialidiot

什么是好的编译资源?[副本]

  •  4
  • artificialidiot  · 技术社区  · 17 年前

    不耐烦的人总结:我正在寻找关于生成公共语言结构(而不是解析)代码的良好参考。

    我对编程语言很感兴趣,并尽可能多地阅读文献。但是他们大多从功能和理论的角度来讨论这个话题,我发现他们很难理解,更不用说实现这些想法了。

    因此,问题是:对于以更迫切和实用的方式涵盖该主题的编程语言实现,您建议使用哪些资源?

    例如,我发现 Lua 5.0的实现 “论文很有启发性。

    请注意,我不是在寻找关于解析或标记化的文章。

    10 回复  |  直到 17 年前
        1
  •  10
  •   Adam Rosenfield    17 年前

    这里有一堆好课本:

    Java中的现代编译器实现(Tiger book) A、 W.阿佩尔 国际标准书号0-52158-388-8

    编者:原理、技巧和工具(龙卷) 啊哈,林,塞蒂和乌尔曼 艾迪生·韦斯利,2006年 ISBN 0321486811号 经典的编者教科书,虽然它的前端重点反映了它的时代。

    史蒂文·穆奇尼克 国际标准书号1-55860-320-4 基本上是一本优化的食谱;非常完整,适合工业从业者和研究人员。

    工程编译器(方舟书) 摩根考夫曼出版社,2003年 ISBN号1-55860-698-X 一本现代化的课堂教科书,更加强调后端和实现技术。

    兰迪·艾伦和肯·肯尼迪 摩根考夫曼出版社,2001年 国际标准书号1-55860-286-0 一本现代的教科书,着重于优化,包括并行化和内存层次优化。

    程序设计语言语用学 摩根考夫曼出版社,2005年 国际标准书号:0126339511

        2
  •  3
  •   Paul Biggar    16 年前

    据说(我读过了,但还没读过), An Incremental Approach to Compiler Construction 非常好。它描述了作者如何教他的编译器课程。

    从摘要来看:

    本文的目的是要突破这一障碍。我们展示了构建编译器可以像构建解释器一样简单。我们构造的编译器接受Scheme编程语言的一个很大的子集,并为个人计算的主要体系结构Intel-x86体系结构生成汇编代码。编译器的开发分为许多小的增量步骤。每一步产生一个完全工作的编译器,用于一个逐步扩展的Scheme子集。每个编译器步骤都会产生真正的汇编代码,这些代码可以被汇编,然后由硬件直接执行。我们假设读者熟悉基本的计算机体系结构:其组件和执行模型。不需要详细了解Intel-x86体系结构。

        3
  •  2
  •   kenny    17 年前

    我建议你玩 ANTLR

        4
  •  2
  •   Alan    17 年前

    《龙》和《虎》这两本书(见上图)都很好,不过我觉得《虎》(阿佩尔)这本书有点太密集了。我也很喜欢 现代编译程序设计 大卫·盖尔斯。至于帮助您理解的工具和实用程序,我建议您查看以下一个或多个:

        5
  •  1
  •   janm    17 年前

        6
  •  1
  •   jakobengblom2    17 年前

    另一个提示:不要开始研究GCC;它太复杂了。如果你想有更深入的研究和更简单的开始,我建议你研究一些类似于用Java编写的Java编译器或用Erlang编写的Erlang编译器的东西。

        7
  •  0
  •   James Curran    17 年前

    The Design and Evolution of C++ 由Bjarne Stroustrup编写,虽然代码很少,但主要讨论设计语言时的权衡和其他问题。

        8
  •  0
  •   zvrba    17 年前

    试着看看 LLVM

        9
  •  0
  •   user29159    16 年前

    我喜欢Nicolas Wirth的编译器构造,但也许那是因为学习(Turbo)Pascal使我决定进入计算机科学。

    http://www-old.oberon.ethz.ch/WirthPubl/CBEAll.pdf

        10
  •  -1
  •   TraumaPony    17 年前

    推荐文章