當前位置:首頁 » 編程軟體 » 編譯原理和是非終結符嗎

編譯原理和是非終結符嗎

發布時間: 2025-01-11 09:15:42

編譯原理問題:求解

E是文法開頭。ε代表終結符號(推理中代表終點或結果,程序語言中代表常量等)。E T 這些大寫字母一般代表非終結符號(這些代表中間過程,非結果。程序中代表函數等等)。開始是E。因為有個G(E)。E就是文法開始符號。推導就有E開始,它也是一個非終結符(代表函數、或者一個推導過程,類似於程序中的main(c++)、winmain(vc++)、dllmain(dll)等主函數)。

1算術表達式文法:這個文法是一個遞歸文法。計算機進行邏輯推導時會走很多彎路(類似於遍歷一顆樹的過程)。為了不讓計算機走彎路(提高效率的目的),可以變換為第二種文法。這種文法消除了遞歸(消除了歧義,類似於後綴表達式),使計算機可以一條直線走到底兒推導出結果。

我也很久沒看編譯原理了。 呵呵

② 編譯原理 終結符集合 包不包括空 ε 為什麼

因為空符既不是終結符,也不是非終結符,所以不包括。

③ 緙栬瘧鍘熺悊涓鏂囨硶鐨勪駭鐢熷紡鐨勫乏閮ㄧ﹀彿涓瀹氭槸涓涓闈炵粓緇撶﹀彿鍢涳紵榪欒瘽瀵逛笉

涓嶅圭殑錛屼笂涓嬫枃鏃犲叧鏂囨硶鍜屾h勫紡婊¤凍榪欎釜鏉′歡錛屼笂涓嬫枃鏈夊叧鏂囨硶鍜岀煭璇鏂囨硶涓嶆弧瓚寵繖涓鏉′歡銆

④ 什麼是文法(編譯原理)

【定義】

文法G定義為四元組(VN,VT,P,S)

其中 VN   :非終結符號(即語法變數)集

        VT   : 終結符號集

                   VN∩VT =Φ,令V= VN∪VT,V稱為文法G的字母表或字匯表。

        P  :產生式(α→β)集

        S :開始符號,且S∈VN ,S至少要在一條規則的左部出現。

【約定】

一般地,文法G的 四元組 不用全部給出 ,而只將產生式寫出。

約定:

    (1)第一條產生式的左部是開始符號

    (2)用尖括弧括起來的(或 大寫字母 )是非終結符號

    (3)不用尖括弧括起來(或 小寫字母 )是終結符號

    (4)還有一種習慣寫法,即 G[S] ,其中 S 是 開始符號 。

【舉例】

    例: G=(VN,VT,P,S)

           其中  VN={S},

           VT ={0,1},

           P={S→0S1,S→01}

           S是開始符號

⑤ 【編譯原理】第二章:語言和文法



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

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

產生式

可以簡寫為:

如上例中,

可以簡寫為:

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

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

推導的反過程稱為 歸約

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

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


文法

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

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

中必須包含一個 非終結符


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

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


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

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

例:(右線性文法)

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

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

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

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

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

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

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

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

熱點內容
android學習源碼 發布:2025-01-11 11:26:23 瀏覽:411
伺服器都壞了如何恢復 發布:2025-01-11 11:24:04 瀏覽:352
微博緩存的圖片能清理嗎 發布:2025-01-11 11:01:49 瀏覽:306
文字加密器 發布:2025-01-11 11:01:08 瀏覽:453
vc60非靜態編譯 發布:2025-01-11 10:51:32 瀏覽:614
電腦上怎麼解壓縮文件 發布:2025-01-11 10:51:31 瀏覽:783
槍戰王者如何用賬號密碼登錄 發布:2025-01-11 10:30:56 瀏覽:938
mysql在linux下安裝 發布:2025-01-11 10:30:49 瀏覽:845
資料庫copy 發布:2025-01-11 10:26:06 瀏覽:534
unity清理緩存 發布:2025-01-11 10:25:23 瀏覽:468