編譯原理題,一個編譯原理題。。。

2022-12-03 15:55:07 字數 1732 閱讀 3278

1樓:匿名使用者

1)優先關係矩陣

2)句型( a+s+s) 中的

短語:a+s, a+s+s, ( a+s+s)直接短語:a+s

控制代碼:a+s

lpp:a+s

一個編譯原理的問題

2樓:

first(α) 是符號串α的開始符號集合。

也就是說,用推導的方法對α進行推導,一次次地使用產生式,用產生式右部的符號串替換一個非終結符,所有那些可能出現在第一個符號位置的終結符,就構成了開始符號集。

比如,在c語言中,對於符號串「語句」來說,識別符號(賦值語句)、if(條件語句)、printf(輸出函式)這些單詞(終結符)都是它開始符號集合中的元素,而+(加號)、}(右花括號)不可能出現在「語句」的開頭,所以不是它的開始符號集合中的元素。

follow(a)是非終結符a的後跟符號集合。

它是指在所有可能的句型中,一切可能出現在非終結符a後面的一個終結符。

這裡要特別注意是在「句型」中。

你可以自己舉例,比如分析一下c語言中「表示式」後面可能跟哪些單詞,它們就是非終結符「表示式」後跟符號集合中的元素。

你說的這兩個集合的交集問題不存在。

因為它們針對的是不同型別的物件(一個是符號串,另一個是某個非終結符)。

實際上,在選擇集合問題中,考慮的不是它們的交集,而是一個產生式右部符號串的first集跟這個產生式左端非終結符的follow集的並集。

考慮交集的,發生在相同左部的不同產生式的選擇集合之間。

一個編譯原理的題?

3樓:匿名使用者

舉些例子就知道了(反例):

a、aaab

c、aabab

d、aaa

選b。既然有偶數個a,只要有a*的,基本不對,因為任意構造一個合法的串,你總能再加一個a而變成不合法的。

包含偶數個a的串主要還要考慮到中間穿插有b的情況,這個正規式構造比較複雜,得多想一想,選擇題還是反例吧:-)

一個編譯原理問題

4樓:匿名使用者

首先寫出指定句型的規範推導:

s→(l)→(l,s)→(l,(l))→(l,(s))→(l,(a))→(s,(a))

然後畫出分析樹如下圖

根據分析樹的葉子結點可以找出該句型的所有短語:

a   s   (a)   s,(a)   (s,(a))直接短語,就是經過一次非終結符替換得到的短語:

a   s   沒了

控制代碼就是最左直接短語,要進行規約的部分,根據分析樹我們找到最左直接短語為:s

一道編譯原理題

5樓:

肯定的,你的a是多重定義的,原因如下:

原始檔在編譯時是要先預處理的,file1.c預處理的結果為#line 1 "對應路徑/file1.c"

#line 1 "對應路徑/head.h"

short int a = 10;

#line 3 "對應路徑/file1.c"

main()

而file2.c的預處理結果為

#line 1 "對應路徑/file2.c"

#line 1 "對應路徑/head.h「short int a = 10;

它倆編譯後兩者的資料區都有一個型別為short int的變數a,當然肯定是報這個錯誤啦

編譯原理的題,一個編譯原理的題

舉些例子就知道了 反例 a aaab c aabab d aaa 選b。既然有偶數個a,只要有a 的,基本不對,因為任意構造一個合法的串,你總能再加一個a而變成不合法的。包含偶數個a的串主要還要考慮到中間穿插有b的情況,這個正規式構造比較複雜,得多想一想,選擇題還是反例吧 一個編譯原理題。1 優先關...

為什麼要學習編譯原理 轉),學習編譯原理和作業系統對程式設計能力有什麼作用?

編譯原理大約能讓你多個看問題的角度,作業系統大約能讓你長長見識。不過我對中國這方面的課程質量不抱任何希望。如果對程式設計能力做簡單分級,比如初級 中級和高階,作業系統是中級必學科目,編譯原理是高階必學科目。可以這麼說,不學就很難晉級。編譯原理告訴你 為什麼要這麼寫,你要搞懂系統或cpu是如何處理 的...

急急急編譯原理題目證明文法gee

消除文法g e 的左遞迴後得到 e te e te t ft t ft f e i 網路程式語言有哪些?java語言,語言都是目前最流行的網路程式語言。這兩種都是很有前景的。至於病毒的應該是對計算機底層操作的語言編寫的,比如 彙編或者c語言。樓上的說的不錯,建議你學.以後會越來越流行,而且預設的語言...