1、低級語言:機器語言和匯編語言稱為低級語言。
- 機器語言指0、1組成的機器指令序列
- 匯編語言指用符號表示的語言
MOV AX,2
MOV BX,3
ADD AX,BX
2、高級語言
高級語言需要編譯成特定機器語言
編譯程序和解釋程序
高級語言或匯編語言編寫的程序稱為源程序,源程序不能直接在計算機上執(zhí)行。
- 如果源程序是匯編語言編寫的,則需要一個稱為匯編程序的翻譯程序?qū)⑵浞g成目標(biāo)程序,然后才能執(zhí)行。
- 如果源程序是為高級語言時,這個翻譯程序稱為編譯程序
- 按源程序中語句的執(zhí)行順序,逐條翻譯并立即執(zhí)行相關(guān)功能的處理程序、稱為解釋程序。
1、編譯執(zhí)行:優(yōu)點:執(zhí)行效率高
缺點:兼容性差
2、解釋執(zhí)行:優(yōu)點:可移植性較好、開發(fā)速度快、與用戶通信方便。
缺點:效率低。
編譯系統(tǒng)基本原理
編譯程序的工作過程可以分為6個階段:詞法分析、語法分析、語義分析、中間代碼生成、代碼優(yōu)化、目標(biāo)代碼生成。
1、詞法分析
一個程序語言的基本語法符號分為五類:關(guān)鍵字、標(biāo)識符、常量、運算符、界符等
詞法分析器所輸出單詞符號常常表示成如下的二元式:(單詞種別,單詞符號的屬性值)
描述詞法通常用:正規(guī)式和有限自動機
2、狀態(tài)轉(zhuǎn)換圖
狀態(tài)轉(zhuǎn)換圖是狀態(tài)有限的有向圖,用圓圈表示結(jié)點狀態(tài),結(jié)點之間有向邊代表狀態(tài)轉(zhuǎn)換,有向邊上可標(biāo)記字符,表示前一狀態(tài)接受某一個字符之后的狀態(tài)轉(zhuǎn)移。
狀態(tài)轉(zhuǎn)換圖的功能
- 用于識別一定的字符串
狀態(tài)轉(zhuǎn)換圖的要求
- 狀態(tài)(即結(jié)點)個數(shù)有限
- 至少一個初始狀態(tài),若干終止?fàn)顟B(tài)
-
每條邊上標(biāo)有字符(也可以是空字符)
3、正規(guī)集

