Development of a G-machine Based Translator for a Lazy Functional Programming Language Miranda


The Transactions of the Korea Information Processing Society (1994 ~ 2000), Vol. 2, No. 5, pp. 733-756, Sep. 1995
10.3745/KIPSTE.1995.2.5.733,   PDF Download:

Abstract

This study is aimed at construction of a translator for a functional programming language. For this goal we define a functional programming language which has lazy semantics and develop a translator for it. The execution model selected is the G-machine-based combinator graph reduction. The translator is composed of 4 phases and translates a source program to a C program. The first phase of the translator translates a source program to a enriched lambda-calculus graph, the second phase transforms a lambda-calculus graph into supercombinators, the third phase translates supercombinators to a G program and the last phase translates the G program to a C program. The final result of the translator, a C program, is compiled to an executable program by C compiler. The translator is implemented in C using compiler development tools such as TACC and Lex, under the UNIX environments. In this paper we present the design and implementation techniques for developing the translator and show results by executing some test problems.


Statistics
Show / Hide Statistics

Statistics (Cumulative Counts from September 1st, 2017)
Multiple requests among the same browser session are counted as one view.
If you mouse over a chart, the values of data points will be shown.


Cite this article
[IEEE Style]
L. J. Hee, C. K. Deok, Y. Y. Woo, K. B. Ug, "Development of a G-machine Based Translator for a Lazy Functional Programming Language Miranda," The Transactions of the Korea Information Processing Society (1994 ~ 2000), vol. 2, no. 5, pp. 733-756, 1995. DOI: 10.3745/KIPSTE.1995.2.5.733.

[ACM Style]
Lee Jong Hee, Choi Kwan Deok, Yoon Young Woo, and Kang Byong Ug. 1995. Development of a G-machine Based Translator for a Lazy Functional Programming Language Miranda. The Transactions of the Korea Information Processing Society (1994 ~ 2000), 2, 5, (1995), 733-756. DOI: 10.3745/KIPSTE.1995.2.5.733.