2012-01-25 22 views
10

Sul Web, ci sono molti esempi che mostrano come costruire le tabelle di analisi per una grammatica context-free dai set first/follow per il parser LL (1).Come costruire la tabella di analisi per LL (k> 1)?

Ma non ho trovato nulla di utile relativo a k> 1 casi. Anche wikipedia non fornisce informazioni su questo.

Mi aspetto che sia in qualche modo simile, ma gli indicatori della ricerca esistente in questo settore sarebbero molto utili.

+0

Ho una copia di un grande libro sull'analisi che, sfortunatamente, salta questo argomento. Sono solo curioso come te. Dalla mia comprensione, però, gli algoritmi per k> 1 sono sostanzialmente più coinvolti e completamente non fattibili nella pratica. Credo che lo scopriremo! – templatetypedef

+2

Non penso che sia impossibile. Almeno crediti ANTLR per l'analisi di grammatiche LL (K) (con qualsiasi K). –

+0

Con parser di discesa ricorsivi è facile, basta mantenere un elenco di look ahead. Poi ci sono molte ottimizzazioni per migliorare su questo, come la memorizzazione e il rintracciamento. Non sei sicuro di come funzionerebbe per un parser basato su tabella! Lo hai già capito? –

risposta

1

Io lotto più o meno con gli stessi problemi, costruendo parser LR, non LL. Ho trovato una pagina leggermente migliore di LL (k) menzionata da @cakeplus - http://www.seanerikoconnor.freeservers.com/ComputerScience/Compiler/ParserGeneratorAndParser/QuickReviewOfLRandLALRParsingTheory.html C'è anche la carta correlata disponibile gratuitamente - http://ci.nii.ac.jp/naid/110002673618/

Tuttavia, anche quelli non mi hanno aiutato molto. Così ho iniziato dalle basi. Se qualcuno è interessato: https://aboutskila.wordpress.com/2013/06/14/lalrk-first-sets/ e la battaglia continuerà :-)

+1

Link è morto. :( – paulotorrens

+1

@paulotorrens, riparato l'ultimo, grazie – greenoldman

+0

Vorrei poter trovare un algoritmo per calcolarli, probabilmente eseguirò il reverse engineer [questo] (http://www.fit.vutbr.cz/~ikocman/ llkptg /). – paulotorrens