The efficient compilation of functional languages has been shown to be a difficult task. The most successful implementations so far generate code in assembly language. This makes implementation extremely hard and machine dependent. In this paper we present Gamma CMC, a new abstract machine, in which we transfer the control of the execution flow to C, as much as possible. Gamma CMC takes advantage of the extremely low costs of procedure calls in modern RISC architectures. This produces a substantial improvement in performance, as we show here. Published in: UKC Lab.Report 7/92 (Submitted to Journal of Programming Languages Design and Imp.) (A short version of this paper will appear as Gamma CMC: Fast lazy functional languages Microprocessing...
Dynamic languages enable rapid prototyping, but are generally not viewed as providing the best perfo...
Programs expressed in a high-level programming language need to be translated to a low-level machine...
Programming languages are often designed as static, monolithic units. As a result, they are inflexib...
The FCGcode generator produces portable code that supports efficient two-space copying garbage colle...
Functional programming languages offer a new programming paradigm with many advantages over the more...
This thesis describes a complete compiler back-end for lazy functional languages, which uses various...
Machine The Functional Abstract Machine (Fam) is a stack machine designed to support functional lang...
The preprocessor of the C language provides a standard way to generate code at compile time. However...
The back end of a compiler performs machine-dependent tasks and low-level optimisations that are lab...
We describe the current status of and provide performance results for a prototype compiler of Prolo...
Abstract. Of late it has become very common for research compilers to emit C as their target code, r...
Functional programming presents a relatively unexplored approach to achieving high- performance comp...
A cross-compiler for the Pascal language was developed. The compiler development facilities on the C...
Over 25 implementations of different functional languages are benchmarked using the same program, a ...
In this paper we present the equivalence between TIM, a machine developed to implement lazy function...
Dynamic languages enable rapid prototyping, but are generally not viewed as providing the best perfo...
Programs expressed in a high-level programming language need to be translated to a low-level machine...
Programming languages are often designed as static, monolithic units. As a result, they are inflexib...
The FCGcode generator produces portable code that supports efficient two-space copying garbage colle...
Functional programming languages offer a new programming paradigm with many advantages over the more...
This thesis describes a complete compiler back-end for lazy functional languages, which uses various...
Machine The Functional Abstract Machine (Fam) is a stack machine designed to support functional lang...
The preprocessor of the C language provides a standard way to generate code at compile time. However...
The back end of a compiler performs machine-dependent tasks and low-level optimisations that are lab...
We describe the current status of and provide performance results for a prototype compiler of Prolo...
Abstract. Of late it has become very common for research compilers to emit C as their target code, r...
Functional programming presents a relatively unexplored approach to achieving high- performance comp...
A cross-compiler for the Pascal language was developed. The compiler development facilities on the C...
Over 25 implementations of different functional languages are benchmarked using the same program, a ...
In this paper we present the equivalence between TIM, a machine developed to implement lazy function...
Dynamic languages enable rapid prototyping, but are generally not viewed as providing the best perfo...
Programs expressed in a high-level programming language need to be translated to a low-level machine...
Programming languages are often designed as static, monolithic units. As a result, they are inflexib...