㈠ 編譯原理中的詞法分析器的輸入與輸出是什麼
編譯原理中的詞法分析器的輸入是源程序,輸出是識別的記號流。
詞法分析器編制一個讀單詞的程序,從輸入的源程序中,識別出各個具有獨立意義的單詞,即基本保留字、標識符、常數、運算符和分隔符五大類。並依次輸出各個單詞的內部編碼及單詞符號自身值。(遇到錯誤時可顯示「Error」,然後跳過錯誤部分繼續顯示)。
(1)編譯器識別單詞擴展閱讀
詞法分析器的作用:
1、與符號表進行交互,存儲和讀取符號表中的標識符的信息。
2、讀入源程序的輸入字元,將他們組成詞素,生成並輸出一個詞法單元序列,每個詞法單元序列對應一個於一個詞素。
3、過濾掉程序中的注釋和空白。
4、將編譯器生成的錯誤消息與源程序的位置聯系起。
㈡ 緙栬瘧紼嬪簭宸ヤ綔榪囩▼
緙栬瘧紼嬪簭鐨勫伐浣滆繃紼嬫秹鍙婃簮紼嬪簭鐨勫垎鏋愬拰鐩鏍囩▼搴忕殑鐢熸垚銆傞栧厛錛岀▼搴忎細榪涜屾簮浠g爜鐨勬鏌ワ紝灝嗗叾鍒嗚В涓哄熀鏈鎴愬垎錛屽傛爣璇嗙︺佺被鍨嬪拰榪愮畻絎︾瓑銆傚湪榪欎釜闃舵碉紝緙栬瘧鍣ㄤ細鏃呯己鍒涘窞閿寤虹﹀彿琛錛屽瓨鍌ㄦ簮紼嬪簭涓鐨勬爣璇嗙﹀強鍏跺睘鎬э紝濡傚彉閲忋佹暟緇勩佺粨鏋勭瓑鐨勭嶇被鍜岀被鍨嬶紝浠ュ強鐩鏍囩▼搴忔墍闇鐨勯濆栦俊鎮鍐岄晣宸с傚父鏁拌〃鍒欒板綍婧愮▼搴忎腑鐨勫父鏁板強鍏跺湪鐩鏍囩▼搴忎腑鐨勫瓨鍌ㄤ綅緗銆
鎺ヤ笅鏉ワ紝緙栬瘧紼嬪簭浼氬皢婧愪唬鐮佽漿鎹涓轟竴縐嶄腑闂磋璦褰㈠紡錛屽傛嘗鍏拌〃紺恆佷笁鍏冪粍鎴栧洓鍏冪粍錛屼互渚誇簬鍚庣畫鐨勫垎鏋愬拰緇煎悎鎿嶄綔銆傝繖涓闃舵典嬌鐢ㄧ殑鏁版嵁緇撴瀯涓昏佸寘鎷絎﹀彿琛ㄣ佸父鏁拌〃鍜屼腑闂磋璦紼嬪簭銆
鍒嗘瀽闃舵靛垎涓鴻瘝娉曞垎鏋愩佽娉曞垎鏋愬拰璇涔夊垎鏋愪笁涓姝ラゃ傝瘝娉曞垎鏋愬櫒錛屾垨縐頒負鎵鎻忓櫒錛岃礋璐h瘑鍒婧愪唬鐮佷腑鐨勫崟璇嶏紝鏋勯犵﹀彿琛ㄥ拰甯告暟琛錛屽苟灝嗘簮浠g爜杞鎹涓虹紪璇戝櫒鑳藉勭悊鐨勫唴閮ㄥ艦寮忋傝娉曞垎鏋愬櫒鏄鍏抽敭鐜鑺傦紝瀹冩牴鎹璇璦瑙勫垯媯鏌ヤ唬鐮佺殑璇娉曟g『鎬э紝鐢熸垚涓闂磋璦鐨勭粨鏋勩傝涔夊垎鏋愬櫒鍒欑『淇濈▼搴忕殑璇涔夋g『錛岄獙璇佹爣璇嗙﹀拰甯告暟鐨勪嬌鐢錛屽苟鏀墮泦鐩稿叧淇℃伅錛岃繘琛岀浉搴旂殑璇涔夊勭悊銆
鎬葷殑鏉ヨ達紝緙栬瘧紼嬪簭閫氳繃涓緋誨垪澶嶆潅鐨勮繃紼嬶紝浠庢簮紼嬪簭鍑哄彂錛岄氳繃絎﹀彿琛ㄥ拰涓闂磋璦錛屾渶緇堢敓鎴愮洰鏍囩▼搴忥紝紜淇濈▼搴忕殑姝g『鎬у拰鍙鎵ц屾с
㈢ 編譯器做什麼工作
1. 詞法分析 詞法分析器根據詞法規則識別出源程序中的各個記號(token),每個記號代表一類單詞(lexeme)。源程序中常見的記號可以歸為幾大類:關鍵字、標識符、字面量和特殊符號。詞法分析器的輸入是源程序,輸出是識別的記號流。詞法分析器的任務是把源文件的字元流轉換成記號流。本質上它查看連續的字元然後把它們識別為「單詞」。 2. 語法分析 語法分析器根據語法規則識別出記號流中的結構(短語、句子),並構造一棵能夠正確反映該結構的語法樹。 3. 語義分析 語義分析器根據語義規則對語法樹中的語法單元進行靜態語義檢查,如果類型檢查和轉換等,其目的在於保證語法正確的結構在語義上也是合法的。 4. 中間代碼生成 中間代碼生成器根據語義分析器的輸出生成中間代碼。中間代碼可以有若干種形式,它們的共同特徵是與具體機器無關。最常用的一種中間代碼是三地址碼,它的一種實現方式是四元式。三地址碼的優點是便於閱讀、便於優化。 5. 中間代碼優化 優化是編譯器的一個重要組成部分,由於編譯器將源程序翻譯成中間代碼的工作是機械的、按固定模式進行的,因此,生成的中間代碼往往在時間和空間上有很大浪費。當需要生成高效目標代碼時,就必須進行優化。 6. 目標代碼生成 目標代碼生成是編譯器的最後一個階段。在生成目標代碼時要考慮以下幾個問題:計算機的系統結構、指令系統、寄存器的分配以及內存的組織等。編譯器生成的目標程序代碼可以有多種形式:匯編語言、可重定位二進制代碼、內存形式。 7 符號表管理 符號表的作用是記錄源程序中符號的必要信息,並加以合理組織,從而在編譯器的各個階段能對它們進行快速、准確的查找和操作。符號表中的某些內容甚至要保留到程序的運行階段。 8 出錯處理用戶編寫的源程序中往往會有一些錯誤,可分為靜態錯誤和動態錯誤兩類。所謂動態錯誤,是指源程序中的邏輯錯誤,它們發生在程序運行的時候,也被稱作動態語義錯誤,如變數取值為零時作為除數,數組元素引用時下標出界等。靜態錯誤又可分為語法錯誤和靜態語義錯誤。語法錯誤是指有關語言結構上的錯誤,如單詞拼寫錯、表達式中缺少操作數、begin和end不匹配等。靜態語義錯誤是指分析源程序時可以發現的語言意義上的錯誤,如加法的兩個操作數中一個是整型變數名,而另一個是數組名等。
㈣ 編譯原理中的詞法分析器的輸入與輸出是什麼
編譯原理中的詞法分析器的輸入是源程序,輸出是識別的記號流。
詞法分析器編制一個讀單詞的程序,從輸入的源程序中,識別出各個具有獨立意義的單詞,即基本保留字、標識符、常數、運算符和分隔符五大類。並依次輸出各個單詞的內部編碼及單詞符號自身值。(遇到錯誤時可顯示「Error」,然後跳過錯誤部分繼續顯示)。
(4)編譯器識別單詞擴展閱讀
詞法分析器的作用:
1、與符號表進行交互,存儲和讀取符號表中的標識符的信息。
2、讀入源程序的輸入字元,將他們組成詞素,生成並輸出一個詞法單元序列,每個詞法單元序列對應一個於一個詞素。
3、過濾掉程序中的注釋和空白。
4、將編譯器生成的錯誤消息與源程序的位置聯系起。