Janino 2.7.8
Sarai in grado di scaricare in 5 secondi.
Circa Janino
Janino è un super-piccolo, super-fastcompiler che legge un'espressione Java, un blocco o un file di origine e genera codice byte Java caricato ed eseguito direttamente. Non è destinato a essere uno strumento di sviluppo, ma un compilatore incorporato a scopo di compilazione in fase di esecuzione, ad esempio valutatori di espressioni o motori "pagine server" come JSP. Proprietà L'obiettivo principale del progetto era quello di mantenere il compilatore piccolo e semplice, sacrificando parzialmente la completezza. Non mi piace l'idea di portare in giro enormi librerie per semplici applicazioni. Vedere Parser per l'elenco delle funzionalità della lingua implementate e mancanti. Quando hai bisogno di un valutatore di espressioni efficiente? Diciamo che costruisci un sistema di e-commerce, che calcola il costo di spedizione per gli articoli che l'utente ha messo nel suo carrello. Poiché non conosci il modello di costo di spedizione del commerciante al momento dell'implementazione, puoi implementare una serie di modelli di costi di spedizione che vengono in mente (tariffa forfettaria, in peso, per numero di articoli, ...) e selezionarne uno in fase di esecuzione. In pratica, troverai sicuramente che i modelli di costo di spedizione che hai implementato raramente corrisponderanno a ciò che il commerciante vuole, quindi devi aggiungere modelli personalizzati, che sono specifici del commerciante. Se il modello del commerciante cambia in un secondo momento, è necessario modificare il codice, ricompilare e ri distribuire il software. Poiché ciò non è flessibile, l'espressione del costo di spedizione deve essere specificata in fase di esecuzione, non in fase di compilazione. Ciò implica che l'espressione deve essere digitalizzata, analizzata e valutata in fase di esecuzione, motivo per cui è necessario un valutatore di espressione. Un semplice valutatore di espressioni analizzerebbe un'espressione e creerebbe una "struttura ad albero della sintassi". L"espressione "a + b * c", ad esempio, viene compilata in un oggetto "Sum" il cui primo operando è il parametro "a" e chi è il secondo operando è un oggetto "Product" che gli operandi sono parametri "b" e "c". Tale albero della sintassi può essere valutato relativamente rapidamente. Tuttavia, le prestazioni in fase di esecuzione sono circa un fattore 100 peggiore di quello del codice Java nativo.