Results 1 -
4 of
4
An Implementation of Reynolds' Defunctionalization Method for a Modern Functional Language
- Master's thesis, Oregon Graduate Institute
, 1993
"... x 1 Introduction 1 1.1 Higher Order Functions and Their Elimination : : : : : : : : : : : : : : : 1 1.2 Hof Elimination via Specialization : : : : : : : : : : : : : : : : : : : : : : 2 1.3 Reynolds' Defunctionalization Method : : : : : : : : : : : : : : : : : : : : 3 1.4 Limitations of Reynolds' Met ..."
Abstract
-
Cited by 13 (5 self)
- Add to MetaCart
x 1 Introduction 1 1.1 Higher Order Functions and Their Elimination : : : : : : : : : : : : : : : 1 1.2 Hof Elimination via Specialization : : : : : : : : : : : : : : : : : : : : : : 2 1.3 Reynolds' Defunctionalization Method : : : : : : : : : : : : : : : : : : : : 3 1.4 Limitations of Reynolds' Method : : : : : : : : : : : : : : : : : : : : : : : 4 1.5 Firstify---An Automated Defunctionalization System : : : : : : : : : : : : 5 1.6 Problem Examples : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 1.6.1 Identifier Aliasing : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 1.6.2 Hofs With Shared Fvps : : : : : : : : : : : : : : : : : : : : : : : 6 1.6.3 Lambda Abstractions as Fvps : : : : : : : : : : : : : : : : : : : : 7 1.6.4 Multiple Alternate Expressions : : : : : : : : : : : : : : : : : : : : 7 1.6.5 Local Declarations : : : : : : : : : : : : : : : : : : : : : : : : : : : 8 1.6.6 Fvp and Hof Declared at Different Scopes : : : : : : : : : : : : : 8 1.6.7 Polymor...
Syntactic Detection of Single-Threading using Continuations
- FPCA'91
, 1991
"... We tackle the problem of detecting global variables in functional programs. We present syntactic criteria for single-threading which improves upon previous solutions (both syntactic and semantics-based) in that it applies to higher-order languages and to most sequential evaluation strategies. The ma ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
We tackle the problem of detecting global variables in functional programs. We present syntactic criteria for single-threading which improves upon previous solutions (both syntactic and semantics-based) in that it applies to higher-order languages and to most sequential evaluation strategies. The main idea of our approach lies in the use of continuations. One advantage of continuation expressions is that evaluation ordering is made explicit in the syntax of expressions. So, syntactic detection of single-threading is simpler and more powerful on continuation expressions. We present the application of the analysis to the compilation of functional languages, semantics-directed compiler generation and globalization-directed transformations (i.e. transforming non-single-threaded expressions into single-threaded ones). Our results can also be turned to account to get single-threading criteria on regular l-expressions for different sequential evaluation orders.
Action Transformations in the ACTRESS Compiler Generator
- In CC’94, Proc. 5th Intl. Conf. on Compiler Construction, Edinburgh, volume 786 of LNCS
, 1994
"... . Given the action-semantic description of a source language, Actress generates a compiler. The generated compiler translates its source program first to an action, and then to object code. Transformations of the intermediate action greatly improve the efficiency of the object code. This paper stud ..."
Abstract
-
Cited by 8 (1 self)
- Add to MetaCart
. Given the action-semantic description of a source language, Actress generates a compiler. The generated compiler translates its source program first to an action, and then to object code. Transformations of the intermediate action greatly improve the efficiency of the object code. This paper studies these transformations. 1 Introduction Actress [2] is an action-semantics directed compiler generator. That is to say, it accepts a formal description of the syntax and action semantics of a particular programming language, the source language, and from this it automatically generates a compiler that translates the source language to C object code. The generated compiler translates each source program to an action, which we call the program action, and thereafter translates the program action to object code. We have used Actress to generate compilers for a small functional language, Mini-ML, and a small imperative language, Mini-4. The preliminary version of Actress[2] generated compile...
Semantic Analyses for Storage Management Optimizations in Functional Language Implementations
, 1991
"... One of the major overheads in implementing functional languages is the storage management overhead due to dynamic allocation and automatic reclamation of indefinite-extent storage. This dissertation investigates the problems of statically inferring lifetime information about dynamically-allocated ob ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
One of the major overheads in implementing functional languages is the storage management overhead due to dynamic allocation and automatic reclamation of indefinite-extent storage. This dissertation investigates the problems of statically inferring lifetime information about dynamically-allocated objects in higher-order polymorphic functional languages, both strict and non-strict, and of applying that information to reduce the storage management overhead. We have developed a set of compile-time semantic analyses for a higher-order, monomorphic, strict functional language based on denotational semantics and abstract interpretation. They are 1) escape analysis, which provides information about the relative lifetimes of objects such as arguments and local objects defin...

