5

有人可以指导我访问用于设计和实现抽象语义图 (ASG) 的在线资源吗?我想为我的语言创建一个 ASG 编辑器。能够直接编辑 ASG 有许多优点:

  1. 只有标识符和文字需要输入,并且标识符在定义时只写一次。其他一切都是通过鼠标选择的。

  2. 由于编辑器知道该语言的语法,因此不再有语法错误。编辑器首先阻止它们被创建。

  3. 由于编辑器知道语言的语义,因此不再有语义错误。

还有一些次要优势:

  1. 由于所有保留字都易于分离,因此可以在一个语言环境中编写程序并在其他语言环境中查看程序。可以即时更改语言环境。

  2. 所有文本文字都很容易分离,因此可以轻松更改语言环境,包括即时更改。

4

1 回答 1

0

我不知道有关此问题的书籍,但您会在有关计算机语言的各种书籍的部分内容中找到讨论的主题。您还将找到围绕实施您所描述的各种项目的讨论。例如,您会发现很多关于Scratch设计的讨论。大多数工作流引擎也基于语义图中的脚本。

请允许我发表意见……只要我们有编程语言,我们就拥有在结构上操纵语言的技术。我相信我们仍然使用文本语言的原因是结合了这样一个事实,即我们人类使用自然语言进行交流更自然,并且有时很难在适当的时候编写和重构代码。结构必须保持。如果您不确定我的意思,请尝试在 Scratch 中构建复杂的表达式。文本更容易,体面的 IDE 几乎可以验证正确的结构。*

*我并不是要从 Scratch 中拿走任何东西,它是一种美丽的东西,非常适合其预期用途。

于 2014-06-09T23:04:29.300 回答