Towards Bridging the Gap Between Programming Languages and Partial Evaluation

Abstract : Partial evaluation is a program-transformation technique that automatically specializes a program with respect to user-supplied invariants. Despite successful applications in areas such as graphics, operating systems, and software engineering, partial evaluators have yet to achieve widespread use. One reason is the difficulty of adequately describing specialization opportunities. Indeed, under-specialization or over-specialization often occurs, without any direct feedback to the user as to the source of the problem. We have developed a high-level, module-based language allowing the programmer to guide the choice of both the code to specialize and the invariants to exploit during the specialization process. To ease the use of partial evaluation, the syntax of this language is similar to the declaration syntax of the target language of the partial evaluator. To provide feedback to the programmer, declarations are checked throughout the analyses performed by partial evaluation. The language has been successfully used by a signal-processing expert in the design of a specializable Forward Error Correction component.
Document type :
Conference papers
Complete list of metadatas

Cited literature [24 references]  Display  Hide  Download

https://hal.inria.fr/inria-00476047
Contributor : Sylvie Embolla <>
Submitted on : Friday, April 23, 2010 - 3:19:06 PM
Last modification on : Friday, September 6, 2019 - 3:22:17 PM
Long-term archiving on : Tuesday, September 28, 2010 - 1:23:23 PM

File

lemeur-pepm02.pdf
Publisher files allowed on an open archive

Identifiers

  • HAL Id : inria-00476047, version 1

Collections

Citation

A.-F. Le Meur, J.L. Lawall, Charles Consel. Towards Bridging the Gap Between Programming Languages and Partial Evaluation. ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, Jan 2002, Portland, OR, United States. pp.9--18. ⟨inria-00476047⟩

Share

Metrics

Record views

174

Files downloads

344