Generalizzazioni del metodo di Brzozowski di derivati ​​delle espressioni regolari alle grammatiche?


18

Il metodo dei derivati ​​di Brzozowski è una tecnica molto carina per costruire automi deterministici da espressioni regolari in modo piacevolmente algebrico. Ho elaborato alcune generalizzazioni carine di questa tecnica per gestire alcune classi più grandi di grammatiche, ma gli algoritmi sono abbastanza semplici da sembrare abbastanza possibili che siano stati scoperti prima. Ma i riferimenti su Google ai discendenti di questa tecnica non sembrano molto. Qualcuno sa qualcosa?


2
Sono abbastanza curioso di sapere a quali classi di grammatiche stai pensando. Riguardo ai discendenti, la tecnica di Antimirov, che produce invece automi non deterministici, è molto bella: derivati ​​parziali di espressioni regolari e costruzioni di automi finiti , TCS 155 (2), 1996, ( dx.doi.org/10.1016/0304-3975(95 ) 00182-4 ).
Sylvain,

vuoi dire generalizzazioni a linguaggi più complessi, come normale <sensibile al contesto <sensibile al contesto <...?
s8soj3o289

Ho esaminato i sottosistemi di CFG all'incirca nel quartiere dei VPL, principalmente.
Neel Krishnaswami,

... ma l'insieme di derivati ​​non è finito allora. E infatti se vuoi qualcosa di deterministico come con il metodo di Brzozowski, probabilmente sei limitato ai DCFL (quindi immagino che possa avere senso per i VPL).
Sylvain,

Risposte:



12

Potresti essere interessato a questo documento:

Yacc is Dead di Matthew Might e David Darais, 2010

Presentiamo due nuovi approcci per l'analisi delle lingue senza contesto. Il primo approccio si basa su un'estensione del derivato di Brzozowski dalle espressioni regolari a grammatiche libere dal contesto. Il secondo approccio si basa su una generalizzazione della derivata ai combinatori parser. Il vantaggio di queste tecniche è una piccola libreria di analisi (meno di 250 righe di codice), facile da implementare, in grado di analizzare grammatiche arbitrarie senza contesto in foreste di analisi pigre. Vengono fornite implementazioni per Scala e Haskell. Gli esperimenti preliminari con le S-Expressions hanno analizzato milioni di token al secondo, il che suggerisce che questa tecnica è abbastanza efficiente per l'uso nella pratica.

Anche di potenziale interesse:


Titolo di carta molto divertente! :-)
Dai Le

7

A metà degli anni '80, mentre stavo lavorando su parser di risalita ricorsivi e factoring di grammatiche, ho iniziato definendo derivate parziali delle grammatiche.

Molta buona teoria lì.

Hai domande specifiche?


In questo momento sto solo pescando in giro per lavoro correlato. Dal momento che ho pensato principalmente ai parser di discesa ricorsivi, quindi troverei applicazioni per l'analisi in stile LR come suggerisci particolarmente intriganti. Puoi indicarmi qualcuno dei tuoi documenti?
Neel Krishnaswami,
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.