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.


Programming Language Binary Tree Mathematical Argument Quantification Elimination Predicate Transformer 
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.

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.zbMATHGoogle 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.zbMATHGoogle Scholar
  5. [4]
    Edsger W. Dijkstra and Carel S. Scholten, Predicate Calculus and Program Semantics, Springer-Verlag 1990.zbMATHGoogle 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.zbMATHGoogle 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.CrossRefzbMATHMathSciNetGoogle Scholar
  12. [11]
    David Gries, The Science of Programming, Springer-Verlag 1981.zbMATHGoogle Scholar
  13. [12]
    John C. Reynolds, The Craft of Programming, Prentice-Hall 1981.zbMATHGoogle 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).zbMATHGoogle 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.zbMATHGoogle 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.CrossRefzbMATHMathSciNetGoogle Scholar
  27. [26]
    Yossi Shiloach, A fast equivalence checking algorithm for circular lists, Information Processing Letters 8 (1979), 236–238.CrossRefzbMATHMathSciNetGoogle 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.CrossRefzbMATHMathSciNetGoogle Scholar
  31. [30]
    Edsger W. Dijkstra, Selected Writings on Computing, Springer-Verlag 1982.zbMATHGoogle 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.zbMATHGoogle Scholar

Copyright information

© Springer-Verlag New York Inc. 1990

Authors and Affiliations

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

Personalised recommendations