Janino 2.7.8

Licentie: Gratis ‎Bestandsgrootte: 1.05 MB
‎Gebruikersbeoordeling: 2.7/5 - ‎6 ‎Stemmen

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

Overeenkomst

EULA - Licentieovereenkomst voor eindgebruikers

Janino - Een embedded Java[TM] compiler Auteursrecht (c) 2001-2010, Arno Unkrig Alle rechten voorbehouden. Herverdeling en gebruik in bron- en binaire vormen, met of zonder wijziging, zijn toegestaan op voorwaarde dat de volgende voorwaarden worden gehaald: 1. Herverdelingen van broncode moeten het bovenstaande auteursrecht behouden let op, deze lijst met voorwaarden en de volgende disclaimer. 2. Herverdelingen in binaire vorm moeten het bovenstaande reproduceren auteursrechtelijk beschermde kennis, deze lijst met voorwaarden en de volgende disclaimer in de documentatie en/of ander materiaal voorzien van de distributie. 3. producten die zijn afgeleid van deze software zonder specifieke schriftelijke toestemming. DEZE SOFTWARE WORDT GELEVERD DOOR DE AUTEUR ''AS IS'' EN ELKE EXPRESS OF IMPLICIETE GARANTIES, WAARONDER, MAAR NIET BEPERKT TOT, DE IMPLICIETE GARANTIES GARANTIES VOOR HANDELSMOGELIJKHEDEN EN GESCHIKTHEID VOOR EEN BEPAALD DOEL WORDEN AFGEWEZEN. IN GEEN GEVAL IS DE AUTEUR AANSPRAKELIJK VOOR DIRECT, INDIRECT, INCIDENTEEL, BIJZONDER, VOORBEELDIG OF CONSEQUENT SCHADEVERGOEDING (INCLUSIEF, MAAR NIET BEPERKT TOT, AANSCHAF VAN VERVANGENDE GOEDEREN OF DIENSTEN; VERLIES VAN GEBRUIK, GEGEVENS OF WINST; OF BEDRIJF ONDERBREKING) ECHTER VEROORZAAKT EN OP ELKE THEORIE VAN AANSPRAKELIJKHEID, OF IN CONTRACT, STRIKTE AANSPRAKELIJKHEID OF ONRECHTMATIGE DAAD (INCLUSIEF NALATIGHEID OF ANDERS) ONTSTAAN IN EEN UITWEG UIT HET GEBRUIK VAN DEZE SOFTWARE, ZELFS INDIEN OP DE HOOGTE VAN DE MOGELIJKHEID VAN DERGELIJKE SCHADE.