Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Imperative-program transformation by instrumented-interpreter specialization
Debois S. Higher-Order and Symbolic Computation21 (1-2):37-58,2008.Type:Article
Date Reviewed: Jan 22 2009

The interpretive approach is an appealing program transformation technique. Loosely speaking, it amounts to designing a nonstandard interpreter that exhibits a particular good behavior with regard to some criterion, and then specializing it with regard to a source program. The result is somehow a compiled program that hopefully inherits the good properties of the specialized interpreter.

This paper explores this interpretive approach for optimizing programs written in a simple imperative programming language (a flowchart language with assignments and jumps, but no pointers). In particular, two program transformations--loop invariant code motion and strength reduction--are implemented by specializing an interpreter that is appropriately instrumented. Although the paper does not contain a significant new theoretical contribution, this is one of the few works where the interpretive approach is applied to an imperative language. Thus, it is an interesting read for researchers working on semantics-based transformation techniques for imperative programs.

An important conclusion of the application of the interpretive approach in this context is that it can often give rise to code duplication in transformed programs; to remedy this, the author introduces a new transformation, called rewinding (the main theoretical contribution of the work), that allows one to remove some unnecessary code. Basically, rewinding consists of translating a program into a Moore automaton, minimizing this automaton, and translating the minimized automaton back into a program. A formal proof of correctness is included.

Reviewer:  German Vidal Review #: CR136447 (0910-0973)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Program Transformation (I.2.2 ... )
 
 
Interpreters (D.3.4 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Program Transformation": Date
Eliminating Redundant Recursive Calls.
Cohen N. ACM Transactions on Programming Languages and Systems 5(3): 265-299, 1983. Type: Article
Feb 1 1985
On convergence toward a database of program transformations
Barstow D. ACM Transactions on Programming Languages and Systems 7(1): 1-9, 1985. Type: Article
Jul 1 1985
Automating the transformational development of software
Fickas S. IEEE Transactions on Software Engineering SE-11(11): 1268-1277, 1985. Type: Article
Feb 1 1987
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy