有人可以指导我访问用于设计和实现抽象语义图 (ASG) 的在线资源吗?我想为我的语言创建一个 ASG 编辑器。能够直接编辑 ASG 有许多优点:
只需要输入标识符和文字,并且标识符在定义时只需写入一次。其他一切都是通过鼠标选择的。
由于编辑器了解该语言的语法,因此不再出现语法错误。编辑器首先阻止它们被创建。
由于编辑器了解该语言的语义,因此不会再出现语义错误。
还有一些次要优点:
由于所有保留字都很容易分开,因此可以在一种语言环境中编写程序并在另一种语言环境中查看程序。可以即时更改区域设置。
所有文本文字都可以轻松分离,因此可以轻松更改语言环境,包括即时更改。
我不知道有关于这个问题的书,但是您会在各种有关计算机语言的书籍的部分中找到讨论该主题的内容。您还将找到围绕实现您所描述的内容的各种项目的讨论。例如,您会发现很多关于Scratch设计的讨论。大多数工作流引擎也基于语义图中的脚本。
请允许我发表意见……基本上只要我们有编程语言,我们就已经拥有了在结构上操纵语言的技术。我相信我们仍然使用文本语言的原因是这样一个事实:对于我们人类来说,使用自然语言进行交流更自然,而且有时在适当的时候很难编写和重构代码必须维持结构。如果您不确定我的意思,请尝试在 Scratch 中构建复杂的表达式。文本更容易,一个不错的 IDE 几乎可以提供同样多的正确结构验证。*
*我并不是想从 Scratch 中拿走任何东西,它是一件美丽的东西,并且非常适合其预期目的。