• 指稱語義學

    編輯
    本詞條由“匿名用戶” 建檔。

    指稱語義學的語言

    編輯

    語言學vte在計算機科學中,指稱語義學(最初被稱為數學語義學或Scott-Strachey語義學)是一種通過構建描述語言表達式含義的數學對象(稱為指稱)來正式確定編程語言含義的方法。其他提供編程語言形式化語義的方法包括公理語義學和操作語義學。廣義上講,指稱語義學關注的是尋找被稱為域的數學對象,以代表程序的作用。例如,程序(或程序短語)可以通過部分函數或環境與系統之間的游戲來表示。指稱語義學的一個重要原則是,語義學應該是組合式的:一個程序短語的指稱應該由其子短語的指稱來建立。

    歷史發展

    編輯

    指稱語義學起源于ChristopherStrachey和DanaScott在20世紀70年代初發表的工作。正如Strachey和Scott最初發展的那樣,指稱語義學將計算機程序的意義提供為一個將輸入映射為輸出的函數。為了賦予遞歸定義的程序以意義,斯科特提議在域之間使用連續函數,特別是完整的部分命令。正如下面所描述的,在研究編程語言的各個方面,如順序性、并發性、非決定性和局部狀態的適當指稱語義方面的工作一直在繼續。符號語義學已經為使用并發和異常等能力的現代編程語言而開發,例如,并發ML、CSP和Haskell。這些語言的語義是組合式的,即一個短語的含義取決于其子短語的含義。例如,應用性表達式f(E1,E2)的含義是根據其子句f、E1和E2的語義來定義的。在現代編程語言中,E1和E2可以被并發地評估,其中一個的執行可能會影響另一個,通過共享對象的交互導致它們的意義被定義為彼此的意義。另外,E1或E2可能會拋出一個異常,從而終止另一個的執行。下面的章節描述了這些現代編程語言的語義的特殊情況。

    遞歸程序的含義

    編輯

    表征語義被賦予一個程序短語,作為從環境(持有其自由變量的當前值)到其表征的一個函數。例如,短語n*m在提供給它的兩個自由變量:n和m的環境中產生了一個指稱,如果在環境中n的值是3,m的值是5,那么指稱就是15。一個函數可以被表示為一組有序的參數和相應的結果值對。例如,集合{(0,1),(4,3)}表示一個函數,參數0的結果為1,參數4的結果為3,否則未定義。例如,考慮一下階乘函數,它可能被遞歸地定義為。

    語義學

    在開始時,我們從沒有調用開始--因此沒有任何定義。在下一個近似中,我們可以添加有序對(0,1),因為這不需要再次調用階乘。類似地,我們可以添加(1,1)、(2,2)等,每次連續逼近時添加一對,因為計算階乘(n)需要調用n+1次。在極限中,我們得到一個總函數,從在其領域內的所有地方都有定義。從形式上看,我們將每個近似建模為一個部分函數然后我們可以引入符號Fn來表示F應用了n次。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/167704/

    (1)
    詞條目錄
    1. 指稱語義學的語言
    2. 歷史發展
    3. 遞歸程序的含義

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久