【问题标题】:Compiler Design Help [closed]编译器设计帮助 [关闭]
【发布时间】:2010-12-18 14:08:56
【问题描述】:

是否有任何词法、句法、语义分析器和优化器可供下载源代码,最好是 C/C++...???

【问题讨论】:

  • 是的(还有 11 个)(我可以回答 {Google before ask} ...但看起来很粗鲁)
  • @Prasoon Saurav:我需要他们了解每个编译阶段的结果...
  • 有时我希望验证码能够检测到的不仅仅是拼写......
  • 基线编译器帮助问题是Learning to write a compiler。其中列出的各种书籍和网页都会有一些建议。此外,我建议您在 Stack Overflow 上搜索有关您列出的每个组件的问题,因为它们之前被询问过。但是,您可能会发现这个问题比仅仅收集一堆工具并将它们插入在一起更难。请参阅我指出的资源以寻求帮助。

标签: c


【解决方案1】:

你想要一个 C 编译器吗?是的,有很多可用的。你可能想从gcc开始。

【讨论】:

  • 确实,OP 似乎要求编译器的所有部分,就好像编程只是挑选一些组件并将它们粘合在一起一样。当孩子们学习 RAD 工具和 Visual Basic 时,就会产生这种荒谬的想法......
  • @R 嘿,我在 Visual Basic 上学过!!从来没有碰过它,但是......
  • @R.. 我会说天真而不是荒谬。降低编程复杂性的雄心并没有错,您需要一些经验才能体会到某些复杂性在多大程度上是不可降低的。
  • 从标题看来,他不想实现一个编译器。
  • 这个答案似乎离题了。尽管问题措辞不好,但它确实传达了实施而不是使用编译器的计划。另外,我认为这是家庭作业。
【解决方案2】:

我会看看LLVM project。如果您正在寻找构建自己的编译器,那么以这种架构为目标是一个不错的主意。 LLVM 本身有自己的汇编语法中间表示,许多语言,包括 CD 已经有前端。

您可能还想查看邮件列表中的this thread,我参与其中讨论了许多“语言后端”,包括 Parrot 等;基本上是一组处理器,将 C、C++、Python 等语言降低到通用水平。

我在这个领域的专家还不够我想成为的专家,但这些技术似乎让专家们兴奋不已。我正在认真考虑跟上他们的步伐。

【讨论】:

    【解决方案3】:

    你的问题很糟糕。你应该用谷歌搜索这个。

    假设您使用 C 语言编写编译器(基于标记),则有 flexquexragel

    为了帮助您编写解析器,bison

    【讨论】:

      【解决方案4】:

      您可以查看 Java 编译器源代码: http://openjdk.java.net/groups/compiler/

      【讨论】:

        猜你喜欢
        • 2011-10-15
        • 1970-01-01
        • 2013-03-29
        • 1970-01-01
        • 2018-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-04
        相关资源
        最近更新 更多