• Documents
  • Authors
  • Tables
  • Log in
  • Sign up
  • MetaCart
  • DMCA
  • Donate

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations

Kawa—compiling dynamic languages to the Java VM (1998)

by Per Bothner
Venue:In USENIX
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 13
Next 10 →

Runtime Aspect Weaving Through Metaprogramming

by Jason Baker, Wilson C. Hsieh , 2001
"... ..."
Abstract - Cited by 61 (1 self) - Add to MetaCart
Abstract not found

Achieving High Performance via Co-Designed Virtual Machines

by J. E. Smith, Subramanya Sastry, Tim Heil, Todd Bezenek - In International Workshop on Innovative Architecture , 1999
"... Introduction Today's virtual machines use a layer of software that allows programs compiled in one instruction set to be executed on a processor executing a (different) native instruction set. Virtual machines have become popular in recent years for providing platform independence; however, vi ..."
Abstract - Cited by 27 (6 self) - Add to MetaCart
Introduction Today's virtual machines use a layer of software that allows programs compiled in one instruction set to be executed on a processor executing a (different) native instruction set. Virtual machines have become popular in recent years for providing platform independence; however, virtual machines also open many new opportunities for enhancing performance. The co-design of virtual machine software and the underlying hardware microarchitecture will enable enhanced instruction level parallelism and more adaptable performance mechanisms than are possible when hardware and application software are separated by instruction set architectures as is traditionally done. In future high performance computers, a virtual instruction set architecture (V-ISA) will be the level for maintaining architectural compatibility. The V-ISA will be implemented with a virtual machine that blends software and hardware in a symbiotic manner via co-design. The hardware will support an implementationdep
(Show Context)

Citation Context

...aml [15, 16] and Oblique [17] are such virtual architectures. Other languages take advantage of these machine-independent platforms by compiling to a virtual architecture. Scheme, in the form of Kawa =-=[18]-=-; and IBM REXX, in the from of NetRexx [19]; obtained machine independence by compiling into Java bytecodes. Virtual machines have also been a preferred tool of language designers. Early research in l...

Dynjava: Type safe dynamic code generation in java

by Yutaka Oiwa, Hidehiko Masuhara, Akinori Yonezawa - In JSSST Workshop on Programming and Programming Languages, PPL2001, March 2001 , 2001
"... Dynamic code generation is a technique that generates and executes fragments of executable code during the run-time of an program to reduce the execution time of programs. However, most of currently available dynamic code generation systems have weakness on high-level language support for describing ..."
Abstract - Cited by 8 (0 self) - Add to MetaCart
Dynamic code generation is a technique that generates and executes fragments of executable code during the run-time of an program to reduce the execution time of programs. However, most of currently available dynamic code generation systems have weakness on high-level language support for describing dynamic code fragment. Especially, safety of dynamic composition of code fragments is not sufficiently supported. To solve this, we present a Java-based strongly-typed language for dynamic code generation. This language gives precise types to dynamic code fragments, to guarantee the type-safety of dynamically-composed codes. 1
(Show Context)

Citation Context

... prime factors, and 9.3 seconds when n = 16384 = 2 14 . 6 Related Work There are many tools which manipulates bytecode, for example JavaClass API [4], and gnu.bytecode package included in Kawa Scheme =-=[1]-=-, and they can be directly used to generate execution code dynamically on Java Virtual Machine (JVM). However, as those tools treat a dynamically generated program as a stream of untyped instructions,...

Macros that play: Migrating from Java to Maya

by Jason Baker, Matthew Flatt, Jay Lepreau, Gary Lindstrom , 2001
"... submitted by Jason Baker This thesis has been read by each member of the following supervisory committee and by majority vote has been found to be satisfactory. Chair: Wilson C. Hsieh ..."
Abstract - Cited by 3 (2 self) - Add to MetaCart
submitted by Jason Baker This thesis has been read by each member of the following supervisory committee and by majority vote has been found to be satisfactory. Chair: Wilson C. Hsieh
(Show Context)

Citation Context

