|
ABSTRACT
A three-pass compiler with the following properties is briefly described: The last two passes scan an intermediate language produced by the preceding pass in essentially the reverse of the order in which it was generated, so that the first pass is the only one which has to read the relatively bulky problem-oriented input. The double scan, one in either direction, performed by the first two passes, allows the compiler to remove locally constant expressions and recursively calculable expressions from loops and to do the important part of common subexpression recognition. Optimization such as the effective use of index registers, although as important, is not discussed since the object code which would be most efficient is highly machine dependent. The discussion is in terms of a FORTRAN-like language, although the technique is applicable to most algebraic languages.
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
|
GEAR, C.W. Optimization of the address field compilation in the ILLIAC II assembler. Comput. J . 6 (Jan. 1964), 332.
|
| |
3
|
HUXTABLE, D. H. R. On Writing an Optimizing Translator for ALGOL 60. In Introduction to System Programming, P. Wegner (Ed.), Academic Press, 1964, 137.
|
| |
4
|
IBM. Systems Manual for 704 FORTRAN and 709 FORTRAN Appl. Programming Dept., IBM, April, 1960.
|
 |
5
|
|
CITED BY 10
|
|
|
|
|
William F. Atchison , Samuel D. Conte , John W. Hamblen , Thomas E. Hull , Thomas A. Keenan , William B. Kehl , Edward J. McCluskey , Silvio O. Navarro , Werner C. Rheinboldt , Earl J. Schweppe , William Viavant , David M. Young, Jr., Curriculum 68: Recommendations for academic programs in computer science: a report of the ACM curriculum committee on computer science, Communications of the ACM, v.11 n.3, p.151-197, March 1968
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|