Where to go from here

  • Edward Cohen
Part of the Texts and Monographs in Computer Science book series (MCS)


We have seen a number of methods. We have applied these methods to a number of examples. While the examples were not the subject matter, I have tried to choose generally useful ones.




Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Selected references

  1. [0]
    Edsger W. Dijkstra (ed.), Formal Development of Programs and Proofs, Addison-Wesley 1989.Google Scholar
  2. [1]
    C.A.R. Hoare and C.B. Jones (ed.), Essays in Computing Science, Prentice-Hall 1989.MATHGoogle Scholar
  3. [2]
    E.W. Dijkstra, On the cruelty of really teaching computing science, EWD 1036, The University of Texas at Austin, 1988.Google Scholar
  4. [3]
    A.J.M. van Gasteren, On the shape of mathematical arguments, Ph.D. thesis, Eindhoven University of Technology, Eindhoven, The Nether-lands, 1988. Also: Springer-Verlag Lecture Notes in Computer Science, 1990.MATHGoogle Scholar
  5. [4]
    Edsger W. Dijkstra and Carel S. Scholten, Predicate Calculus and Program Semantics, Springer-Verlag 1990.MATHGoogle Scholar
  6. [5]
    Roland C. Backhouse, Program Construction and Verification, Prentice Hall 1986.Google Scholar
  7. [6]
    David Gries (ed.), Programming Methodology, Springer-Verlag 1978.Google Scholar
  8. [7]
    E.W. Dijkstra, Ascending functions and The Welfare Crook, EWD 1031, The University of Texas at Austin, 1988.Google Scholar
  9. [8]
    E.W. Dijkstra, Guarded commands, nondeterminacy and the formal derivation of programs, Communications of the ACM 18 (1975), 453–7. (Also reproduced in [6].)Google Scholar
  10. [9]
    Edsger W. Dijkstra, A Discipline of Programming, Prentice-Hall 1976.MATHGoogle Scholar
  11. [10]
    E.W. Dijkstra and A.J.M. van Gasteren, A simple fixpoint argument without the restriction to continuity, Acta Informatica 23 1986, 1–7.CrossRefMATHMathSciNetGoogle Scholar
  12. [11]
    David Gries, The Science of Programming, Springer-Verlag 1981.MATHGoogle Scholar
  13. [12]
    John C. Reynolds, The Craft of Programming, Prentice-Hall 1981.MATHGoogle Scholar
  14. [13]
    Eric C.R. Hehner, The Logic of Programming, Prentice-Hall 1984.Google Scholar
  15. [14]
    Edsger W. Dijkstra and W.H.J. Feijen, A Method of Programming, Addison-Wesley 1988. ( Translated from 1984 Dutch edition).MATHGoogle Scholar
  16. [15]
    M. Rem, Small programming exercises, Science of Computer Programming. This is an on-going column. Problems posed in one column are solved in the subsequent one. Great attention is paid to “solution strategies”.Google Scholar
  17. [16]
    E.W. Dijkstra and W.H.J. Feijen, The linear search revisited, Structured Programming 10 (1989), 5–9.Google Scholar
  18. [17]
    Anne Kaldewaij and Barry Schoenmakers, Searching by elimination, Science of Computer Programming, to appear.Google Scholar
  19. [18]
    Udi Manber, Introduction to Algorithms, Addison-Wesley 1989.MATHGoogle Scholar
  20. [19]
    D. Gries, A note on the standard strategy for developing loop invariants and loops, Science of Computer Programming 2 (1984), 207–214.CrossRefGoogle Scholar
  21. [20]
    W.H.J. Feijen, A bagatelle (for the files), WF101, The University of Texas at Austin, 1988.Google Scholar
  22. [21]
    John H. Remmers, A technique for developing loop invariants, Information Processing Letters 18 (1984), 137–139.CrossRefMathSciNetGoogle Scholar
  23. [22]
    Rob Hoogerwoord, The design of functional programs: a calculational approach, Ph.D. thesis, Eindhoven University of Technology, Eindhoven, The Netherlands, 1989.Google Scholar
  24. [23]
    Richard Bird and Phillip Wadler, An Introduction to Functional Programming, Prentice-Hall 1988.Google Scholar
  25. [24]
    R.W. Floyd, Algorithm 97: Shortest Paths, Communications of the ACM 5 (1962), 345.CrossRefGoogle Scholar
  26. [25]
    D. Gries, A.J. Martin, J.L.A. van de Snepscheut, J.T. Udding, An algorithm for transitive reduction of an acyclic graph, Science of Computer Programming 12 (1989), 151–155.CrossRefMATHMathSciNetGoogle Scholar
  27. [26]
    Yossi Shiloach, A fast equivalence checking algorithm for circular lists, Information Processing Letters 8 (1979), 236–238.CrossRefMATHMathSciNetGoogle Scholar
  28. [27]
    A.J.M. van Gasteren and W.H.J. Feijen, Shiloach’s algorithm, taken as an exercise in presenting programs, Nieuw Archief voor Wiskunde XXX (1982), 277–282.Google Scholar
  29. [28]
    R.S. Boyer and J.S. Moore, MJRTY, A fast majority-vote algorithm.Google Scholar
  30. [29]
    J. Misra and David Gries, Finding repeated elements, Science of Computer Programming 2 (1982), 143–152.CrossRefMATHMathSciNetGoogle Scholar
  31. [30]
    Edsger W. Dijkstra, Selected Writings on Computing, Springer-Verlag 1982.MATHGoogle Scholar
  32. [31]
    D. Gries, What programmers don’t and should know, Technical Report, Computer Science Department, Cornell University 1987.Google Scholar
  33. [32]
    K. Mani Chandy and Jayadev Misra, Parallel Program Design, A Foundation, Addison-Wesley 1988.MATHGoogle Scholar

Copyright information

© Springer-Verlag New York Inc. 1990

Authors and Affiliations

  • Edward Cohen
    • 1
  1. 1.Software Logic LimitedBrooklineUSA

Personalised recommendations