文法1:
e→ e+t | t t→
t*f | f f→
id文法2:e
→ t+e | t t→
f*t | f f→
id 文法3:e
→ e*t | t t→
t+f | f f→
id
三個文法均包括兩個運算+和*,但在結合性和優先順序的處理上有所不同:
文法1左結合,先*後+
文法2右結合,先*後+
文法3左結合,先+後*
編譯器將高階語言編寫的源程式翻譯成等價的,用
低階語言
編寫的目標程式,直譯器則是執行源程式,只是將源程式轉換成一次執行的
中間**
,並不生成目標程式。
4.編譯器相對於直譯器的優點是什麼?直譯器相對於編譯器的優點是什麼?
由於編譯器生成的目標程式將多次執行,故編譯過程中優化工作非常重要,產生的目標程式比解釋執行更為高效。
由於直譯器是逐句執行,故其錯誤診斷效果好於編譯器。
5.下面關於解釋程式的說法正確的是:
①.解釋程式解決了編譯程式不能解決的問題。 ‚
②.basic語言編寫的程式採用的執行方式是解釋執行。 ƒ
③.解釋語言的特點是執行程式時不產生目標**。
a.‚
①② b. ②③
c.③① ƒ
d.③
b. basic 執行是解釋型即解釋便執行
6.描述一種語言的文法是:
a.唯一的 b.不唯一的 c.個數有限的 d.不能確定b
7.下面哪些不是語法分析器的任務。
①分析單詞是怎樣構成的 ‚
②分析單詞串是如何構成語句和說明的 ƒ
③分析語句和說明是如何構成程式的 „
④分析程式的結構
cc
‚bcbc
ƒbcbcc
„bbbcc
cc bbbcc
a、
z→abba→
aa|ab→
bb|b
b、 z→
abba
→aa|ab→
abb|b
c、 z→
aba→aab|a
d、 z→
aaba
→ab|aab|ε
d
c練習題 龍旗控股
龍旗控股 1 windows nt下的32位機執行環境下 char str welcome to 51 cc int array char p str int n int func int a 請計算 strlen str sizeof str sizeof array sizeof p sizeo...
Java練習題(一)
1.使用者輸入乙個整數,請輸出該整數的階乘 例如 5 120 class factorial system.out.printf d 階乘的結果為 d num,total 2.輸出99乘法表 class multiplication system.out.println for int i 1 i ...
練習題c (一)
1.計算字串最後乙個單詞的長度,單詞以空格隔開。include include using namespace std int main 2.計算最少出列多少位同學,使得剩下的同學排成合唱隊形 說明 n位同學站成一排,老師要請其中的 n k 位同學出列,使得剩下的k位同學排成合唱隊形。合唱隊形是指這...