Relazione tra analisi a riduzione del turno e continuazioni delimitate?


13

Qualcuno ha formalizzato la relazione tra tecniche di analisi a riduzione del turno e continuazioni delimitate?

Quando si costruisce un parser bottom-up (ad esempio, parser LR), prendiamo una grammatica e quindi rappresentiamo gli stati di analisi come insiemi di elementi : produzioni aumentate del modulo , dove α e β sono sequenze di terminali e non terminali. Il marcatore rappresenta fino a che punto il parser è arrivato nella stringa, con α che rappresenta ciò che è stato visto finora e β che rappresenta una previsione di ciò che può ancora essere analizzato.Aαβαβαβ

Un'azione di trasferimento in una transizione dell'automa LR parse corrisponde un prefisso della pila contro , e sostituirlo con A . Una manipolazione così profonda della pila ricorda l'effetto di un operatore di controllo, ma questa è solo un'osservazione qualitativa.αA

Qualcuno ha studiato la connessione tra analisi di riduzione del cambio e operatori di controllo delimitati come shift / reset?


Osservazione interessante
Dave Clarke,

Ci si sarebbe potuto aspettare che Michael Sperber avesse scritto da qualche parte su questa relazione, dato il suo lavoro sull'analisi del CPS LR e sulle continuazioni delimitate, ma non ho trovato nulla.
Sylvain,

Ricordo che Ken Shan mi aveva menzionato questa connessione nel 2004 e mi aveva suggerito che sarebbe stata un'ottima opportunità di gioco di parole. Tuttavia, non so che abbia scritto / codificato nulla al riguardo.
Noam Zeilberger,

Risposte:


4

Credo che il seguente documento esplori alcune di queste connessioni, principalmente usando le continuazioni per tornare indietro quando accadono cose nei parser. Ma c'è sicuramente molto altro da fare qui.

Rollback modulare tramite registrazione di controllo: una coppia di gemme funzionali gemelle

Olin Shivers, Aaron Turon , ICFP 2011.

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.