Results 1 -
2 of
2
Simple Garbage-Collector-Safety
- In 1996 SIGPLAN Conference on Programming Language Design and Implementation
, 1996
"... A conservative garbage collector can typically be used with conventionally compiled programs written in C or C++. But two safety issues must be considered. First, the source code must not hide pointers from the garbage collector. This primarily requires stricter adherence to existing restrictions in ..."
Abstract
-
Cited by 13 (2 self)
- Add to MetaCart
A conservative garbage collector can typically be used with conventionally compiled programs written in C or C++. But two safety issues must be considered. First, the source code must not hide pointers from the garbage collector. This primarily requires stricter adherence to existing restrictions in the language definition. Second, we must ensure that the compiler will not perform transformations that invalidate this requirement. We argue that the same technique can be used to address both issues. We present an algorithm for annotating source or intermediate code to either check the validity of pointer arithmetic in the source, or to guarantee that under minimal, clearly defined assumptions about the compiler, the optimizer cannot "disguise" pointers. We discuss an implementation based on a preprocessor for the GNU C compiler (gcc), and give some measurements of program slowdown.
Translation by Instantiation: Integrating Functional Features into an Imperative Language
- in Proceedings of the Poster Session of CC '96, Research Report LiTH-IDA-R-96-12, University of Linkoping
, 1996
"... In this paper, we present an imperative language enhanced with higher-order functions, function currying and a polymorphic type system. This enables high-level programming, as known from functional languages. On the other hand, this language can be efficiently implemented, by translating the functio ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
In this paper, we present an imperative language enhanced with higher-order functions, function currying and a polymorphic type system. This enables high-level programming, as known from functional languages. On the other hand, this language can be efficiently implemented, by translating the functional features into constructs of the imperative base language. An instantiation procedure generates for each (polymorphic) higher-order function one or more monomorphic first-order functions. Since the transformation is done at compile-time, we have to make a restriction with respect to the functional arguments of recursively-defined higher-order functions. 1 Introduction Efficiency is a crucial issue in the implementation of functional languages, since the acceptance of these languages depends to a large extent on their performance. One way to raise this efficiency is to enhance functional languages with imperative features. The integration of the two programming paradigms thus represents ...

