2012-05-17 11 views
8

Per approfondire la mia comprensione di parser e grammatiche, sto cercando un esempio (spero semplice) di una lingua che è LL (2) ma non LL (1). Cioè, un linguaggio che può essere generato da una grammatica LL (2) ma non da una grammatica LL (1).LL (2) lingua che non è LL (1)

Ci sono lingue utili in questa classe? Potremmo immaginare un linguaggio per computer che sia LL (2) ma non LL (1)?

+1

http://dl.acm.org/citation.cfm?id=805431 (vedere l'abstract) –

+0

Grazie, ma questo non è quello che ho chiesto. So che tali lingue esistono. Voglio solo vedere uno di loro come esempio. – Norswap

risposta

12

L'esempio citato nel libro collegato in risposta di Gunther:

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

è una grammatica che descrive una lingua LL (k + 1) che non è LL (k). In particolare,

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

è una grammatica che descrive un linguaggio LL (2) che non è LL (1).

Problemi correlati