Skip to main content

Literate program derivation: A case study

  • Part II. Deductive Program Development
  • Chapter
  • First Online:
Methods of Programming

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 544))

Abstract

“Literate programming” is a notion that has been introduced by Don Knuth as a means for improving the art of programming by amalgamating explanatory text with the program proper. In this paper, we attempt to combine the principal ideas of literate programming with the concepts of formal program development, based on algebraic specifications and transformations. This experiment is performed using the sublinear string-searching algorithm of Boyer and Moore (1977) as an illustrating example.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • Bauer, F.L., Wössner, H.: Algorithmic Language and Program Development. Berlin, Springer 1982.

    Google Scholar 

  • Bird, R.S.: An Introduction to the Theory of Lists. In: Broy, M. (ed.): Logic of Programming and Calculi of Discrete Design. Proc. Int. Summer School, Marktoberdorf. NATO ASI Series F, Vol. 36, Berlin, Springer 1985, 5–42.

    Google Scholar 

  • Boyer, R.S., Moore, J.S.: A Fast String Searching Algorithm. Comm. ACM 20 (1977) 762–772.

    Google Scholar 

  • Broy, M., Pepper, P.: Program Development as a Formal Activity. IEEE Transactions on Software Engineering SE-7, 1 (1981), 14–22.

    Google Scholar 

  • Burstall, R.M., Darlington, J.: A Transformation System for Developing Recursive Programs. J.ACM 24 (1977), 44–67.

    Google Scholar 

  • CIP-group (Bauer, F.L. et al.): The Munich Project CIP. Vol. II: The Program Transformation System CIP-S. Lecture Notes in Comp. Sc. 292, Berlin, Springer 1987.

    Google Scholar 

  • Gries, D.: The Science of Programming. New York, Springer 1981.

    Google Scholar 

  • Gries, D.: On “A Small Work of Literature”. Comm. ACM 30, 4 (1987), 286–288.

    Google Scholar 

  • Hamilton, E.: Expanding Generalized Regular Expressions. Comm. ACM 31, 12 (1988), 1377–1382.

    Google Scholar 

  • Hanson, D.R.: Printing Common Words. Comm. ACM 30, 7 (1987), 594–598.

    Google Scholar 

  • Jackson, M.: Processing Transactions. Comm. ACM 30, 12 (1987), 1001–1008.

    Google Scholar 

  • Knuth, D.E.: Literate Programming. Comp. Journal 27, 2 (1984), 37–111. (See also Comm. ACM 29, 5 (1986), 364–369 and 29, 6 (1986) 471–483.)

    Google Scholar 

  • Partsch, H.A.: Transformational Program Development in a Particular Problem Domain. Science of Comp. Progr. 7 (1986), 99–241.

    Google Scholar 

  • Partsch, H.A., Stomp, F.A.: A Formal Derivation of Boyer and Moore's Pattern Matching Algorithm. Techn. Rep. 88–12, Dept. of Informatics, Univ. Nijmegen, 1988. (To appear in: Formal Aspects of Computing).

    Google Scholar 

  • Pepper, P.: A Simple Calculus For Program Transformation. Science of Computer Programming 9 (1987) 221–262.

    Google Scholar 

  • Roszak, Th.: Der Verlust des Denkens (Engl.: The Cult of Information) München, Droemer 1986.

    Google Scholar 

  • Smith, D.R.: KIDS — A Knowledge-Based Software Development System. In: Proc. of the Workshop on Automating Software Design, AAAI 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Manfred Broy Martin Wirsing

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Pepper, P. (1991). Literate program derivation: A case study. In: Broy, M., Wirsing, M. (eds) Methods of Programming. Lecture Notes in Computer Science, vol 544. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0018271

Download citation

  • DOI: https://doi.org/10.1007/BFb0018271

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-54576-7

  • Online ISBN: 978-3-540-38491-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics