Attribute grammars as a functional programming paradigm
Proc. of a conference on Functional programming languages and computer architecture
Automatic autoprojection of recursive equations with global variable and abstract data types
Science of Computer Programming
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
An Automatic Program Generator for Multi-Level Specialization
Lisp and Symbolic Computation
Efficient incremental run-time specialization for free
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Online-and-offline partial evaluation (extended abstract): a mixed approach
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Accurate binding-time analysis for imperative languages: flow, context, and return sensitivity
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
Modern Compiler Implementation: In ML
Modern Compiler Implementation: In ML
Combining Program and Data Specialization
Higher-Order and Symbolic Computation
Effective Specialization of Realistic Programs via Use Sensitivity
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
A Uniform Approach for Compile-Time and Run-Time Specialization
Selected Papers from the Internaltional Seminar on Partial Evaluation
Component-Based Programming for Higher-Order Attribute Grammars
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Shortcut fusion rules for the derivation of circular and higher-order programs
Higher-Order and Symbolic Computation
Hi-index | 0.00 |
Complex data dependencies can often be expressed concisely by defining a variable in terms of part of its own value. Such a circular reference can be naturally expressed in a lazy functional language or in an attribute grammar. In this paper, we consider circular references in the context of an imperative C-like language, by extending the language with a new construct, persistent variables. We show that an extension of partial evaluation can eliminate persistent variables, producing a staged C program. This approach has been implemented in the Tempo specializer for C programs, and has proven useful in the implementation of run-time specialization.