Procedure term egin factor while sym in [times, slash] de begin getsym; factor end end
11 Procedure term; begin factor; while sym in [times,slash] do begin getsym;factor end end;
Procedure factor begin if sym=ident then getsym e⊥se if sym=number then getsym e⊥se if sym=( then begin getsym expr i 1f sym- then getsym else error end else error end 12
12 Procedure factor; begin if sym=ident then getsym else if sym=number then getsym else if sym= ‘ ( ‘ then begin getsym; expr; if sym= ‘ ) ’ then getsym else error end else error end; –
表驱动予测分析程序模型 Input # 总控程序 stack 预测分析表 13
13 表驱动予测分析程序模型 Input # 总控程序 预测分析表 stack
识别程序的数学模型下推自 动机 fa ao an a2 a3 a4 as a6 a, as.anla 磁头 有限控制器 14
14 带 a0 a1 a2 a3 a4 a5 a6 a7 a8 … an-1 an 有限控制器 磁头 识别程序的数学模型下推自 动机
上下文无关语言句型分析(识别)程序的数 学模型 下推自动机Pda=(K,Σ,f,H,hS,Z) H:下推栈符号的有穷字母表 h:H中的初始符号 f:Kx(Σ∪{8})×H->K×H* Pda的一个组态是K×∑*×H中的一个(k,w,a)k:当前状 态,W:余留输入串,a:栈中符号,最左边的符号在栈顶。 Pda的一次移动用组态表示 终止和接受的条件: 1.到达输入串结尾时,处在Z中的一个状态 或2.某个动作序列导致栈空时 15
15 上下文无关语言句型分析(识别)程序的数 学模型 下推自动机Pda=(K,Σ,f,H,h0,S,Z) H:下推栈符号的有穷字母表 h0 :H中的初始符号 f: K (Σ{}) H –> K H * Pda的一个组态是K Σ* H 中的一个(k,w,) k:当前状 态,w:余留输入串, :栈中符号,最左边的符号在栈顶。 Pda的一次移动用组态表示 终止和接受的条件: 1.到达输入串结尾时,处在Z中的一个状态 或 2.某个动作序列导致栈空时