Abbiamo un'applicazione che consente agli utenti di immettere condizionali nella forma bound op x op bound2
, la memorizziamo come una stringa e quindi la analizziamo in fase di esecuzione per valutarla.
È una quantità decente di lavoro, per una dichiarazione condizionale molto limitata.
Stiamo cercando un modo per serializzare e quindi valutare condizioni complesse, con almeno un livello di complessità dell'intervento di commutazione.
Ho visto in questa domanda Come serializzare e deserializzare l'espressione lambda in F #? che in f # puoi semplicemente serializzare un lambda (e presumo che ci sia un modo per ottenere un lambda da una stringa di testo), ma:
- Dobbiamo farlo in Java
- So che possiamo compilare il codice java al volo e renderlo "sicuro" eliminando le parole chiave e non consentendo cose come
System.
ma anche se non è un incubo per la sicurezza, è proibitivamente computazionalmente costoso da fare migliaia di volte.
Qualcuno sa di un linguaggio piccolo là fuori il cui interprete può fare solo le basi (condizionali, cicli, assegnazione delle variabili) ed essere eseguito in / come java, o in qualsiasi modo per eseguire quei tipi di espressioni così come sono definiti in fase di runtime e devono essere persistenti.
Aggiornamento: Per essere chiari, la funzionalità minima di cui ho bisogno è una catena if else. Non ho solo bisogno di valutare una condizione. L'unica condizione è ciò che ho già.