Professional Documents
Culture Documents
Guatemala, 2013
Gramticas Ascendentes
Construye el rbol de anlisis sintctico de las hojas a la raz.
Funcionamiento
Gramtica Ascendente SL L L , id L id
Entrada: id,id,id
S L L L
id
L
id
L
id
,
id
L L
id
,
id
id
L
id
L
id
Funcionamiento
Gramtica Descendente SL Entrada: id,id,id L id , L L id
S L
id
S L , L
id
S L ,
id
S L L , L
id
,
id
L , L
id
Desplazamiento y Reduccin
El anlisis ascendente lineal ms utilizado es el algoritmo de desplazamiento-reduccin (shiftreduce). Este algoritmo se basa en una pila de estados y una tabla de anlisis. La funcin de transicin se define en base a las siguientes acciones sobre la pila.
Ejemplo
Gramtica Ascendente S B A end A begin C C codigo B tipo B id B Entrada: id tipo begin codigo end
Ejemplo
Pila
$ $ id $ id tipo
Entrada
Accin
id tipo begin codigo end $ Desplazar tipo begin codigo end $ Desplazar begin codigo end $ Reducir B tipo
$ id B
$B $ B begin
$ B begin codigo
$ B begin C $BA $ B A end $S
Ejemplo
S
B
id
A
B
tipo
tipo
end
C
codigo
Ejemplo
S
B
id
A
B
tipo
tipo
end
C
codigo
Desplazar: id
id
Ejemplo
S
B
id
A
B
tipo
tipo
end
C
codigo
Desplazar: tipo
id
tipo
Ejemplo
S
B
id
A
B
tipo
tipo
end
C
codigo
Reducir: B tipo
id
Ejemplo
S
B
id
A
B
tipo
begin
end
C
codigo
Reducir: B id B
Ejemplo
S
B
id
A
B
tipo
begin
end
C
codigo
Desplazar: begin
begin
Ejemplo
S
B
id
A
B
tipo
begin
end
C
codigo
Desplazar: codigo
begin
codigo
Ejemplo
S
B
id
A
B
tipo
begin
end
C
codigo
Reducir: C codigo
begin
Ejemplo
S
B
id
A
B
tipo
begin
end
C
codigo
Reducir: A begin C
Ejemplo
S
B
id
A
B
tipo
begin
end
C
codigo
Desplazar: end
end
Ejemplo
S
B
id
A
B
tipo
begin
end
C
codigo
Reducir: S B A end