在程序设计语言理论中,语义学是对程序设计语言意义进行严格数学研究的领域。它通过评估由特定编程语言定义的语法上有效的字符串的含义来实现,显示了所涉及的计算。在这种情况下,评估将是句法上无效的字符串,结果将是非计算性的。语义描述了计算机在用特定语言执行程序时遵循的过程。这可以通过描述程序的输入和输出之间的关系,或者解释程序将如何在某个平台上执行,从而创建一个计算模型来显示。
例如,形式语义有助于编写编译器,更好地理解程序在做什么,并证明以下if语句
有着和S1一样的效果。
形式语义学领域包含以下所有内容:
它与计算机科学的其他领域有着密切的联系,如编程语言设计、类型理论、编译器和解释器、程序验证和模型检查。
形式语义学有许多方法;这些属于三大类:
三大类方法之间的区别有时可能是模糊的,但是所有已知的形式语义方法都使用上述技术,或者它们的某种组合。
除了在指称方法、操作方法或公理方法之间进行选择之外,形式语义系统中的大多数变化都源于支持数学形式主义的选择。
形式语义学的一些变体包括:
出于各种原因,人们可能希望描述不同形式语义之间的关系。例如:
也有可能通过抽象解释理论通过抽象来关联多种语义。
^Knuth, Donald E. "Memorial Resolution: Robert W. Floyd (1936–2001)" (PDF). Stanford University Faculty Memorials. Stanford Historical Society..
暂无