skip to main content
article
Free Access

Program Improvement by Source-to-Source Transformation

Authors Info & Claims
Published:01 January 1977Publication History
Skip Abstract Section

Abstract

The use of source-to-source program transformations has proved valuable in improving program performance. The concept of program manipulation is elucidated by describing its role in both conventional optimization and high level modification of conditional, looping, and procedure structures. An example program fragment written in an Algol-like language is greatly improved by transformations enabled by a user-provided assertion about a data array. A compilation model based on the use of source-to-source program transformations is used to provide a framework for discussing issues of code generation, compilation of high level languages such as APL, and eliminating overhead commonly associated with modular structured programming. Application of the compilation model to several different languages is discussed.

References

  1. 1 ABRAMS, P An APL machine, SU-SEL-70-017, Stanford Electron Lab Stanford, Cahf, Feb. 1970Google ScholarGoogle Scholar
  2. 2 ACM SIGPLAN Symposmm on very high level languages SIGPLAN Nouces (ACM) 9, 4 (April 1974)Google ScholarGoogle Scholar
  3. 3 ACM SIGPLAN. Proceedings of a symposmm on compder optimization. SIGPLAN Nouces (ACM) 5, 7 (July 1970)Google ScholarGoogle Scholar
  4. 4 ALLEN, F.E., AND COCKE, J A catalogue of opUmlzlng transformations In Destgn and Opttmtzatton of Compilers, R Rustm, Ed , Prentice-Hall, Englewood Cliffs, N J , 1972, pp 1-30Google ScholarGoogle Scholar
  5. 5 BeatRisro, D, ANO SArrERLY, K BETA laboratory Final Rep CADD-7312-3111, Mass Computer Associates, Inc, Wakefield, Mass., Dec 1973Google ScholarGoogle Scholar
  6. 6 BURSTALL, R M, AND DARLINGTON, J A transformation system for developing recurswe programs J ACM 24, 1 (Jan 1977), 44-67 (this issue) Google ScholarGoogle Scholar
  7. 7 CARTER, J L A case study of a new compdlng code generation techmque RC 5666, IBM Thomas J Watson Res Ctr, Yorktown Heights, N Y, Oct 1975Google ScholarGoogle Scholar
  8. 8 CItEATHAM, T.E., AND TOWNLEY. J A Symbohc evaluation of programs-a look at loop analysis Proc 1976 ACM Syrup on Symbohc and Algebraic Comput, Aug 1976, pp 90-96 Google ScholarGoogle Scholar
  9. 9 CHEATHAM, T E, Arid WEGaREIT, B A laboratory for the study of automatic programming Proc. AFIPS 1972 SJCC, Vol 40, AFIPS Press, Montvale, N J , pp 11-21.Google ScholarGoogle Scholar
  10. 10 Gt~RHARr, S L Correctness-preserving program transformations Conf. Rec Second ACM Syrup on Principles of Programming Languages, Jan 1975. pp 54-66. Google ScholarGoogle Scholar
  11. 11 GESCHKE, C M Global program optlmlzauons Ph D Th , Comptr Scl Dep , Carnegie-Mellon U , Pittsburgh, Pa, 1972Google ScholarGoogle Scholar
  12. 12 HOARd, C A R Hints on programming language design STAN-CS-73-403, Comptr Sc~ Dep, Stanford U, Stanford, Cahf, Dec 1973 Google ScholarGoogle Scholar
  13. 13 I~GALLS. D The execution tame profile as a programming tool In Design and Optzmzzatton of Comptlers, R Rustm, Ed , Prent,ce-Hall, Englewood Chffs, N J , 1972, pp. 107-128Google ScholarGoogle Scholar
  14. 14 KARR~ M Gathering mformat~on about programs CA-7507-1411, Mass Computer Associates, Inc, Wakefield, Mass , July 1975Google ScholarGoogle Scholar
  15. 15 KAttR, M On affine relationships among variables of a program Acta InformaOca 6, 2 (1976), 133-152Google ScholarGoogle Scholar
  16. 16 KNuxH, D Structured programming with goto statements Computing Surveys 6, 4 (Dec 1974), 261- 301 Google ScholarGoogle Scholar
  17. 17 LAMPORT, L Parallel execution on array and vector computers Proc 1975 Sagamore Conf. on Parallel Processing, Syracuse U , Aug 1975, pp 187-191Google ScholarGoogle Scholar
  18. 18 LA~POt~a~, L The parallel execution of DO loops. Comm A CM 17, 2 (Feb 1974), 83-93 Google ScholarGoogle Scholar
  19. 19 LOVEMAN, D An ATE language processing system Autotestcon 76 Formally Automat,c Support Systems for Advanced Mamtamabd~ty, IEEE, New York, 1976, pp 1-9Google ScholarGoogle Scholar
  20. 20 LOVEMAN, D , AND FANEUF, R Program optimization--theory and practice Proc Conf. on Programmmg Languages and Compilers for Parallel and Vector Machines SIGPLAN Nouces (ACM) 10, 3 (March I975), 97-102 Google ScholarGoogle Scholar
  21. 21 PRESBERG, D , AND JOHNSON, N The paralyzer IVTRAN's parallehsm analyzer and synthesizer Proc Conf on Programming Languages and Compilers for Parallel and Vector Machines. SIGPLAN Notices (ACM) 10, 3 (March 1975), 9-16 Google ScholarGoogle Scholar
  22. 22 SCHAEFER, M A Mathematical Theory of Global Program Opttmtzatton Prentice-Hall, Englewood Cliffs, N J , 1973 Google ScholarGoogle Scholar
  23. 23 SCHNECK, P B , AND ANGEL, E A FORTRAN to FORTRAN optimizing compiler Computer J 16, 4 (Nov 1973), 322-330Google ScholarGoogle Scholar
  24. 24 SHAPIRO, R M , AND SAINT, H The representation of algorithms Final Tech. Rep RADC-TR-69-313, Applied Data Research, Inc , Vol II, Rome Air Develop Ctr., Sept 1969Google ScholarGoogle Scholar
  25. 25 STANDISH, T A, I-tARRIMAN, D C, KIBLER, D F, AND NEIGHBORS, J M Improving and refimng programs by program manipulation Proceedings 1976 ACM Annual Cont , Oct. 20-22, 1976, pp 509- 516 Google ScholarGoogle Scholar
  26. 26 STANOISH, T, HARRIMAN, D, KIBLER, D, AND NEIGHBORS, J The Irvlne program transformation catalogue Dep Inform and Cornptr Scl , U of California at Irvlne, Irvlne, Cahf, Jan 1976Google ScholarGoogle Scholar
  27. 27 VANTASSEL, D Program Style, Design Efficmncy, Debugging and Testing Prentice-Hall, Englewood Chffs. N J , 1974Google ScholarGoogle Scholar
  28. 28 WEGBREIT, B Goal-directed program transformation IEEE Trans on Software Eng SE-2, 2 (June 1976), 69-80Google ScholarGoogle Scholar
  29. 29 WEGBREIT, B Property extraction in well-founded property sets IEEE Trans on Software Eng SE-1, 3 (Sept. I975), 270-285 Google ScholarGoogle Scholar
  30. 30 WEGBRE1T, B The ECL programming system Proc AFIPS FJCC, Vol 39, AFIPS Press, Montvale, N J, 253-262 Google ScholarGoogle Scholar
  31. 31 WULF, W.A , RUSSELL, D.B , AND HABERMANN, A M BLISS a language for systems programming Comm ACM 14, 12 (Dec 1971), 780-790 Google ScholarGoogle Scholar

Index Terms

  1. Program Improvement by Source-to-Source Transformation

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image Journal of the ACM
          Journal of the ACM  Volume 24, Issue 1
          Jan. 1977
          175 pages
          ISSN:0004-5411
          EISSN:1557-735X
          DOI:10.1145/321992
          Issue’s Table of Contents

          Copyright © 1977 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 January 1977
          Published in jacm Volume 24, Issue 1

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader