【问题标题】:Design a mini script language设计一个迷你脚本语言
【发布时间】:2011-06-05 19:12:18
【问题描述】:

我今年的项目是开发一个文本挖掘工具(带有新功能) 所以我们需要在这个工具中使用迷你脚本语言来为文本添加注释 这种语言应该很简单,就像 lisp 语法(左侧和右侧)。 我需要的是如何设计这种语言,我知道如何压缩编译器, 但是如何编写语言语法? , 我想使用一些迷你开源语言或任何语言 bnf 请给我建议,如果有我可以使用和定制的语言来满足我的需求?

编辑:如果有人可以提供 lisp 或任何类似语言的语法 (bnf) 链接

非常感谢

【问题讨论】:

  • 如果你想要 simple and like lisp 为什么你不使用 lisp 或 scheme。
  • 脚本语言难道不意味着解释器,而排除编译器吗?

标签: language-design


【解决方案1】:

This是R5RS版Scheme语言的标准,是Lisp的极简方言。

如果您想要一些简单的东西,可以尝试使用后缀表示法创建concatenative 编程语言,例如 Forth 或 Factor。您的语言的语法可能类似于:

"Hello, world! print                   // Hello world
3 4 + print                            // Prints "7"
5 1 + 2 * print                        // Prints "12"

This 是一个连接语言的 wiki,您可以在其中找到灵感。

【讨论】:

    【解决方案2】:

    如果可能,我建议只使用 Lua。如果您使用他们的解释器,该解释器旨在轻松嵌入到其他程序中,它将节省您设计、实现和测试您自己的语言的时间。

    否则,您可以重新使用 Lua 解析器代码来解析您自己的 Lua 类语言。

    【讨论】:

      【解决方案3】:

      你可以考虑我们这个 http://www.antlr.org/ 设计你的语言。

      【讨论】:

      • 谢谢,但我们要编写编译器而不是编写语言规则!
      • 对不起,我被你问的“如何编写语言语法”误导了……无论如何,如果你的环境是 .NET,你可以试试 IronPython
      猜你喜欢
      • 2011-08-23
      • 2016-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-24
      • 2016-02-12
      • 2012-09-02
      相关资源
      最近更新 更多