Janino Overview
Janino is a compiler that reads a Java expression, block, or source file, and generates Java bytecode that is loaded and executed directly. It is not intended to be a development tool, but an embedded compiler for run-time compilation purposes, such as expression evaluators or "server pages" engines like JSP.
Properties
The major design goal was to keep the compiler small and simple, while partially sacrificing completeness. I don't like the idea of carrying around huge libraries for simple applications. See Parser for the list of implemented and missing language features.
When do you need an efficient expression evaluator?
Say you build an e-commerce system, which computes the shipping cost for the items that the user put into his/her shopping cart. Because you don't know the merchant's shipping cost model at implementation time, you c ...
Download NOW! janino.zip (Size: 0.10 MB) |
Publisher Website: | Arno Unkrig |
Category: | Java |
License: | freeware ($0) |
Operating Systems: | Win95, Win98, WinME, WinNT 3.x, WinNT 4.x, Windows2000, WinXP, Unix, Linux, Mac PPC |
Filename: | janino.zip |
Size: | 0.10 MB |
MD5 Checksum: | |
Last Updated: | 02 Feb 2010 |
Screenshot: | - |
Full Description: Janino is a compiler that reads a Java expression, block, or source file, and generates Java bytecode that is loaded and executed directly. It is not intended to be a development tool, but an embedded compiler for run-time compilation purposes, such as expression evaluators or "server pages" engines like JSP.
Properties
The major design goal was to keep the compiler small and simple, while partially sacrificing completeness. I don't like the idea of carrying around huge libraries for simple applications. See Parser for the list of implemented and missing language features.
When do you need an efficient expression evaluator?
Say you build an e-commerce system, which computes the shipping cost for the items that the user put into his/her shopping cart. Because you don't know the merchant's shipping cost model at implementation time, you could implement a set of shipping cost models that come to mind (flat charge, by weight, by number of items, ...) and select one of those at run-time.
In practice, you will most certainly find that the shipping cost models you implemented will rarely match what the merchant wants, so you must add custom models, which are merchant-specific. If the merchant's model changes later, you must change your code, re-compile and re-distribute your software.
Because this is so unflexible, the shipping cost expression should be specified at run-time, not at compile-time. This implies that the expression must be scanned, parsed and evaluated at run-time, which is why you need an expression evaluator.
A simple expression evaluator would parse an expression and create a "syntax tree". The expression "a + b * c", for example, would compile into a "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". Such a syntax tree can evaluated relatively quickly. However, the run-time performance is about a factor of 100 worse than that of native Java code.
Changelog
Version: 2.5.16 (09 Nov 2002)Version: 2.5.15 (09 Nov 2002)
Version: 2.5.12
Why to stay up-to-date?
Most of the time having the latest version of a software is a good thing. Usually software updates add new features, which makes the software more usefull. Also with every update a software becomes more secure and more stable by fixing bugs & vulnerabilities from previous versions.We offer you 3 options in order to stay up-to-date with your software list:
1. Using Update Notifier (recommended) - AUTOMATIC PROCESS
The Update Notifier is a FREE small utility that scans your computer for installed software and displays a list of updates.
2. Register on the website and use the Watch List Option - MANUAL PROCESS
Signup on the website for free and use Watch List option (a collection of software, made by you, where you can see the current version or download it.
3. By Email - SEMI-AUTOMATIC PROCESS
Complete the following form and we'll send you an email, every time a new version of Janino is launched.
How can you help?
Because this is a free service and we intent to keep it free, we need your input. You can:1. Post a link to this software on your website
2. Report a problem/bug or feature requests, using the contact form
3. Notify us is a new version of Janino is released and we don't have it yet on the website.