Quanto più grande può essere un automa LR (1) per una lingua rispetto all'automa LR (0) corrispondente?


10

In un parser LR (0), ogni stato è costituito da una raccolta di elementi LR (0), che sono produzioni annotate con una posizione. In un parser LR (1), ogni stato è costituito da una raccolta di elementi LR (1), che sono produzioni annotate con una posizione e un carattere lookahead.

È noto che dato uno stato in un automa LR (1), l'insieme di configurazione formato facendo cadere i token lookahead da ciascun elemento LR (1) produce un insieme di configurazione corrispondente ad uno stato nell'automa LR (0). In tal senso, la principale differenza tra un automa LR (1) e un automa LR (0) è che l'automa LR (1) ha più copie degli stati nell'automa LR (0), ognuno dei quali è annotato con lookahead informazione. Per questo motivo, gli automi LR (1) per un determinato CFG sono in genere più grandi del corrispondente parser LR (0) per quel CFG.

La mia domanda è quanto può essere più grande l'automa LR (1). Se ci sono simboli terminali distinti nell'alfabeto della grammatica, allora in linea di principio potremmo aver bisogno di replicare ogni stato nell'automa LR (0) almeno una volta per sottoinsieme di quei n simboli terminali distinti, portando potenzialmente a un LR (1 ) automa che è 2 n volte più grande della LR originale (0) automa. Dato che ogni singolo elemento nell'automa LR (0) è costituito da un insieme di elementi LR (0) diversi, potremmo ottenere un ingrandimento ancora maggiore.nn2n

Detto questo, non riesco a trovare un modo per costruire una famiglia di grammatiche per cui l'automa LR (1) sia significativamente più grande dell'automa LR (0) corrispondente. Tutto ciò che ho provato ha portato a un modesto aumento delle dimensioni (di solito intorno a 2-4x), ma non riesco a trovare uno schema che porti a un grande scoppio.

Esistono famiglie di grammatiche libere dal contesto i cui automi LR (1) sono esponenzialmente più grandi dei corrispondenti automi LR (0)? O è noto che nel peggiore dei casi, non si può effettivamente ottenere un esponenziale esplodere?

Grazie!


problemi come questi sono talvolta suscettibili di test empirici. cosa penseresti dei singoli casi generati casualmente che (sono selezionati per) esibire l'esplosione? c'è un modello in questi tipi di domande che le costruzioni "dall'aspetto casuale" mostrano la maggior "complessità" ...
vzn

2
Le istanze peggiori sono di solito difficili da trovare campionando casualmente, almeno se il caso medio è significativamente migliore.
Raffaello

ps sarebbe utile se includi esempi dei casi di ingrandimento 2x-4x da qualche parte, non nca nel post ...
vzn

idea / lead: LR analisi delle permutazioni (cstheory.se)
vzn

LALR (1) è comunemente presentato come un modo per avvicinarsi sufficientemente al potere LR (1) per essere utile con molti meno stati (per usare le parole del libro del Drago). Mi chiedo se un semplice fattore da 2 a 4 sarebbe stato sufficiente a respingere LR (1) come proibitivo fino all'invenzione di LALR (1). Se ci penso quando sono accessibili, darò un'occhiata in Aho & Ullman La teoria dell'analisi, traduzione e compilazione e nelle Tecniche di analisi di Grune se hanno qualcosa sui numeri.
AProgrammer

Risposte:


2

La grammatica

ST0TnaTn+1TnbTn+1TnbTn+1tnTNtN

TNtN˙
2N{t0tN1}N2N/N

TNT0


0

Tali limiti inferiori sono talvolta difficili da costruire e possono evocare una teoria CS più profonda (ad esempio in casi, separazioni di classi di complessità). Questo documento sembra dare una costruzione teorica / limiti inferiori che cerchi, ad esempio nel Teorema 5, che pone un limite inferiore sui simboli totali e quindi afferma anche. I riferimenti includono anche altre costruzioni simili / limiti inferiori.

f(n,k)=214(nk)/n2k=0,1;...,n1Lnn3f(n,k)f(n,k)

Sulla dimensione dei parser e LR (k) -grammars / Leunga, Wotschkeb


2(n1)/4/n22n/4/n2legato alla dimensione dell'automa LR (0) per quella lingua. Quindi questa risposta non risponde alla domanda che è stata posta.
DW

1.1892

DW pensa che la tua obiezione sia legittima e si avvicini alla piega dei capelli. grazie mille per il chiarimento / dettaglio. è una risposta scientifica pertinente / quasi diretta a / studio sistematico della sua domanda che riguarda essenzialmente la / le costruzione / i di linguaggio / i peggiori nel caso in LR (n). è possibile che questi siano (quasi?) i "risultati più noti" nell'area. una risposta legittima alla domanda potrebbe essere negativa, ovvero NO, non si conoscono risultati migliori di quelli trovati dall'interrogatore (che non ha ancora esposto ) o in letteratura. attendo con impazienza altre risposte definitive !
vzn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.