Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Programming languages 在设计一种编程语言时,设计者是否完全指定了它的操作/指称语义?_Programming Languages_Semantics_Formal Languages - Fatal编程技术网

Programming languages 在设计一种编程语言时,设计者是否完全指定了它的操作/指称语义?

Programming languages 在设计一种编程语言时,设计者是否完全指定了它的操作/指称语义?,programming-languages,semantics,formal-languages,Programming Languages,Semantics,Formal Languages,对于出现在诸如或之类的学术会议上的语言,通常会很好地指定语言的语义(以或语义的形式)。我试图为流行语言(如C、Python、JavaScript)找到文档化的语义,但找不到任何语义 当这些具有“重”(相对重于设计为概念证明的语言)特性的语言正在开发时,这些语言的设计者(或委员会成员)是否在没有指定语义的情况下添加特性?大多数流行的编程语言都是这样吗 如果是这样的话,我认为这实际上是有意义的,因为不是每个想为语言发展做出贡献的人都需要成为PL研究者。但我想知道现实世界中存在什么样的权衡 几乎所有语

对于出现在诸如或之类的学术会议上的语言,通常会很好地指定语言的语义(以或语义的形式)。我试图为流行语言(如C、Python、JavaScript)找到文档化的语义,但找不到任何语义

当这些具有“重”(相对重于设计为概念证明的语言)特性的语言正在开发时,这些语言的设计者(或委员会成员)是否在没有指定语义的情况下添加特性?大多数流行的编程语言都是这样吗


如果是这样的话,我认为这实际上是有意义的,因为不是每个想为语言发展做出贡献的人都需要成为PL研究者。但我想知道现实世界中存在什么样的权衡

几乎所有语言的定义通常都使用规范性符号,如BNF

这部分是为了消除歧义并确保语法一致性。如果没有编译器或渲染器,将很难构建编译器或渲染器


这其中的一部分进入了解释了一些推理的领域。

一些动态编程语言的语义正在出现,因为它们的语法核心是最小的,并且大部分由它们的库定义(实际用于编程的语言比语法定义的语言大得多)。例如:

  • 口齿不清
  • PERL
  • TCL
有些语言的语法定义非常模糊,以至于语义最终由特定的实现来定义。示例:

  • 早期C++
  • C++与STL
  • 天然银
任何具有宏功能的编程语言,或通常与宏预处理器一起使用的编程语言,最终都会由使用的宏重新定义语义(如在特定于域的语言中)。允许在运行时更改解析行为的动态语言也在运行时定义


在面向对象语言(以及根据对象类型进行调度的其他语言)中,表达式的语义取决于所涉及对象的类型,这些语义可能与内置类型和标准类型的等效表达式的语义有很大的不同。

您似乎在这里讨论语法,但问题是关于语义的。ecmascript(javascript)语义是在时间中详尽指定的