2009Chalmers Publication Library (Chalmers University of Technology)Requires access

Very Lazy Evaluation - A new execution model for functional programming languages

Jan Rochel

Open publisher page 0 citations

Abstract

In the recent years a multitude of functional language implementations has been\ndeveloped, whereby those being intended for practical use share a very fundamental\nproperty: The execution models employed by implementations designed for\nefficient program execution are all based on some form of graph-reduction. This\nthesis introduces a new execution model for strongly-typed, higher-order, non-strict,\npurely-functional programming languages, that does not rely on graph-reduction\nbut a new concept called very lazy evaluation. It uses an unconventional approach\nto evaluate expressions of the λ-calculus, that differs considerably from traditional\nterm rewrite systems. Its method to perform function applications allows arguments\nto be handled in a way, that is more lazy than in existing graph-reduction based\nmodels. This leads to a new type of abstract machine, which promises very efficient\nprogram execution and might also be quite suitable to be implemented in hardware.\nA proof-of-concept implementation of the execution model is given, which consists\nof a compiler generating abstract machine code from a source program, and the\nabstract machine that interpretes the result. By using it to execute real programs it\nis shown, that the correct results are evaluated and that the approach therefore is a\nvalid alternative to existing execution models.

About this research paper

What this paper is about

In the recent years a multitude of functional language implementations has been\ndeveloped, whereby those being intended for practical use share a very fundamental\nproperty: The execution models employed by implementations designed for\nefficient program execution are all based on some form of graph-reduction. This\nthesis introduces a new execution model for strongly-typed, higher-order, non-strict,\npurely-functional programming languages, that does not rely on graph-reduction\nbut a new concept called very lazy evaluation. It uses an unconventional approach\nto evaluate expressions of the λ-calculus, that differs considerably from traditional\nterm rewrite systems. Its method to perform function applications allows arguments\nto be handled in a way, that is more lazy than in existing graph-reduction based\nmodels. This leads to a new type of abstract machine, which promises very efficient\nprogram execution and might also be quite suitable to be implemented in hardware.\nA proof-of-concept implementation of the execution model is given, which consists\nof a compiler generating abstract machine code from a source program, and the\nabstract machine that interpretes the result. By using it to execute real programs it\nis shown, that the correct results are evaluated and that the approach therefore is a\nvalid alternative to existing execution models.

Why it matters

A significance statement is not available in the OpenAlex record.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

In the recent years a multitude of functional language implementations has been\ndeveloped, whereby those being intended for practical use share a very fundamental\nproperty: The execution models employed by implementations designed for\nefficient program execution are all based on some form of graph-reduction. This\nthesis introduces a new execution model for strongly-typed, higher-order, non-strict,\npurely-functional programming languages, that does not rely on graph-reduction\nbut a new concept called very lazy evaluation. It uses an unconventional approach\nto evaluate expressions of the λ-calculus, that differs considerably from traditional\nterm rewrite systems. Its method to perform function applications allows arguments\nto be handled in a way, that is more lazy than in existing graph-reduction based\nmodels. This leads to a new type of abstract machine, which promises very efficient\nprogram execution and might also be quite suitable to be implemented in hardware.\nA proof-of-concept implementation of the execution model is given, which consists\nof a compiler generating abstract machine code from a source program, and the\nabstract machine that interpretes the result. By using it to execute real programs it\nis shown, that the correct results are evaluated and that the approach therefore is a\nvalid alternative to existing execution models.

Key concepts: Computer science, Compiler, Graph reduction, Programming language, Functional programming, Abstract machine, Lazy evaluation, Execution model

Related papers

Back to paper searchBrowse research topicsOriginal source
Very Lazy Evaluation - A new execution model for functional programming languages — Research Paper | ScholarLens