Results 1 - 10
of
13
Achieving High Performance via Co-Designed Virtual Machines
- 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
(Show Context)
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
Dynjava: Type safe dynamic code generation in java
- 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
(Show Context)
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
Macros that play: Migrating from Java to Maya
, 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
(Show Context)
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
EBG: A Lazy Functional Programming Language Implemented on the Java Virtual Machine
, 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
, 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
(Show Context)
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.
Isolation, Resource Management and Sharing in the KaffeOS Java Runtime System
, 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
, 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
(Show Context)
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...
A Scheme-to-Java Translator with Soft Typing
"... 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
(Show Context)
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.