Date of Original Version



Technical Report

Rights Management

All Rights Reserved

Abstract or Description

Abstract: "C has been proposed as a portable target language for implementing higher-order languages. Previous efforts at compiling such languages to C have produced efficient code, but have had to compromise on either the portability or the preservation of the tail-recursive properties of the languages. We assert that neither of these compromises is necessary for the generation of efficient code. We offer a Standard ML to C compiler, which does not make either of these compromises, as an existence proof. The generated code achieves an execution speed that is just a factor of two slower than the best native code compiler. In this paper, we describe the design, implementation and the performance of this compiler."