【问题标题】:Semantic Analysis语义分析
【发布时间】:2012-08-20 17:02:20
【问题描述】:

我们一直在探索为我们的平台编写外部 DSL,语法将类似于 JAVA,但生成的底层代码会有所不同。

我们进行了 ANTLR 旋转并调整了开箱即用的 java 语法文件以符合我们的规则,下一步是语义分析,这有点困难,所以很想知道免费的 JAVA 语义分析器的可用性。与语法文件类似,如果我们设法获得开箱即用的 JAVA 语义分析器代码,那么我们可以对其进行调整以满足我们的需要。

此外,我们还在研究 Scala DSL 功能。

感谢您在这方面的任何帮助。谢谢

【问题讨论】:

    标签: java compiler-construction language-design semantics


    【解决方案1】:

    您可以从 Eclipse 源代码中获得很多帮助。它具有公开的 API,可公开 Java 文件的 AST,并使用所有类型绑定进行注释。但是,我认为您会发现调整该代码非常具有挑战性。

    【讨论】:

      【解决方案2】:

      Scala 目前对macro system 提供实验性支持。宏提供了一种方便、轻量级的方式来定义新的语言特性;它们允许您定义 DSL,而无需复制所有进入基础语言的工作。他们不能做所有事情,但他们可以做很多事情,而且当他们适合任务时,他们比编写一种全新的语言更容易创建和调试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-27
        • 2011-03-29
        • 2012-01-28
        • 1970-01-01
        • 2012-06-04
        • 2013-01-30
        • 1970-01-01
        • 2014-10-08
        相关资源
        最近更新 更多