Janino 2.6.1
Janino is a useful compiler which reads a Java expression, block, or source file, and generates Java bytecode that is loaded and executed directly.
|
Janino is a useful compiler which reads a Java expression, block, or source file, and generates Java bytecode that is loaded and executed directly.
Janino 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.
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.
Janino features
Requirements
Limitations
tags shipping cost run time numeric conversion that the the merchant local variable like new creation like the shipping not yet yet implemented invocation like expression evaluator
Download Janino 2.6.1
Similar software
Janino 2.6.1
Arno Unkrig
Janino is a useful compiler which reads a Java expression, block, or source file, and generates Java bytecode that is loaded and executed directly.
Chameleon Clock 5.1
Jury Gerasimov
Chameleon Clock is a desktop clock which purpose is to be useful, user-friendly, and beautiful.
Parity Plus 2.1
DataBull
Parity Plus is one of the most powerful Stock Charting and Technical Analysis software application available on the market.
MSN Password Sniffer 1.0
mythusoft
MSN Password sniffer is a useful and handy utility that can capture MSN passwords.
Outlook Profiler 2.7.0.1
GOFF
Outlook Profiler addresses the need to create Outlook Exchange profiles automatically.
EasyMP3 2005 2.0.0.19
ZeuS Microsystems
EasyMP3 was created to simply encode and decode audio files.
DivX DVD Ripper 1.5
Openwares
DivX DVD Ripper is a free and useful tool for backing up your DVD movies.
Download Accelerator Lite 1.0.4
Openwares
Download Accelerator Lite (DAL) is a free and useful open source tool for increasing download speeds and for resuming, scheduling, and organizing downloads.
Anim8or 0.95B
Steve Glanville
Anim8or is a character animation and 3D modeling application that I have written over the past couple of years, not as a commercial endeavor, but because I love 3D graphics, animation and programming.
Torrent Search 4.8
Openwares
Wired Magazine declared “Kazaa is tired, BitTorrent is Wired!” BitTorrent is the fastest and the newest growing file sharing client for the Windows operating system.