【问题标题】:How Do I Design Abstract Semantic Graphs?如何设计抽象语义图?
【发布时间】:2013-06-18 18:38:12
【问题描述】:

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

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

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

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

还有一些次要优势:

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

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

【问题讨论】:

  • 你也可以考虑看一下bigraphs。
  • 老兄,你和我几天前的想法一样。也许我们可以组队做一些很酷的事情!
  • 但是关于编辑体验,我想的是相反的。我想到了一个模态结构编辑器,它可以让我避免使用鼠标并同时提高工作效率,因为我不需要逐个字符地导航,而是逐字地导航,并且可以使用一些键盘快捷键轻松包装或展开代码。

标签: language-design


【解决方案1】:

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

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

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

【讨论】:

  • 我不同意。我们之所以使用“语言”进行编程,是因为命令式编程很容易学习。
  • @Shawnhcorey:我提出并自我回答的问题是,为什么我们仍然主要以文本而不是图解方式进行编程。我不确定我是否理解您断言的要点,因为人们也可以以图形方式进行命令式编程,这是讨论的问题。我还断言语法不一定容易学习,事实证明,Scratch 是一种没有文本语法的语言,被定位为一种学习语言。
  • 我们用文本编程,因为文本是连续的。我们习惯于一步一步地学习程序:这样做;然后这个;然后这个.... 图表编程令人困惑。要理解图表,您不会一下子全部理解。你沿着一条路径穿过它。然后是另一条路。然后另一个。您正在(乏味地)通过学习图表不同分支的程序来学习图表。这就是为什么文本是今天的首选编程方式,大约在它开始 50 年后。图表式编程已经过试验,但尚未流行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-14
相关资源
最近更新 更多