Janino is een superklein, supersnelcompiler die een Java-expressie, blok of bronbestand leest en Java-bytecode genereert die rechtstreeks wordt geladen en uitgevoerd. Het is niet bedoeld als een ontwikkelingstool, maar een embedded compiler voor run-time compilatie doeleinden, zoals expression evaluators of "server pages" engines zoals JSP. Eigenschappen Het belangrijkste ontwerpdoel was om de compiler klein en eenvoudig te houden, terwijl het gedeeltelijk volledigheid opoffert. Ik houd niet van het idee van het dragen rond reusachtige bibliotheken voor eenvoudige toepassingen. Zie Parser voor de lijst met geïmplementeerde en ontbrekende taalfuncties. Wanneer heb je een efficiënte expressie evaluator nodig? Stel dat u een e-commercesysteem bouwt, dat de verzendkosten voor de artikelen die de gebruiker in zijn/haar winkelwagentje stopt, berekent. Omdat u het verzendkostenmodel van de verkoper niet kent tijdens de implementatie, u een set verzendkostenmodellen implementeren die in u opkomen (vaste kosten, per gewicht, op aantal artikelen, ...) en een van deze modellen tijdens uitvoering selecteren. In de praktijk zult u zeker merken dat de verzendkosten modellen die u geïmplementeerd zal zelden overeenkomen met wat de handelaar wil, dus je moet aangepaste modellen, die zijn merchant-specifieke toe te voegen. Als het model van de verkoper later verandert, moet u uw code wijzigen, uw software opnieuw compileren en opnieuw distribueren. Omdat dit zo onbuigzaam is, moet de weergave verzendkosten worden opgegeven tijdens run-time, niet op compileren. Dit houdt in dat de expressie moet worden gescand, ontleed en geëvalueerd tijdens run-time, dat is waarom je een expressie evaluator nodig hebt. Een eenvoudige expressie evaluator zou een expressie ontleden en een "syntax tree" maken. De uitdrukking "a + b * c", bijvoorbeeld, zou compileren in een "Sum" object who's first operand is parameter "a" and who's second operand is a "Product" object who's operands are parameters "b" and "c". Zo'n syntaxisboom kan relatief snel worden geëvalueerd. Echter, de run-time prestaties is ongeveer een factor van 100 erger dan die van native Java-code.
versiegeschiedenis
- Versie 2.5.7 geplaatst op 2002-11-09
De overzichtspagina bijgewerkt.
Programmadetails
- Categorie: Ontwikkeling > Andere
- Publisher: Arno Unkrig
- Licentie: Gratis
- Prijs: N/A
- Versie: 2.7.8
- Platform: windows