Results 1 -
5 of
5
Region-Based Memory Management in Cyclone
- IN PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI'02)
, 2002
"... Cyclone is a type-safe programming language derived from C. The primary design goal of Cyclone is to let programmers control data representation and memory management without sacrificing type-safety. In this paper, we focus on the region-based memory management of Cyclone and its static typing disci ..."
Abstract
-
Cited by 163 (13 self)
- Add to MetaCart
Cyclone is a type-safe programming language derived from C. The primary design goal of Cyclone is to let programmers control data representation and memory management without sacrificing type-safety. In this paper, we focus on the region-based memory management of Cyclone and its static typing discipline. The design incorporates several advancements, including support for region subtyping and a coherent integration with stack allocation and a garbage collector. To support separate compilation, Cyclone requires programmers to write some explicit region annotations, but a combination of default annotations, local type inference, and a novel treatment of region e#ects reduces this burden. As a result, we integrate C idioms in a region-based framework. In our experience, porting legacy C to Cyclone has required altering about 8% of the code; of the changes, only 6% (of the 8%) were region annotations.
Transforming the .NET Intermediate Language Using Path Logic Programming
, 2002
"... Path logic programming is a modest extension of Prolog for the specification of program transformations. We give an informal introduction to this extension, and we show how it can be used in coding standard compiler optimisations, and also a number of obfuscating transformations. The object language ..."
Abstract
-
Cited by 16 (4 self)
- Add to MetaCart
Path logic programming is a modest extension of Prolog for the specification of program transformations. We give an informal introduction to this extension, and we show how it can be used in coding standard compiler optimisations, and also a number of obfuscating transformations. The object language is the Microsoft .NET intermediate language (IL).
A Virtual Machine for Multi-Language Execution
- Programming Systems Lab, Universität des Saarlandes, Saarbrücken
, 2002
"... This paper presents the architecture of a virtual machine designed specifically for the execution of multiple languages, which we call Seam. The architecture consists of a number of generic components, usable by all languages, and of a number of interfaces for which implementations have to be provid ..."
Abstract
-
Cited by 8 (5 self)
- Add to MetaCart
This paper presents the architecture of a virtual machine designed specifically for the execution of multiple languages, which we call Seam. The architecture consists of a number of generic components, usable by all languages, and of a number of interfaces for which implementations have to be provided by language implementors. Our contribution is the identification of the generic services and the clean design for the parameterization over their language-specific aspects. The goal of Seam is to provide both for ample reuse and simple language implementation, concerning both compilers and runtime components, and to be a platform for language interoperation. We have implemented a prototype version of Seam and validated it with two language implementations. We present a full running implementation of Alice and a nave implementation of a Java Virtual Machine running on Seam. The paper presents first implementation e#ort and performance results for the prototype.
Compiling Mercury to high-level C code
- Proceedings of the 2002 International Conference on Compiler Construction
, 2001
"... Many logic programming implementations compile to C, but they compile to very low-level C, and thus discard many of the advantages of compiling to a high-level language. We describe an alternative approach to compiling logic programs to C, based on continuation passing, that we have used in a new ba ..."
Abstract
-
Cited by 7 (4 self)
- Add to MetaCart
Many logic programming implementations compile to C, but they compile to very low-level C, and thus discard many of the advantages of compiling to a high-level language. We describe an alternative approach to compiling logic programs to C, based on continuation passing, that we have used in a new back-end for the Mercury compiler. The new approach compiles to much higher-level C code, which means the compiler back-end and run-time system can be considerably simpler.
Expressive Type Systems for Logic Programming Languages
, 2002
"... The aim of this thesis is the design of a type system for an industrial strength logic programming language. The type system we describe has been implemented for the Mercury programming language, in the Melbourne Mercury compiler. ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
The aim of this thesis is the design of a type system for an industrial strength logic programming language. The type system we describe has been implemented for the Mercury programming language, in the Melbourne Mercury compiler.

