立即學習:https://edu.csdn.net/course/play/7883/161184?utm_source=blogtoedu
一. 程序設計語言基本概念
- 低級語言和高級語言
機器語言和彙編語言稱爲低級語言.
機器語言指0 \ 1組成的機器指令序列.
彙編語言指用符號表示指令的語言.
高級語言是從人類的邏輯思維角度出發\面向各類應用的程序語言,抽象程度大大提高,需要編譯成特定機器上的目標代碼才能執行. - 編譯程序和解釋程序
高級語言或彙編語言編寫的程序稱爲源程序,源程序不能直接在計算機上執行.
如果源程序是彙編語言編寫的,則需要一個稱爲彙編程序的翻譯程序將其翻譯成目標程序,然後才能執行.
如果源程序是高級語言時,這個翻譯程序稱爲編譯程序.
按源程序中語句的執行順序,逐條翻譯並立即執行相關功能的處理程序,稱爲解釋程序.
程序的執行方式:
1.編譯執行:按編譯方式在計算機上執行用高級語言編寫的程序,需經過兩個階段:
編譯階段,把源程序翻譯爲目標程序;
運行階段,真正執行此目標程序.
優點:執行效率高,佔用資源小.
缺點:兼容性差.
2.解釋執行:源程序的每個語句一經解釋就立即執行.
優點:可移植性較好,開發速度較快,與用戶通信方便.
缺點:效率低.(因爲每次執行都要解釋一遍)
二.編譯系統基本原理(3-5分)
編譯程序的工作過程可以分爲6個階段:詞法分析\語法分析\語義分析\中間代碼生成\代碼優化\目標代碼生成.(背記)
1.詞法分析階段
輸入源程序,對構成源程序的字符串進行掃描和分解,識別出一個個的單詞,刪掉無用信息,報告分析時的錯我.
一個程序語言的基本語法符合分爲五類:關鍵字\標識符\常量\運算符\界符等
詞法分析器所暑促單詞符號常常表示成如下的二元式:(單詞種類,單詞符號的屬性值)(爲固定長度,符號屬性值可以用指針表示,指向內存中的值)
描述詞法規則通常用:正規式和有限自動機.
2.狀態轉換圖
狀態轉換圖是狀態有限的有向圖,用圓圈表示結點狀態,結點之間有向邊代表狀態轉換,有向邊上可標記字符,表示前一狀態接受某一個字符之後的狀態轉移.
狀態轉換圖的功能:
- 用於識別一定字符串
狀態轉換圖的要求
- 狀態(即結點)個數有限
- 至少一個初始狀態,若干中止狀態
- 每條邊上標有字符(也可以是空字符)
狀態轉換圖的表示習慣
- 初始狀態用"o"表示
- 非終止狀態用"o"表示
- 狀態之間的跳轉用"------>"(有向邊)表示
- 終止狀態用""表示
- 多讀進一個字符用"*"表示
3.正規表達式與正規集(定義和運算)
狀態轉換圖可以構造詞法分析程序,但屬於非形式花描述正規表達式(簡稱正規式)是詞法分析的形式化表示方法.所謂形式化的方法,是指用一整套帶有嚴格規定的符號體系來描述問題的方法.
優點:更加清晰和準確
正規式定義中:
- "|" 讀爲 "或"
- "." 讀爲 "連接"
- "*" 讀爲 "閉包"(即,任意有限次的自重複連接).