Quale approccio algoritmo dovrei prendere per generare espressioni Lambda in Java?

0

Buon giorno, sto cercando di trovare un modo per programmare un generatore di espressioni lambda in java con questa grammatica context-free, e vorrei chiedere; quale sarebbe il modo migliore per affrontare questo problema ed essere in grado di manipolarli con funzioni di calcolo lambda di base come la riduzione beta, la conversione alfa, ecc.?

Ho provato a farlo con le stringhe, ma è stato consigliato di interromperlo perché usare le stringhe mi limiterà a ciò che posso fare.

Ecco la grammatica Context Free che ho preso su internet:

 <expr>   ::=  <var>
             | <func> <arg>              # This is an application.
             | lambda <var> . <expr>     # This is an abstraction. 
 <func>   ::=  <var>
             | (lambda <var> . <expr>)    
             | <func> <arg>
 <arg>    ::=  <var>
             | (lambda <var> . <expr>) 
             | (<func> <arg>) 
 <var>    ::= a| b| .... | Z
    
posta nathan De Guia 12.09.2016 - 09:26
fonte

1 risposta

2

L'approccio più semplice sarebbe quello di utilizzare un parser generare (forse antlr) per creare un parser che produca un albero di analisi. È quindi possibile eseguire riduzioni e conversioni nell'albero di analisi, anziché su una stringa, che dovrebbe renderli molto più semplici.

    
risposta data 12.09.2016 - 15:13
fonte

Leggi altre domande sui tag