Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Attributed linear intermediate representations for retargetable code generators
Ganapathi M., Fischer C. Software--Practice & Experience14 (4):347-364,1984.Type:Article
Date Reviewed: Mar 1 1985

An “attributed linear intermediate representation” is a Polish prefix encoding of a program. Each token of the encoding may have an arbitrary set of attributes attached to it. The token of the encoding may have an arbitrary set of attributes attached to it. The tokens themselves generally correspond to basic symbols of the source language, or to analogous items (such as temporary names and labels) introduced by the compiler. Such representations could be used as interfaces at many points in a compiler; Ganapathi and Fischer are concerned only with the interface between what they characterize as the “language-dependent” and “machine-dependent” components of the compiler.

After considering the role of intermediate representations in general, and comparing several forms that they consider “classical” (tuples, trees and graphs, and linear notations), the authors sketch the characteristics of their notation and give an example of its encoding of a MODULA program. A section entitled Implementation and Experience talks about how their notation was used as input to a retargetable code generator. Code was generated for six machines, but no additional information about these retargetings was included.

I found the paper to have little substance. Most of the introductory material can be found elsewhere, including another paper by the same authors [1]. A bettern description of the intermediate language and how it can be processed was given by the same authors in [2]. In the paper under review, the authors give no detailed definition of their notation (referring instead to a technical report), and provided only a single example. There is no discussion of the example. It appears to be a sight rearrangement of the source program, with structured statements replaced by labels and jumps. I was unable to determine the precise criteria they used to select the level of the representation, nor the criteria they used to determine which information should be represented as tokens and which as attributes.

Although the fifth section of the paper was entitled Implementation and Experience, it contains essentially no quantitative data. Six man-months were required for the design and implementation of “a table-driven code generator” consisting of 4000 lines of C. 50 percent of this system was “devoted to machine-dependent and peephole optimization.” The system was retargeted to six machines. How much effort was required? How good was the generated code? This paper does not say.

Reviewer:  W. M. Waite Review #: CR108823
1) Ganapathi, C. N.; Fischer, and Hennessy, J.L. Retargetable compiler code generation, Comput. Surv. 14 (1982), 573-592. See <CR> 24, 10 (Oct. 1983), Rev. 40,748.
2) Ganapathi, M.; and Fischer, C. N.Description-driven code generation using attribute grammars’, Conf. record of the ninth annual ACM symp. on principles of programming languages, (Albuquerque, New Mexico, Jan. 1982, 25-27, 1982), ACM, New York, 1982, 108-119.
Bookmark and Share
 
Code Generation (D.3.4 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Code Generation": Date
Register Allocation in Optimizing Compilers
Leverett B., University Microfilms Int’l. (UMI), Ann Arbor, MI, 1983. Type: Book (9789780835715300)
Feb 1 1985
Code generation and optimization
Graham S., Cambridge University Press, New York, NY, 1984. Type: Book (9780521268431)
Jul 1 1985
A high level intermediate code
Branquart P., Cambridge University Press, New York, NY, 1984. Type: Book (9780521268431)
Jun 1 1985
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