Next: References
Up: Java as an Intermediate
Previous: Related Work
Ideally, an intermediate language should be simple, portable, efficient,
and (when possible) maintained by somebody else. In this paper we have
investigated whether Java makes a good intermediate language.
Specifically, we have described the design, implementation, and
benchmarking of a system that uses Java as an intermediate language for
the high-level parallel language NESL. Java proved to be very easy to
use, as demonstrated by the completion of the prototype in a weekend,
and had enough functionality to allow a clean implementation of the
system. After additional tuning to improve the speed and space
efficiency of the generated code, a just-in-time Java compiler achieved
a performance between two and four times slower than that of the
existing implementation of NESL (which uses hand-tuned C code) on a set
of vector algorithm benchmarks. This performance gap is likely to
narrow as just-in-time compilation technology improves. We conclude
that Java is a strong candidate for use as an intermediate language for
rapid prototyping of new high-level languages, and for increasing the
portability of existing languages.
Next: References
Up: Java as an Intermediate
Previous: Related Work
Jonathan Hardwick