Simplificacion de Gramaticas
Dado G = (VT, VN, P, S) quiero generar G’ = (VT’, VN’, P’, S’) sin reglas lexicograficas.
§ VN’ = VN È{Z} (Agrego un nuevo No Terminal)
§ P’=
N ::= aB si N::=aB en P
N ::= l si N::=l en P
N::=aZ si N::=a en P
Z::= l
Dado G = (VT, VN, P, S) quiero generar G’ = (VT’, VN’, P’, S’) sin reglas borradoras
(excepto S=l)
§ VN’ = VN
§ P’=
N ::= aB si N::=aB en P
N ::= a si N::=a en P
" C::=dN con N::= l C::=d
§ Se eliminan:
a. Tipos que aceptan sartas infinitas (formalizar mejor esta definicion)
b. Producciones que nunca son accedidas desde S
Se sacan las siguientes producciones:
a. S No Genera aE con aÎVT*
b. C No Genera a con aÎVT*
Eliminacion de Reglas de Renombramiento (Para CFG)
Si N::= B ^ B ::= a con aÎVN entonces se elimina N::=B y se pone N::=a