Janino 2.7.8

Lizenz: kostenlos ‎Dateigröße: 1.05 MB
‎Benutzerbewertung: 2.7/5 - ‎6 ‎Stimmen

Janino ist ein superkleiner, superschneller Compiler, der einen Java-Ausdruck, einen Block oder eine Quelldatei liest und Java-Bytecode generiert, der direkt geladen und ausgeführt wird. Es ist nicht als Entwicklungstool gedacht, sondern als eingebetteter Compiler für Laufzeitkompilierungszwecke, z. B. Ausdrucksauswertungen oder "Serverseiten"-Engines wie JSP. Eigenschaften Das Hauptziel des Entwurfs war es, den Compiler klein und einfach zu halten, während er teilweise die Vollständigkeit opferte. Ich mag die Idee nicht, riesige Bibliotheken für einfache Anwendungen herumzutragen. Eine Liste der implementierten und fehlenden Sprachfeatures finden Sie unter Parser. Wann benötigen Sie einen effizienten Ausdrucksbewerter? Angenommen, Sie erstellen ein E-Commerce-System, das die Versandkosten für die Artikel berechnet, die der Benutzer in seinen Warenkorb gelegt hat. Da Sie das Versandkostenmodell des Händlers zur Implementierungszeit nicht kennen, können Sie eine Reihe von Versandkostenmodellen implementieren, die Ihnen in den Sinn kommen (Flat Charge, nach Gewicht, nach Anzahl der Artikel, ...) und eine davon zur Laufzeit auswählen. In der Praxis werden Sie mit Sicherheit feststellen, dass die Versandkostenmodelle, die Sie implementiert haben, selten mit dem übereinstimmen, was der Händler will, also müssen Sie benutzerdefinierte Modelle hinzufügen, die händlerspezifisch sind. Wenn sich das Modell des Händlers später ändert, müssen Sie den Code ändern, die Software neu kompilieren und neu verteilen. Da dies so unflexibel ist, sollte der Versandkostenausdruck zur Laufzeit und nicht zur Kompilierungszeit angegeben werden. Dies bedeutet, dass der Ausdruck zur Laufzeit gescannt, analysiert und ausgewertet werden muss, weshalb Sie einen Ausdrucksbewerter benötigen. Ein einfacher Ausdrucksauswertungswert würde einen Ausdruck analysieren und einen "Syntaxbaum" erstellen. Der Ausdruck "a + b * c", z. B., würde in ein "Sum" Objekt kompiliert, dessen erster Operand Parameter "a" ist und wer der zweite Operand ist ein "Produkt"-Objekt, dessen Operanden Parameter sind "b" und "c". Ein solcher Syntaxbaum kann relativ schnell ausgewertet werden. Die Laufzeitleistung ist jedoch um etwa 100 schlechter als der des systemeigenen Java-Codes.

VERSIONSVERLAUF

  • Version 2.5.7 veröffentlicht auf 2002-11-09
    Die Übersichtsseite wurde aktualisiert.

Programmdetails

Eula

EULA - Endbenutzer-Lizenzvertrag

Janino - Ein eingebetteter Java[TM]-Compiler Copyright (c) 2001-2010, Arno Unkrig Alle Rechte vorbehalten. Umverteilung und Verwendung in Quell- und Binärformen, mit oder ohne Änderungen zulässig sind, sofern die folgenden Bedingungen erfüllt sind: 1. Bei umverteilenden Quellcode muss das oben genannte Urheberrecht diese Liste der Bedingungen und den folgenden Haftungsausschluss. 2. Umverteilungen in binärer Form müssen die oben genannten Urheberrechtshinweis, diese Liste der Bedingungen und die folgenden Haftungsausschluss in der Dokumentation und/oder anderen Materialien mit der Verteilung versehen. (3) Der Name des Autors darf nicht verwendet werden, um Produkte, die aus dieser Software ohne spezifische schriftliche Genehmigung. DIESE SOFTWARE WIRD VOM AUTOR ''AS IS'' UND STILLSCHWEIGENDE GARANTIEN, EINSCHLIEßLICH, ABER NICHT BESCHRÄNKT AUF DIE WARRANTIEN VON MERCHANTABILITY UND FITNESS FÜR EINE PARTICULAR PURPOSE WERDEN NICHT BEANSPRUCHT. IN KEINEM FALL HAFTET DER AUTOR FÜR DIREKT, INDIREKT, BEILÄUFIG, BESONDERS, BEISPIELHAFT ODER FOLGEFOLGENHAFT SCHÄDEN (EINSCHLIEßLICH, ABER NICHT BESCHRÄNKT AUF DIE BESCHAFFUNG VON WAREN ODER DIENSTLEISTUNGEN; VERLUST VON NUTZUNG, DATEN ODER GEWINNEN; ODER BUSINESS UNTERBRECHUNG) JEDOCH VERURSACHT UND AUF JEDE THEORIE DER HAFTUNG, OB IN VERTRAG, STRENGER HAFTUNG ODER UNERLAUBTER HANDLUNG (EINSCHLIEßLICH FAHRLÄSSIGKEIT ODER ANDERNFALLS) IN IRGENDEINER WEISE AUS DER NUTZUNG DIESER SOFTWARE, WENN SIE ÜBER DIE MÖGLICHKEIT EINES SOLCHEN SCHADENS INFORMIERT WERDEN.