編譯原理第四章—語法分析
1、知識點圖
重點記憶:
語法分析器功能:
語法分析的工作:
判斷一個輸入串是否符合語法規則
如何判斷?
從文法的起始符出發進行句子的推導,即自上而下的分析
從句子本身出發,進行歸約,看能否把句子規約為到起始符,即自下而上的規約
分析的結果:構造一棵語法樹
自上而下分析面臨的問題:
1、文法的左遞迴問題
2、回溯的不確定性,要求我們將已經完成工作推倒從來,
3、虛假匹配的問題
4、不能準確地確定輸入串中出錯的位置
5、效率低
遞迴下降分析程式構造:
當一個文法滿足LL(1)條件時,我們就可以構造一個不帶回溯的自上而下分析程式,這個分析程式由一組(可能的)遞迴程式組成,每個過程對應文法的一個非終結符。這樣一個分析程式稱為遞迴下降分析器。
具體做法:
對文法的每一個非終結符都編一個分析程式
當根據文法和當時的輸入符號預測到要用某個非終結符去匹配輸入串時,就呼叫該非終結符的分析程式。
2、驗證使用(習題處理):
3、課堂感受:
這章的內容概念性的很少,但是許多的“怎麼解決”,“怎麼構造”很繁瑣和麻煩,而且有很多不仔細看不知道怎麼得出來的,相對來說還是有難度的,得多看幾遍。
相關推薦
編譯原理第四章-語法分析
語法分析的知識要點 1)最左推導 總是選擇每個句型的最左非終結符進行替換; 根據輸入流中的下一個終結符,選擇最左非終結符的一個候選式; 自頂向下的語法分析採用最左推導方式。 2)非終結符的後繼符號集 可能在某個句型中緊跟在A後邊的終結符a的集合,記為FOLLOW
編譯原理第四章—語法分析
第四章1、知識點圖重點記憶:語法分析器功能:語法分析的工作: 判斷一個輸入串是否符合語法規則如何判斷? 從文法的起始符出發進行句子的推導,即自上而下的分析從句子本身出發,進行歸約,看能否把句子規約為到起始符,即自下而上的規約分析的結果:構造一棵語法樹自
編譯原理----第四章 語法分析(自上而下分析)
一、感受及總結 語法分析是編譯過程的核心部分,語言的語法結構是用上下文無關描述的。因為自上而下分析可能會存在兩大問題,左遞迴和回溯,所以產生了消除左遞迴和克服回溯的方法----LL(1)分析法。使用LL(1)分析法要涉及FIRST集和FOLLOW集,這是重點。當
編譯原理-第四章 語法分析-4.4 自頂向下的語法分析
自頂向下的語法分析 一、自頂向下語法分析 1.定義 2.不足 不能處理左遞迴 不能處理複雜的回溯技術 3.例 4.演算法構造 FIRST FOLLOW LL(1)文法 二、預測分析 1.遞迴下降的預測分析 遞迴下降預測分析器
編譯原理 第五章 語法分析----自下而上分析
一、知識總結 自下而上分析是從輸入串開始,逐步進行規約,直至規約到文法的開始符號,就是一種“移進-規約”法。自上而下分析的中心問題是怎樣判斷棧訂單符號串的可歸約性以及如何規約。解決方案是規範規約。所謂規範規約就是每一步都把控制代碼換成它對應的產生式
現代編譯原理——第四章:語義分析以及原始碼
轉自: http://www.cnblogs.com/BlackWalnut/p/4527845.html 寫完語義分析的程式碼後感覺語義分析只是為了進行型別檢測(後來才發現,這只是語義分析的一部分)。詞法分析注重的是每個單詞是否合法,以及這個單詞屬於語言中的哪些部分。語法分析的上下文無關
第四章-語法分析之認識樹節點
似的 序列 語義分析 語法 聲明 規則 mil src alt 上一章我們得到了Token序列,而語法分析就是根據Token序列構造抽象語法樹的過程,抽象語法樹是一種用來描述程序代碼語法 結構的樹形表示方式,這種結構化的表示方式將為後面語義分析、代碼生成階段提供極大
第四章 語法分析(下)——LR文法
文章目錄 概述 基本概念 移動-歸約語法分析技術 SLR 增廣文法 狀態內部擴充套件 狀態之間的擴充套件 構建分析表 ACTION 構造SLR語法分析表
第四章 語法分析(上)——LL(1)文法
文章目錄 概述 LL(1)文法 LL(1)文法的判定 消除左遞迴 提取左公因子 First集合 Follow集合 預測分析表的構造 表驅動推導例項 概述 語法分析器是
編譯原理 第三章 詞法分析(上)
3.1.1 為什麼編譯器要把詞法分析和語法分析分開 3.1.2 詞法單元、模式和詞素(重要) 例: 3.1.3 詞法單元的屬性(重要) 詞法單元的屬性是用來記錄相對應的詞素的一些相關屬性資訊。 例: int x = 10 + 20
編譯原理 第三章 詞法分析(下)
3.6 有窮自動機(非常重要) 3.6.1 不確定的有窮自動機(重要) 例: 狀態0是開始狀態, 在狀態0上輸入符號b會進入狀態0,輸入a可能進去狀態0也有可能進入狀態1。所以對於狀態0來說一個確定的輸入符號a他有兩種離開狀態,這就是一種不確定的狀態。 &nbs
編譯原理——第四章
第四章 語法分析 自上而下分析知識總結:1、語法分析器功能在詞法分析識別出單詞符號串的基礎上,分析並判定程式的語法結構是否符合語法規則。(1)從文法的起始符出發進行句子的推導,即自上而下的分析(2)從句子本身出發,進行歸約,看能否把句子規約為到起始符,即自下而上的規約
編譯原理第七章-語義分析和中間程式碼產生
語義分析的任務是:1.審查每一個語法結構的靜態語義,即驗證語法正確的結構是否有意義。2.在語義正確的基礎上生成一種中間程式碼或目的碼。語義分析的範圍是:1.確定型別:確定識別符號所關聯的資料型別。2.型別檢查:按語言的型別規則,檢查運算的合法性與運算分量型別的一致性,必要時作
編譯原理第七章——語義分析和中間程式碼的產生
1、知識點圖重點記憶:說明語句的翻譯 程式語言中的說明語句都是給編譯程式提供資訊的,諸如型別、維數、每維的界種類等,因此一般不生成目標,只是在編譯時把有關資訊填入相應表格即可。賦值語句的翻譯 1.簡單算術表示式的賦值語句: 所謂簡單指不考慮陣列元素、記錄、函
現代編譯原理——第1章:詞法分析
轉自: http://www.cnblogs.com/BlackWalnut/p/4467749.html 當我們寫好一份原始碼,提交給編譯器的時候,這是編譯器對我們提交程式碼進行詞法分析。這個整個編譯過程的第一步。詞法分析器將我們的提交的程式碼看作是一個文字,它工作的目的就是將這個文字中
現代編譯原理——第三章:抽象語法樹以及原始碼
轉自: http://www.cnblogs.com/BlackWalnut/p/4508093.html 這是flxe的檔案,檔名稱為tiger.l %{ #include <string.h> #include "util.h" #
編譯原理第三章筆記--詞法分析
3.1對詞法分析器的要求一、單詞符號語言中具有獨立意義的最小的語法符號單詞的種類: 基本字 if...else這種 識別符號 起名來表示變數名、函式名 常數 運算子 界符 ; {} () , 這種二、單詞的表示形式
編譯原理 第六章 屬性文法和語法制導翻譯
一、知識總結 首先學習了屬性文法,屬性文法是在上下文無關文法的基礎上為每個文法符號(終結符或非終結符)配備若干個相關的“值”,稱為“屬性”。屬性分為綜合屬性和繼承屬性。綜合屬性用於“自下而上”傳遞資訊,在語法樹中,一個結點的綜合屬性的值,由其子結點的屬性值確定。
編譯原理第六章-屬性文法和語法制導翻譯
第六章主要講了屬性文法、語義規則、基於屬性文法的處理、S屬性的自下而上計算、L-屬性文法的自頂向下翻譯等內容。一些基本的概念:屬性文法:是在上下文無關文法的基礎上為每個文法符號(終結符或非終結符)配備若干個相關的“值”(稱為屬性)。屬性:代表與文法符號相關的資訊,
編譯原理(五)語法分析之自底向上分析之算符優先分析法
logs cnblogs div mar 分析法 clas pos block mark 語法分析之自頂向下分析 說明:以老師PPT為標準,借鑒部分教材內容,AlvinZH學習筆記。 先看看PPT吧! 引用說明 - 邵老師課堂PDF - 《編譯原理級編譯程序構造》 編譯