skip to main content
10.1145/567532.567536acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free Access

Program improvement by internal specialization

Published:26 January 1981Publication History

ABSTRACT

We investigate the specialization of programs by means of program transformation techniques. There are two goals of this investigation: the construction of program synthesis tools, and a better understanding of the development of algorithms.By extending an ordinary language of recursion equations to include a generalized procedure construct (the expression procedure), our ability to manipulate programs in that language is greatly enhanced. The expression procedure provides a means of expressing information not just about the properties of individual program elements, but also about the way they relate to each other.A set of four operations for transforming programs in this extended language is presented. These operations, unlike the transformation rules of Burstall and Darlington and of Manna and Waldinger, preserve the strong equivalence of programs.This set of operations forms the basis of a general-purpose specialization technique for recursive programs. The practical value of this technique has been demonstrated in the systematic development of many programs, including several context-free parsing algorithms. We outline here the development of Earley's algorithm by specialization.This paper is an informal exposition of part of the results of the author's Ph.D. thesis [Scherlis80].

References

  1. {Burstall71} R. M. Burstall, J. S. Collins, and R. J. Popplestone, Programming in POP-2. Edinburgh University Press, 1971.Google ScholarGoogle Scholar
  2. {Burstall77} R. M. Burstall and J. Darlington, "A Transformation System for Developing Recursive Programs." Journal of the ACM, Vol. 24, No. 1, January 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. {Darlington78a} J. Darlington, "A Synthesis of Several Sorting Algorithms." Acta Informatica, Vol. 11, Page 1, 1978.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. {Earley70} J. Earley, "An Efficient Context-Free Parsing Algorithm." Communications of the ACM, Vol. 13, No. 2, February 1970. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. {Earley74} J. Earley, "High Level Operations in Automatic Programming." Symposium on Very High Level Languages, SIGPLAN Notices, Vol. 9, No. 4, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. {Green78} C. C. Green and D. R. Barstow, "On program Synthesis Knowledge." Artificial Intelligence, Vol. 10, Page 241, 1978.Google ScholarGoogle Scholar
  7. {Katz78} S. Katz, "Program Optimization Using Invariants." IEEE Transactions on Software Engineering, Vol. SE-4, No. 5, September, 1978.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. {Kott78} L. Kott, "About R. Burstall and J. Darlington's Transformation System: A Theoretical Study." Program Transformation, B. Robinet, ed., Dunod, 1978.Google ScholarGoogle Scholar
  9. {Manna79} Z. Manna and R. Waldinger, "Synthesis: Dreams ⇒ Programs." IEEE Transactions on Software Engineering, Vol. SE-5, No. 4, July 1979.Google ScholarGoogle Scholar
  10. {Paige77} R. Paige and J. T. Schwartz, "Reduction in Strength of High Level Operations." Fourth Symposium on Principles of Programming Languages, January 1977.Google ScholarGoogle Scholar
  11. {Scherlis80} W. L. Scherlis, "Expression Procedures and Program Derivation." Ph.D. thesis, Stanford Computer Science Report STAN-CS-80-818, August 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. {Wegbreit73} B. Wegbreit, "Procedure Closure in EL1." Center for Research in Computing Technology, Harvard University, May 1973.Google ScholarGoogle Scholar
  13. {Wegbreit76} B. Wegbreit, "Goal-Directed Program Transformation." Third Symposium on Principles of Programming Languages, January 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library

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
  • Published in

    cover image ACM Conferences
    POPL '81: Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
    January 1981
    230 pages
    ISBN:089791029X
    DOI:10.1145/567532

    Copyright © 1981 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 26 January 1981

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • Article

    Acceptance Rates

    POPL '81 Paper Acceptance Rate24of121submissions,20%Overall Acceptance Rate824of4,130submissions,20%

    Upcoming Conference

    POPL '25

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader