ACM Home Page
Please provide us with feedback. Feedback
Toward a complete transformational toolkit for compilers
Full text PdfPdf (526 KB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 19 ,  Issue 5  (September 1997) table of contents
Pages: 639 - 684  
Year of Publication: 1997
ISSN:0164-0925
Authors
J. A. Bergstra  Univ. of Amsterdam, Amsterdam, The Netherlands; and Utrecht Univ., Utrecht, The Netherlands
T. B. Dinesh  CWI, Amsterdam, The Netherlands
J. Field  IBM T. J. Watson Research Center, Yorktown Heights, NY
J. Heering  CWI, Amsterdam, The Netherlands
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 53,   Citation Count: 6
Additional Information:

abstract   references   cited by   additional resources   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/265943.265944
What is a DOI?

ABSTRACT

PIM is an equational logic designed to function as a “transformational toolkit” for compilers and other programming tools that analyze and manipulate imperative languages. It has been applied to such problems as program slicing, symbolic evaluation, conditional constant propagation, and dependence analysis. PIM consists of the untyped lambda calculus extended with an algebraic data type that characterizes the behavior of lazy stores and generalized conditionals. A graph form of PIM terms is by design closely related to several intermediate representations commonly used in optimizing compilers. In this article, we show that PIM's core algebraic component, PIMt, possesses a complete equational axiomatization (under the assumption of certain reasonable restrictions on term formation). This has the practical consequence of guaranteeing that every semantics-preserving transformation on a program representable in PIMt can be derived by application of PIMt rules. We systematically derive the complete PIMt logic as the culmination of a sequence of increasingly powerful equational systems starting from a straightforward “interpreter” for closed PIMt terms. This work is an intermediate step in a larger program to develop a set of well-founded tools for manipulation of imperative programs by compilers and other systems that perform program analysis.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
2
 
3
 
4
 
5
BERGSTRA, J. t. AND TUCKER, J. V. 1995. The data type variety of stack algebras. Ann. Pure Applied Logic 73, 1 (May), 11-36.
 
6
7
 
8
9
10
11
12
 
13
 
14
ERSHOV, A. P. 1982. Mixed computation: Potential applications and problems for study. Theoret. Comput. Sci. 18, 41-67.
 
15
 
16
 
17
18
 
19
FIELD, J. 1992. A simple rewriting semantics for realistic imperative programs and its application to program analysis. In Proceedings of the A CM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation. ACM, New York, 98-107. Also available as Yale Univ. Technical Report YALEU/DCS/RR-909.
20
 
21
FRAUS, U. 1994. Inductive theorem proving for algebraic specifications--TIP system user's manual. Tech. Rep. MIP 9401, Univ. of Passau. The TIP system is available at ftp://forwiss.unipassau.de/pub/local/tip.
 
22
GARLAND, S. AND GUTTAG, J. 1991. A Guide to LP, The Larch Prover. Tech. Rep. 82, DEC Systems Research Center, Palo Alto, Calif. December.
 
23
HEERING, J. 1985. Variaties op het thema 'stack'. Tech. Rep. CS-N8502, CWI, Amsterdam. In Dutch.
 
24
25
26
 
27
 
28
 
29
30
 
31
 
32
 
33
 
34
 
35
 
36
 
37
38
39
 
40
 
41
PLOTKIN, G. D. 1974. The ~-calculus is or-incomplete. J. Symbol. Logic 39, 2 (June), 313-317.
 
42
RAMALINGAM, G. AND REPS, T. 1989. Semantics of program representation graphs. Tech. Rep. 900, Computer Sciences Dept., Univ. of Wisconsin, Madison, Wisc. December.
43
 
44
SELKE, R. P. 1989b. Transforming program dependence graphs. Tech. Rep. TR90-131, Dept. of Computer Science, Rice Univ., Houston, Tex. July.
 
45
 
46
 
47
WAND, M. AND WANG, Z.-Y. 1990. Conditional lambda-theories and the verification of static properties of programs. In Proceedings of the 5th IEEE Symposium on Logic in Computer Science. IEEE, New York.
48
 
49
 
50
YANG, W., HORWITZ, S., AND REPS, T. 1989. Detecting program components with equivalent behaviors. Tech. Rep. 840, Univ. of Wiconsin, Madison, Wisc. April.
51


ADDITIONAL RESOURCES

Appendix B this paper appears only in a separate, online-only document.



REVIEW

"William M. Waite : Reviewer"

Optimizing compilers attempt to understand programs in order to produce excellent code. One way in which they express their understanding is to transform a program into one embodying all of the information crucial to that program's  more...

Collaborative Colleagues:
J. A. Bergstra: colleagues
T. B. Dinesh: colleagues
J. Field: colleagues
J. Heering: colleagues