每種程序設(shè)計語言都有描述程序語法結(jié)構(gòu)的規(guī)則。例如,Pascal程序由程序塊(又叫分程序)構(gòu)成,程序塊由語句組成,語句由表達(dá)式組成,表達(dá)式由記號組成等等。這些規(guī)則可以用上下文無關(guān)文法或BNF范式(Backus-Naur Form)描述。 編譯器常用的文法分析方法有自上而下和自下而上兩種。正如它們的名字所示,自上而下分析器建立分析樹是從根結(jié)點到葉結(jié)點,而自下而上分析器恰好反過來。它們的共同點是從左向右地掃描輸入,每次一個符號。 最有效的自上而下和自下而上的分析法都只能處理上下文無關(guān)文法的子類。這些子類足以描述程序設(shè)計語言的大多數(shù)語法結(jié)構(gòu),其中LL文法的分析器通常用手工實現(xiàn),而LR文法的分析器通常利用自動工具構(gòu)造。 本章致力于編譯器采用的典型語法分析方法。我們首先提出有關(guān)上下文無關(guān)文法的基本概念,然后介紹適合于手工實現(xiàn)的預(yù)測分析技術(shù),最后給出自動工具用的LR分析算法。由于程序員準(zhǔn)備的代碼經(jīng)常會出現(xiàn)一些語法錯誤,因此我們還擴(kuò)展所介紹的分析方法,使之能從常見的錯誤中恢復(fù)過來。 3.1 上下文無關(guān)文法 ..... 3.4 自下而上分析 3.6 二義文法的應(yīng)用
標(biāo)簽: 程序設(shè)計語言 程序
上傳時間: 2013-12-25
上傳用戶:hanli8870
一個關(guān)于五子棋主要算法的描述,幫助大家明白五子棋的主要工作原理。
標(biāo)簽: 算法
上傳時間: 2015-10-20
上傳用戶:watch100
gcc 操作參數(shù)細(xì)解,程編人員在操作gcc時得以了解參數(shù)用意
標(biāo)簽: gcc 操作
上傳用戶:zhaiye
SDI接口的源程序,包括擾碼編碼,并串轉(zhuǎn)換,用VHDL硬件描述語言編寫
標(biāo)簽: VHDL SDI 接口 源程序
上傳時間: 2014-08-24
上傳用戶:gtzj
這是一個用Matlab描述的關(guān)于X+Y的圖靈機程序,希望對大家有些用
標(biāo)簽: Matlab 程序
上傳時間: 2014-05-30
上傳用戶:shanml
流片過的risc_8051源代碼 verilog語言描述的~
標(biāo)簽: verilog risc 8051 流片
上傳時間: 2013-11-30
上傳用戶:英雄
RAM之VHDL描述 RAM之VHDL描述 RAM之VHDL描述
標(biāo)簽: VHDL RAM
上傳時間: 2015-10-23
上傳用戶:牛布牛
手寫字體的書寫顯示、筆畫描述。動態(tài)展示手寫字體的書寫過程
標(biāo)簽: 字體 動態(tài) 過程
上傳時間: 2015-10-24
上傳用戶:yoleeson
單純形算法描述 在地學(xué)分析課上學(xué)到的一點東西 用VC寫的
標(biāo)簽: 算法 分
上傳時間: 2013-12-19
上傳用戶:fnhhs
國外一學(xué)者開發(fā)的數(shù)據(jù)描述方法的源代碼,幾乎包括了所有的數(shù)據(jù)描述方法,有SVDD,KSVDD等等,將會是一個很好的用于野點檢測和模擬識別的工具箱,可直接使用(本人已用過)
標(biāo)簽: 數(shù)據(jù) 源代碼
上傳用戶:417313137
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1