指稱語義

在計算機科學中 ， 指稱語義  是通過構造表達其語義的 ( 叫做指稱 ( denotation ) 或意義的 ) 數學對象來形式化計算機系統的語義的一種方法 。 編程語言的形式語義的其他方法包括公理語義和操作語義 。 指稱語義方式最初開發來處理一個單一計算機程序定義的系統 。 後來領域擴展到了由多於一個程序構成的系統 ， 比如網絡和併發系統 。 指稱語義起源於 克里斯托弗 · 斯特雷奇 和 Dana Scott 在1960年代的工作 。 在 Strachey 和 Scott 最初開發的時候 ， 指稱語義把計算機程序的指稱 定義太受限制了 。 爲了解決這個困難 ， Scott 介入了基於域的指稱語義的一般性方法 。 後來的研究者介入了基於冪域的方法 ， 來解決併發系統的語義的問題 。 粗略的說 ， 指稱語義關注找到代表程序所做所爲的數學對象 。 這種對象的蒐集叫做域 。 例如 ， 程序 可以被偏函數 ， 或演員事件圖想定 ， 或用環境和系統之間的博弈表示: 它們都是域的一般性例子 。 指稱語義的一個重要原則是 “ 語義應當是複合性的 ”: 程序段的指稱應當建立自它的子段的指稱 。 最簡單的例子是: “ 3 + 4 ” 的意義確定自 “ 3 ” 、 “ 4 ” 和 “ + ” 的意義 。 指稱語義最初被開發爲把函數式和順序式程序建模爲映射輸入到輸出的數學函數的框架 。 本文第一節描述在這個框架內開發的指稱語義 。 後續章節處理多態 、 併發等問題 。