問答題
對下面的文法G: (1)計算這個文法的每個非終結符的FIRST集和FOLLOW集。 (2)證明這個方法是LL(1)的。 (3)構造它的預測分析表。
文法: 判斷G是否為LL(1)文法,如果是,構造LL(1)分析表。
由于預測分析表中無多重入口,所以可判定文法是LL(1)的。
符號串xxyyyx是如下文法G[S]的句子 (1)構造該句子的分析樹; (2)寫出生成該句子的最左推導; (3)寫出生成該句子的規(guī)范歸約過程;指出每步歸約中的句柄。
考慮文法G[S]:
1.求出該文法的每個非終結符的FOLLOW集; 2.構造該文法的預測分析表。
改寫以下文法,使其滿足采用自頂向下分析方法的要求。
用DAG圖對下面的基本塊進行優(yōu)化(假定出基本塊后只有A、G、L是活躍的):
給定PASCAL程序語句 1.將該語句翻譯成逆波蘭式; 2.給出編譯程序掃描到then處及分號處時所得的四元式序列。
某語言算術表達式的文法定義為其中,第三個候選式稱為條件算術表達式,B為布爾表達式,then及else后的E均為算術表達式(即簡單算術表達式或條件表達式),其語義為,當B為真時,表達式的值取then后的E的值,否則取else的E的值。假定所有表達式是整型的,試將下面關于條件算術表達式的屬性翻譯文法填寫完全:
1。見圖:
給定基本塊: 假定出基本塊后,只有A、C、E是活躍的,給出用DAG圖完成優(yōu)化后的代碼序列。