| Per Bothner. Kawa: the Java-based Scheme system. In Lisp Users Conference, January 1999. See http://www.cygnus.com/~bothner/kawa/. |
....no penalty for Spec JVM benchmarks. 1 Introduction Java virtual machine (JVM) 9] is a widely used, machine independent code execution environment. Although JVM is originally designed for Java language, it is increasingly used as a compilation target of other languages, such as Scheme [5] and ML [2] Those systems directly generates JVM bytecode without using Java language source code. Using JVM bytecode as compilation target has several advantages [6] The high availability of JVM makes the languages more portable. Advanced JIT compilers can easily achieve high execution ....
....properties as the original JVM s. It can be implemented eciently thanks to JIT compiler. It is easy to implement based on existing JVMs. We implemented those extensions based on Ka e OpenVM 1.0. b3 [16] We also implemented a Scheme system that exploits our extension based on Kawa Scheme [5], which is a Scheme on JVM. The original Kawa Scheme boxes all values. Our extension de nes only unboxed representation for integer, as most native implementation for dynamically typed languages uses boxed representation for oats and strings. 1 Also, for representation for symbol , we can ....
Per Bothner. Kawa: the Java-based Scheme system. In Lisp Users Conference, January 1999. See http://www.cygnus.com/~bothner/kawa/.
....in Jaja, and U in SILK) to provide globals and utility functions. Unlike SILK, in Jaja, each Scheme type has one or more Java classes de ned for it. Similar to SILK, in Jaja, the empty list ( is represented as an instance of the class EmptyList. All Jaja objects are serializable. Kawa: Kawa [11] is an ambitious Scheme implementation. It includes a Scheme to Java byte code compiler. Each function becomes a Java class compiled and loaded at runtime. Scheme package: In the Scheme package [18] the Scheme object Types are arranged in its own class hierarchy. Each primitive procedure is ....
Per Bothner, Kawa the Java-based Scheme System, http://www.cygnus.com/~bothner/kawa.html
....and strings (represented as Java char[ are mapped to class String during method invocation. This can lead to an ambiguity, such as in the append( method of java.lang.StringBuffer: import java.lang.StringBuffer ) importing java.lang.StringBuffer in 70 ms. #t append# silk.Generic append#[10] (for each print (methods append#) InstanceMethod StringBuffer.append(char[ int, int) InstanceMethod StringBuffer.append(char[ InstanceMethod StringBuffer.append(boolean) InstanceMethod StringBuffer.append(String) InstanceMethod StringBuffer.append(Object) ....
....following exhibit shows statistics from these implementations. Scheme implementation statistics Implementation java files lines Scheme files lines Generics Silk 1.0 12 1905 0 0 No Silk 2.0 20 2778 0 0 No Generic Silk 2. 0 28 3508 5 510 Yes Skij [8] 27 2523 44 2844 Yes Jaja [9] 66 5760 No Kawa [10] 273 16629 14 708 No Skij: Skij is a Scheme advertised as a scripting extension for Java. It is similar in capabilities to SILK and has extensive Java support including (peek) and (poke) for reading and writing slots, invoke) and (invoke static) for invoking methods, and (new) for constructing ....
Per Bothner, Kawa the Java-based Scheme System, http://www.cygnus.com/~bothner/kawa.html
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC