• W. M. Waite
Part of the Lecture Notes in Computer Science book series (LNCS, volume 21)


A program is a description of an algorithm given in some language. The task of a translator is to accept this description and to produce a description of an “equivalent” algorithm in another language. Usually the second algorithm is accepted as being “equivalent” to the first if it produces the same results for particular sets of input data. Note that this definition of “equivalence” permits the translator to choose any one of many possible algorithms; it is not restricted to the one which was written down by the programmer. The term optimization is used to denote the attempt by a translator to improve upon the description of the algorithm which was given by the programmer. Optimization is most appropriate when the source language does not provide access to all of the facilities of the target computer.


Directed Acyclic Graph Basic Block Strength Reduction Level Number Induction Variable 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Aho, A.V., Sethi, R., Ullman, J.D.: A formal approach to code optimization. SIGPLAN Notices 5, 86–100 (July, 1970 ).Google Scholar
  2. Aho, A.V., Ullman, J.D.: The theory of parsing, translation, and compiling. Prentice-Hall 1973.Google Scholar
  3. Allen, F.E.: Control flow analysis. SIGPLAN Notices 5, 1–19 (July, 1970 ).Google Scholar
  4. Allen, F.E.: A basis for program optimization. Information Processing 71, 385–391, North-Holland 1972.Google Scholar
  5. Allen, F.E., Cocke, J.: A catalogue of optimizing transformations. In Rustin, R. (Ed.): Design and Optimization of Compilers. Prentice-Hall 1972.Google Scholar
  6. ANSI: FORTRAN. X3.9–1966, American National Standards Institute 1966.Google Scholar
  7. Backus, J.W., Heising, W.P.: FORTRAN. IEEE Transactions EC-13, 382–385 (1964).Google Scholar
  8. Bagwell, J.T.: Local optimizations. SIGPLAN Notices 5, 52–66 (July, 1970 ).Google Scholar
  9. Bauer, F.L., Samuelson, K.: Comment in ALGOL Bulletin 10 (1961).Google Scholar
  10. Beatty, J.C.: Register assignment algorithm for generation of highly optimized object code. IBM J. Res. Develop. 18, 20–39 (1974).MATHGoogle Scholar
  11. Clark, B.L., Horning, J.J.: Reflections on a language designed to write an operating system. ACM SIGPLAN/SIGOPS Interface Meeting, Savannah, 9–12 April 1973.Google Scholar
  12. Cocke, J.: Global common subexpression elimination. SIGPLAN Notices 5, 20–24 (July, 1970 ).Google Scholar
  13. Cocke, J., Schwartz, J.T.: Programming languages and their compilers: preliminary notes. New York University 1970.Google Scholar
  14. Earnest, C.: Some topics in code optimization. JACM 21, 76–102 (1974).CrossRefMATHGoogle Scholar
  15. Forsythe, A.I., Keenan, T.A., Organick, E.I., Stenberg, W.: Computer science: a first course. John Wiley 1969.Google Scholar
  16. Frailey, D.J.: Expression optimization using unary complement operators. SIGPLAN Notices 5, 67–85 (July, 1970 ).Google Scholar
  17. GE: GE-400 Series Basic Language. CPB-1470 (1968).Google Scholar
  18. Gear, C.W.: High speed compilation of efficient object code. CACM 8, 483–488 (1965).CrossRefMATHGoogle Scholar
  19. Gries, D.: Compiler Construction for Digital Computers. John Wiley, 1967. Hall, A.D.: Private Communication 1974.Google Scholar
  20. Hext, J.B.: Programming Languages and Compiling Techniques. Ph.D. Dissertation, University of Cambridge 1965.Google Scholar
  21. Hoperoft, J., Tarjan, R.: Efficient algorithms for graph manipulation. CACM 16, 372–378 (1973).CrossRefGoogle Scholar
  22. IBM Corp.: IBM system/360 operating system FORTRAN IV (H) compiler program logic manual. Y28–6642–3 (1968).Google Scholar
  23. Kildall, G.A.: Global expression optimization during compilation. Ph.D. Thesis, University of Washington 1972.Google Scholar
  24. Knuth, D.E.: The Art of Computer Programming, Vol. 2: Seminumerical Algorithms. Addison Wesley 1969.MATHGoogle Scholar
  25. Knuth, D.E.: An empirical study of FORTRAN programs. Software — Practice and Experience 1, 105–133 (1971).CrossRefMATHGoogle Scholar
  26. Lee, J.A.N.: A formal definition of the BASIC language. Computer J. 15, 37–41 (1972).CrossRefMATHGoogle Scholar
  27. Lowry, E.S., Medlock, C.W.: Object code optimization. CACM 12, 13–22 (1969).CrossRefGoogle Scholar
  28. McKeeman, W.M.: Peephole optimization. CACM 8, 443–444 (1965).CrossRefGoogle Scholar
  29. Rohl, J.S., Linn, J.A.: A note on compiling arithmetic expressions. Computer J. 15, 13–14 (1972).CrossRefGoogle Scholar
  30. Sethi, R., Ullman, J.D.: The generation of optimal code for arithmetic expressions. JACM 17, 715–728 (1970).CrossRefMATHMathSciNetGoogle Scholar
  31. Sheridan, P.B.: The FORTRAN arithmetic-compiler of the IBM FORTRAN automatic coding system. CACM 2, 9 (1959).Google Scholar
  32. Spillman, T.C.: Exposing side-effects in a PL/I optimizing compiler. Information Processing 71, 376–381, North-Holland 1972.Google Scholar
  33. Ullman, J.D.: Fast algorithms for the elimination of common subexpressions. Acta Informatica 2, 191–213 (1973).CrossRefMATHGoogle Scholar
  34. Wilcox, T.R.: Generating Machine Code for High-Level Programming Languages. Ph.D. Thesis, Cornell University 1971.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1974

Authors and Affiliations

  • W. M. Waite
    • 1
  1. 1.University of ColoradoBoulderUSA

Personalised recommendations