Using GNU Kawa to Port Perl to the Java Virtual Machine The Java Virtual Machine (JVM) is perhaps the most interesting aspect of the Java programming environment. Much attention has been placed on porting non-Java languages to the JVM. Such ports are useful since JVMs are now embedded in hardware devices, as well as in software applications such as web browsers. In addition, well designed JVM ports can utilize the JVM as a common object model for multiple languages, allowing larger applications to easily be written in and scripted with multiple programming languages. GNU Kawa provides an infrastructure for porting non-Java languages to the JVM. Kawa also enables multiple programming languages to seamlessly and dynamically interact together in a single application. Thus, Kawa is a powerful engine for providing scripting interfaces to the application user. Kawa is a free software system that is comparable to the proprietary Microsoft .NET system. This talk focuses on how Kawa is being used to port Perl to the JVM. This system, perljvm, massages the existing perl internal representation (IR) into the Kawa system's more generalized IR. Kawa's IR is presented, and an example of a Perl program compiled to Kawa's IR is given. Finally, this talk briefly introduces how other languages can use Kawa both to achieve successful JVM ports, and to take advantage of the language interoperability that Kawa provides.