導航:首頁 > 源碼編譯 > 編譯原理箭頭上面一個加號乘號

編譯原理箭頭上面一個加號乘號

發布時間:2025-03-16 01:20:33

『壹』 【編譯原理】第二章:語言和文法



上述文法 表示,該文法由終結符集合 ,非終結符集合 ,產生式集合 ,以及開始符號 構成。
而產生式 表示,一個表達式(Expression) ,可以由一個標識符(Identifier) 、或者兩個表達式由加號 或乘號 連接、或者另一個表達式用括弧包裹( )構成。

約定 :在不引起歧義的情況下,可以只寫產生式。如以上文法可以簡寫為:

產生式

可以簡寫為:

如上例中,

可以簡寫為:

給定文法 ,如果有 ,那麼可以將符號串 重寫 為 ,記作 ,這個過程稱為 推導
如上例中, 可以推導出 或 或 等等。

如果 ,
可以記作 ,則稱為 經過n步推導出 ,記作 。

推導的反過程稱為 歸約

如果 ,則稱 是 的一個 句型(sentential form )。

由文法 的開始符號 推導出的所有句子構成的集合稱為 文法G生成的語言 ,記作 。
即:


文法

表示什麼呢?
代表小寫字母;
代表數字;
表示若干個字母和數字構成的字元串;
說明 是一個字母、或者是字母開頭的字元串。
那麼這個文法表示的即是,以字母開頭的、非空的字元串,即標識符的構成方式。

並、連接、冪、克林閉包、正閉包。
如上例表示為:

中必須包含一個 非終結符


產生式一般形式:
即上式中只有當上下文滿足 與 時,才能進行從 到 的推導。

上下文有關文法不包含空產生式( )。


產生式的一般形式:
即產生式左邊都是非終結符。

右線性文法
左線性文法
以上都成為正則文法。
即產生式的右側只能有一個終結符,且所有終結符只能在同一側。

例:(右線性文法)

以上文法滿足右線性文法。
以上文法生成一個以字母開頭的字母數字串(標識符)。
以上文法等價於 上下文無關文法

正則文法能描述程序設計語言中的多數單詞。

正則文法能描述程序設計語言中的多數單詞,但不能表示句子構造,所以用到最多的是CFG。

根節點 表示文法開始符號S;
內部節點 表示對產生式 的應用;該節點的標號是產生式左部,子節點從左到右表示了產生式的右部;
葉節點 (又稱邊緣)既可以是非終結符也可以是終結符。

給定一個句型,其分析樹的每一棵子樹的邊緣稱為該句型的一個 短語
如果子樹高度為2,那麼這棵子樹的邊緣稱為該句型的一個 直接短語

直接短語一定是某產生式的右部,但反之不一定。

如果一個文法可以為某個句子生成 多棵分析樹 ,則稱這個文法是 二義性的

二義性原因:多個if只有一個else;
消岐規則:每個else只與最近的if匹配。

閱讀全文

與編譯原理箭頭上面一個加號乘號相關的資料

熱點內容
為什麼蘋果ipad連接不上伺服器 瀏覽:927
可樂app怎麼用卡密 瀏覽:766
路由器如何打開dhcp伺服器地址 瀏覽:75
谷歌圖片怎麼搜索app 瀏覽:863
江蘇文件夾模具廠 瀏覽:464
安卓系統網線攔截怎麼關閉 瀏覽:31
伺服器和終端是什麼 瀏覽:516
換安卓蘋果照片怎麼弄回去 瀏覽:260
如何向ca中心申請伺服器 瀏覽:187
從java到Android 瀏覽:551
福建加密app哪個好用 瀏覽:382
opengl游戲編程徐明亮pdf 瀏覽:619
單片機row怎麼用 瀏覽:981
虛函數表與反編譯 瀏覽:134
網上的滴滴搶單app是怎麼做的 瀏覽:384
eve手游ios賬號怎麼登錄安卓的 瀏覽:622
linuxoracle12安裝教程 瀏覽:697
凱迪仕cpu動態加密 瀏覽:751
dell伺服器如何啟動 瀏覽:968
數字信號處理第三版pdf 瀏覽:684