標籤: 暫無標籤

語義分析是編譯過程的一個邏輯階段, 語義分析的任務是對結構上正確的源程序進行上下文有關性質的審查,進行類型審查。語義分析是審查源程序有無語義錯誤,為代碼生成階段收集類型信息。比如語義分析的一個工作是進行類型審查,審查每個算符是否具有語言規範允許的運算對象,當不符合語言規範時,編譯程序應報告錯誤。如有的編譯程序要對實數用作數組下標的情況報告錯誤。又比如某些某些程序規定運算對象可被強制,那麼當二目運算施於一整型和一實型對象時,編譯程序應將整型轉換為實型而不能認為是源程序的錯誤。

舉例:
 一個C程序片斷
int arr[2],b;
b = arr * 10;
源程序的結構是正確的. 語義分析將審查類型並報告錯誤:不能在表達式中使用一個數組變數,賦值語句的右端和左端的類型不匹配.
又比如在語句sum:=first+count*10中,*的兩個運算對象:count是實型,10是整型,則語義分析階段進行類型審查之後,在語法分析所得到的分析樹上增加一語義處理結點,表示整型變成實型的一目算符inttoreal.
例:id1:=id2+id3*10
經語法分析得知其是Pascal語言,表示成語法樹為:
:=
/ \
id1 +
/ \
id2 *
/ \
id3 10
經語義分析得插入語義處理結點的樹:
:=
/ \
id1 +
/ \
id2 *
/ \
id3 inttoreal
|
10
在高級程序設計語言翻譯中,語義分析階段的工作不與目標機器的體系結構密切相關,而目標代碼生成階段的工作與目標機器的體系結構密切相關。
二、語義分析
在一個社會網路中常有節點之間的信息交流。可以對這種社會網路進行分析的一種強大的用來獲得和理解文本信息的技術被稱為語義網消息傳輸分析(語義分析)。作為一個在人工智慧和計算語言學的方法,它為知識推理和語言提供了一個結構和過程。
上一篇[語彙]    下一篇 [語義場]

相關評論

同義詞:暫無同義詞