编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表

一、 LL(1)文法的判别条件

若一个文法满足以下条件,则称该文法G为LL(1)文法:

编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第1张图片

例题1

有文法
G(S):
S → S*aP | aP | *aP
P → +aP | +a
(1)判断该文法是否为LL(1)文法,如果不是,请改写成LL(1)文法

解:不是,因为 S → S*aP | aP | *aP 中含有左递归,P → +aP | +a 中含有左公共因子

改写:

消除左递归
S → aP S’| *aPS’
S’ → *aPS’|ε
P → +aP | +a

提取左公共因子
S → aP S’| *aPS’
S’ → *aPS’|ε
P → +aP’
P’→P|ε


编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第2张图片
编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第3张图片

编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第4张图片

例题2

编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第5张图片

解:

编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第6张图片

二、构造文法的预测分析表

练习题1:

编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第7张图片

解:(1)

编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第8张图片

(2)

编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第9张图片

(3)

编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第10张图片

三、练习题

题1:
给定文法G(S)如下:

编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第11张图片
(1)构造文法G(S)的预测分析表。(60分)
(2)给出输入db的分析过程,按下列格式写出分析过程(28分),分析结束后,给出分析结论(即判断分析成功,还是不成功)。(2分)
在这里插入图片描述

解:
(1)
编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第12张图片
预测分析表如下:
编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第13张图片
(2)
编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第14张图片在这里插入图片描述

题2:

编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第15张图片
解:
(1)
编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第16张图片
(2)

编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第17张图片
(3)
编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表_第18张图片

你可能感兴趣的:(编译原理学习笔记)