next up previous
Next: References Up: Java as an Intermediate Previous: Related Work

Conclusions

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 up previous
Next: References Up: Java as an Intermediate Previous: Related Work

Jonathan Hardwick