2012-05-17 14 views
8

Para ampliar mi comprensión de analizadores y gramáticas, estoy buscando un ejemplo (afortunadamente simple) de un lenguaje que es LL (2) pero no LL (1). Es decir, un lenguaje que puede ser generado por una gramática LL (2) pero no por ninguna gramática LL (1).Lenguaje LL (2) que no es LL (1)

¿Hay idiomas útiles en esa clase? ¿Podríamos imaginar un lenguaje de computadora que sea LL (2) pero no LL (1)?

+1

http://dl.acm.org/citation.cfm?id=805431 (vea el resumen) –

+0

Gracias, pero esto no es lo que pregunté. Sé que tales idiomas existen. Solo quiero ver a uno de ellos como un ejemplo. – Norswap

Respuesta

12

El ejemplo mencionado en el libro vinculado en la respuesta de Gunther:

S -> a S A | epsilon 
A -> a^k b S | c 

es una gramática que describe un lenguaje LL (k + 1) que no es LL (k). En particular,

S -> a S A | epsilon 
A -> a b S | c 

es una gramática que describe un lenguaje LL (2) que no es LL (1).

Cuestiones relacionadas