1

对于语法,有EBNF ISO 14977 标准。

对于运行时,我们有CLI ISO 23271 标准 ,
另见“语义”的简单定义,因为它通常与编程语言/API 相关?

但是如何以声明的方式描述从 EBNF 到 CLI 规范的过渡?即使用S 属性语法是否足够?哪个标准定义了这种语法的语法?

4

1 回答 1

2

定义语言语义的方法有很多种。它们都必须以某种方式表达程序文本与“它计算的内容”之间的关系。

一个简短但不完整的基本技术列表:

  • 定义解释器(“操作语义”)
  • 定义从源代码到丰富的 lambda 演算(“指称语义”)的映射
  • 定义从源代码到另一种定义良好的语言的映射(“转换语义”)

本质上,这些是在程序实例的源文本上定义的计算。

您可以通过许多不同的方式实现这些计算。 实现它们的一种方法可能是“S-attributed”语法,尽管为什么您希望将自己限制为仅使用 S-attributes 而不是具有继承属性的标准属性语法,这超出了我的理解。

鉴于有很多方法可以做到这一点,我怀疑你会找到一个标准的. 当然,编程语言委员会没有使用一个。哎呀,他们甚至不会使用 BNF 的标准。

于 2016-01-30T20:04:15.153 回答