... fact, template parsing and hygiene code is mutually dependent. Maya is implemented in Scheme, which is compiled to Java byte-code. Specifically, mayac is written in a highly modified version of Kawa =-=[3]-=- that supports Java's object model. The two compilers share a great deal of infrastructure. Both use the same structural reflection and byte-code-generation code. The Maya compiler also reuses other p...

EBG: A Lazy Functional Programming Language Implemented on the Java Virtual Machine

by Tony Clark , 1999
"... The Java programming language offers a number of features including: portability; graphics; networking. Java implements the object-oriented execution model in terms of classes, objects with state, message passing and inclusion polymorphism. This work aims to provide a mixed paradigm environment ..."
Abstract - Cited by 2 (0 self) - Add to MetaCart
The Java programming language offers a number of features including: portability; graphics; networking. Java implements the object-oriented execution model in terms of classes, objects with state, message passing and inclusion polymorphism. This work aims to provide a mixed paradigm environment which offers the advantages of both object-oriented and functional programming. The functional paradigm is supported by a new language called EBG which compiles to the Java VM. The resulting environment can support applications which use both object-oriented and functional programming as appropriate. 1 Introduction The programming language Java has become very popular by combining a number of features including portability, object-oriented programming, WWW compatibility, networking, graphics, and a growing collection of libraries. The language itself is reasonably small and offers a particular model of programming language execution based on classes, objects, message passing, and inclu...

A Java-based language with type-safe dynamic-code generation

by Yutaka Oiwa , 2001
"... In this thesis I describe an extension to the Java language that supports type-safe dynamic code generation. Dynamic code generation is a powerful technique for reducing execution time of pro-grams. It composes a portion of the execution code dynamically at runtime, generally mixing with some runtim ..."
Abstract - Cited by 1 (1 self) - Add to MetaCart
In this thesis I describe an extension to the Java language that supports type-safe dynamic code generation. Dynamic code generation is a powerful technique for reducing execution time of pro-grams. It composes a portion of the execution code dynamically at runtime, generally mixing with some runtime-information. Since generated code holds runtime values such as number of an iteration or a condition of a branch as constants, it may run faster than statically-generated code. However, current dynamic code generators have several disadvantages. First, as most dynamic code generator are designed to generate native machine code, programs using dynamic code generation are not portable. Second, most systems have weakness on high-level language support for describing dynamic code fragment. Especially, safety of dynamic composition of code fragments is not sufficiently supported. Though it is partly solved in functional languages, it is not directly applicable to imperative settings. Many Java-based systems provide functions which generate code dynamically by directly manipulating bytecode. On those systems, safety of the generated code is the user’s re-sponsibility. Some systems allow the user to write a code fragment using high-level language constructs such as C and thus ensure type-safety within the fragment of code, but type-safety of more than one code fragments that are composed at runtime are not automatically guaranteed. To solve these problems, I define a strongly-typed language for dynamic code as an extension to Java language. This language gives precise types to dynamic code fragments. Our notion of types includes not only the types of code fragments of the base language, but also information of conditions that guarantee type safety of their composition. Type-checking these information confirms statically that result of composition of dynamic code fragments is still type-safe.
(Show Context)

Citation Context

...stem that translates DynJava program to a Java program. 1.2 Related work There are many tools which manipulates bytecode, for example JavaClass API [4], and ss package included in Kawa Scheme =-=[1]-=-, and they can be directly used to generate execution code dynamically on Java Virtual Machine (JVM). However, as those tools treat a dynamically generated program as a stream of untyped instructions,...

Isolation, Resource Management and Sharing in the KaffeOS Java Runtime System

by Godmar Back , 2002
"... Single-language runtime systems, in the form of Java virtual machines, are widely deployed platforms for executing untrusted mobile code. These runtimes provide some of the features that operating systems provide: interapplication memory protection and basic system services. They do not, however, pr ..."
Abstract - Cited by 1 (0 self) - Add to MetaCart
Single-language runtime systems, in the form of Java virtual machines, are widely deployed platforms for executing untrusted mobile code. These runtimes provide some of the features that operating systems provide: interapplication memory protection and basic system services. They do not, however, provide the ability to isolate applications from each other. Neither do they provide the ability to limit the resource consumption of applications. Consequently, the performance of current systems degrades severely in the presence of malicious or buggy code that exhibits ill-behaved resource usage.

