|
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
|
Karl J. Ottenstein , Robert A. Ballance , Arthur B. MacCabe, The program dependence web: a representation supporting control-, data-, and demand-driven interpretation of imperative languages, Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation, p.257-271, June 1990, White Plains, New York, United States
|
| |
3
|
H P Barendregt , M C J D Eekelen , J R W Glauert , J R Kennaway , M J Plasmeijer , M R Sleep, Term graph rewriting, Volume II: Parallel Languages on PARLE: Parallel Architectures and Languages Europe, p.141-158, March 1987, Eindhoven, The Netherlands
|
| |
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
|
C. Chambers , D. Ungar, Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language, Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, p.146-160, June 19-23, 1989, Portland, Oregon, United States
|
 |
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
|
John Field , G. Ramalingam , Frank Tip, Parametric program slicing, Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.379-392, January 23-25, 1995, San Francisco, California, United States
[doi> 10.1145/199448.199534]
|
| |
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
|
C. A. R. Hoare , I. J. Hayes , He Jifeng , C. C. Morgan , A. W. Roscoe , J. W. Sanders , I. H. Sorensen , J. M. Spivey , B. A. Sufrin, Laws of programming, Communications of the ACM, v.30 n.8, p.672-686, Aug. 1987
[doi> 10.1145/27651.27653]
|
 |
26
|
S. Horwitz , J. Prins , T. Reps, On the adequacy of program dependence graphs for representing programs, Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.146-157, January 10-13, 1988, San Diego, California, United States
[doi> 10.1145/73560.73573]
|
| |
27
|
|
| |
28
|
|
| |
29
|
|
 |
30
|
|
| |
31
|
|
| |
32
|
|
| |
33
|
|
| |
34
|
|
| |
35
|
|
| |
36
|
|
| |
37
|
|
 |
38
|
|
 |
39
|
Martin Odersky , Dan Rabin , Paul Hudak, Call by name, assignment, and the lambda calculus, Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.43-56, March 1993, Charleston, South Carolina, United States
[doi> 10.1145/158511.158521]
|
| |
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
|
Daniel Weise , Roger F. Crew , Michael Ernst , Bjarne Steensgaard, Value dependence graphs: representation without taxation, Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.297-310, January 16-19, 1994, Portland, Oregon, United States
[doi> 10.1145/174675.177907]
|
| |
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
|
Wuu Yang , Susan Horwitz , Thomas Reps, A program integration algorithm that accommodates semantics-preserving transformations, Proceedings of the fourth ACM SIGSOFT symposium on Software development environments, p.133-143, December 03-05, 1990, Irvine, California, United States
|
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...
|