Implementation of Lazy Agents in the Functional Language EBG

by Tony Clark , 1999
"... EBG is a lazy functional programming language that compiles to the Java Virtual Machine Language. The aims of EBG are to provide the benefits of both FP and Java. This paper describes the design and implementation of agents in EBG that provides an interface to the underlying multi-processing fac ..."
Abstract - Cited by 1 (0 self) - Add to MetaCart
EBG is a lazy functional programming language that compiles to the Java Virtual Machine Language. The aims of EBG are to provide the benefits of both FP and Java. This paper describes the design and implementation of agents in EBG that provides an interface to the underlying multi-processing facilities of Java. 1 Introduction EBG [Cla99a] is a higher-order lazy functional programming language that compiles to the Java Virtual Machine [Ven98]. EBG aims to provide all of the advantages of FP including pattern matching, first class functions and automatic type checking [Fie89], in addition to the advantages of Java [Arn98] including portability, multi-processing, networking and graphical user interfaces. This paper describes the design and implementation of agents in EBG. Agents provide an EBG-level interface to the multi-processing facilities of Java and are a step on the path to a longer term goal of providing programming facilities for functional multi-agent systems [Jen98]. Age...
(Show Context)

Citation Context

... [Cla99b]. There are a number of languages, currently in development, that aim to offer the advantages of both FP and Java. MLJ [Ben98] translates Standard ML to the Java Virtual Machine language and =-=[Bot98a]-=- [Bot98b] compiles Scheme to the Java VM. Both SML and Scheme are strict languages, but some of the issues in compilation are the same as EBG, for example the use of the abstract class Closure. Wakeli...

A Scheme-to-Java Translator with Soft Typing

by Akihito Nagata, Eijiro Sumii, Akinori Yonezawa
"... This paper presents a compiler that translates Scheme code into the Java language. The programming language Scheme is known to be highly expressive and safe. By translating Scheme into Java, one can benefit from such features of Scheme as well as the portability of Java. Our compiler implements dyna ..."
Abstract - Add to MetaCart
This paper presents a compiler that translates Scheme code into the Java language. The programming language Scheme is known to be highly expressive and safe. By translating Scheme into Java, one can benefit from such features of Scheme as well as the portability of Java. Our compiler implements dynamic type checking in Scheme via down-casting in Java by mapping each Scheme value to a Java Object. However, naively doing so requires dynamic class checking in Java for every primitive operation in Scheme and thereby incurs much overhead. We reduce this overhead of runtime type checking by exploiting partial static type information obtained through soft typing. This method achieves about 200--700% speedup in micro benchmarks and 67% for a ray tracing program. Thus, our compiler combines the expressiveness and safety of Scheme with the portability of Java without much loss of e#ciency.
(Show Context)

Citation Context

...sors are available, it is an important but hard task to support as many platforms as possible when developing a compiler of a general-purpose language. For this reason, several compilers such as Kawa =-=[3]-=-, SILK [1], and MLj [2] use the Java Virtual Machine (JVM) [7] as their target platform in order to benefit from its wide availability and other selling points such as standard libraries, garbage coll...

by

by Fred Annexstein, John Franco, Larry Wall, Hongwei Xi, Bradley M. Kuhn
"... ..."
Abstract - Add to MetaCart
Abstract not found
(Show Context)

Citation Context

... a language interpreter in Java. • Compilation from the source language to Java source. • Direct compilation from the source language to JVM bytecode. 1 These categories were originally classified in =-=[4]-=-, but are extended a bit here. 12s• Mapping of language structures and idioms onto the JVM. In the subsequent subsections, each of these approaches is considered in detail. 2.2.1 Implementation of a L...

Powered by: Apache Solr
  • About CiteSeerX
  • Submit and Index Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2019 The Pennsylvania State University