First Steps Towards Inferential Programming

  • William L. Scherlis
  • Dana S. Scott
Part of the Studies in Cognitive Systems book series (COGS, volume 14)


Our basic premise is that the ability to construct and modify programs will not improve without a new and comprehensive look at the entire programming process. Past theoretical research, say, in the logics of programs, has tended to focus on methods for reasoning about individual programs; little has been done, it seems to us, to develop a sound understanding of the process of programming — the process by which programs evolve in concept and in practice. At present, we lack the means to describe the techniques of program construction and improvement in ways that properly link verification, documentation and adaptability.


Formal Proof Mathematical Proof Defense Advance Research Project Agency Program Verification Derivation Structure 
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.


  1. 1.
    Balzer, R.: 1981, ‘Transformational Implementation: An Example’, IEEE Transactions on Software Engineering SE-7(1), 3–14.CrossRefGoogle Scholar
  2. 2.
    Barstow, D. R.: 1980, ‘The Roles of Knowledge and Deduction in Algorithm Design’, Yale Research Report 178, April.Google Scholar
  3. 3.
    Bates, J. L.: 1979, ‘A Logic for Correct Program Development’, Ph.D. Thesis, Cornell University.Google Scholar
  4. 4.
    Bates, J. L. and Constable, R. L.: 1982, ‘Proofs as Programs’, Cornell University Technical Report.Google Scholar
  5. 5.
    Bauer, F. L. et al: 1981, ‘Programming in a Wide Spectrum language: A Collection of Examples’, Science of Computer Programming 1, 73–114.zbMATHCrossRefGoogle Scholar
  6. 6.
    Bauer, F. L.: 1982, ‘From Specifications to Machine Code: Program Construction through Formal Reasoning’, Sixth International Conference on Software Engineering.Google Scholar
  7. 7.
    Beckman, L., Haraldsson, A., Oskarsson, Ö, and Sandewall, E.: 1976, ‘A Partial Evaluator and its Use as a Programming Tool’, Artificial Intelligence 7, 319–357.zbMATHCrossRefGoogle Scholar
  8. 8.
    Broy, M. and Pepper, P.: 1981, ‘Program Development as a Formal Activity’, IEEE Transactions on Software Engineering SE-7(1), 14–22.MathSciNetCrossRefGoogle Scholar
  9. 9.
    Burstall, R. M. and Darlington, J.: 1977, ‘A Transformation System for Developing Recursive Programs’, Journal of the ACM 24(1), 44–67.MathSciNetzbMATHCrossRefGoogle Scholar
  10. 10.
    Carbonell, J.: 1982, ‘Learning by Analogy: Formulating and Generalizing Plans from Past Experience’, Carnegie-Mellon University Technical Report.Google Scholar
  11. 11.
    Cheatham, T. E. and Wegbreit, B.: 1972, ‘A Laboratory for the Study of Automatic Programmming’, AFIPS Spring Joint Computer Conference 40.Google Scholar
  12. 12.
    Cheatham, T. E., Townley, J. A., and Holloway, G. H.: 1979, ‘A System for Program Refinement’, Fourth International Conference on Software Engineering, 53–63.Google Scholar
  13. 13.
    Clark, K. and Darlington, J.: 1980, ‘Algorithm Classification through Synthesis’, Computer Journal 23(1).Google Scholar
  14. 14.
    Clocksin, W. F. and Melish, C.S.: 1981, Programming in PROLOG, Springer-Verlag.zbMATHGoogle Scholar
  15. 15.
    De Millo, R. A., Lipton, R. J., and Perlis, A. J.: 1979, ‘Social Processes and Proofs of Theorems and Programs’, Communications of the ACM 22(5), 271–280.CrossRefGoogle Scholar
  16. 16.
    Detlefsen, M. and Luker, M.: 1980, ‘The Four-Color Theorem and Mathematical Proof’, The Journal of Philosophy 77(12), 803–820.zbMATHCrossRefGoogle Scholar
  17. 17.
    Dijkstra, E. W.: 1971. ‘Notes on Structured Programming’, in: Structured Programming, O. J. Dahl, E. W. Dijkstra, C. A. R. Hoare (Eds.) Academic Press.Google Scholar
  18. 18.
    Dijkstra, E. W.: 1976, A Discipline of Programming, Prentice-Hall.zbMATHGoogle Scholar
  19. 19.
    Ershov, A. P.: 1978, ‘On the Essence of Compilation’, in: Formal Descriptions of Programming Concepts, E. J. Neuhold (Ed.), North-Holland.Google Scholar
  20. 20.
    Feather, M. S.: 1982, ‘A System for Assisting Program Transformation’, ACM Transactions on Programming Languages and Systems 4(1), 1–20.zbMATHCrossRefGoogle Scholar
  21. 21.
    Floyd, R. W.: 1979, ‘The Paradigms of Programming’, Communications of the ACM 22(8), 455–460.CrossRefGoogle Scholar
  22. 22.
    Goad, C.: 1982, ‘Automatic Construction of Special-Purpose Programs’, 6th Conference on Automated Deduction.Google Scholar
  23. 23.
    Gordon, M. J., Milner, A. J., and Wadsworth, C. P.: 1979, Edinburgh LCF. Springer-Verlag Lecture Notes in Computer Science.zbMATHCrossRefGoogle Scholar
  24. 24.
    Green, C. C. and Barstow, D. R.: 1978, ‘On Program Synthesis Knowledge’, Artificial Intelligence 10, 241.CrossRefGoogle Scholar
  25. 25.
    Green, C. et al. 1981, ‘Research on Knowledge-Based Programming and Algorithm Design’, Kestrel Institute Technical Report.Google Scholar
  26. 26.
    Gries, D.: 1981, The Science of Computer Programming, Springer-Verlag.CrossRefGoogle Scholar
  27. 27.
    Haken, W., Appel, K. and Koch, J.: 1977, ‘Every Planar Map is Four-Colorable’, Illinois Journal of Mathematics 21(84), 429–567.MathSciNetzbMATHGoogle Scholar
  28. 28.
    Knuth, D. E.: 1974, ‘Structured Programming with Goto Statements’, Computing Surveys 6(4), 261–301.MathSciNetzbMATHCrossRefGoogle Scholar
  29. 29.
    Kriesel, G.: 1981, ‘Neglected Possibilities of Processing Assertions and Proofs Mechanically: Choice of Problems and Data’, in: University-Level Computer-Assisted Instruction at Stanford: 1968–1980. Stanford University.Google Scholar
  30. 30.
    Manna, Z. and Waldinger, R.: 1979, ‘Synthesis: dreams => programs’, IEEE Transactions on Software Engineering SE-5(4).Google Scholar
  31. 31.
    Martin-Löf, P.: 1979, ‘Constructive Mathematics and Computer Programming’, 6th International Congress for Logic, Methodology and Philosophy of Science.Google Scholar
  32. 32.
    Paige, R. and Koenig, S.: 1982, ‘Finite Differencing of Computable Expressions’, ACM Transactions on Programming Languages and Systems 4(3), 402–454.zbMATHCrossRefGoogle Scholar
  33. 33.
    Reif, J. and Scherlis, W. L.: 1982, ‘Deriving Efficient Graph Algorithms’, Carnegie-Mellon University Technical Report.Google Scholar
  34. 34.
    Rich, C. and Shrobe, H.: 1978, ‘Initial Report on a Lisp Programmer’s Apprentice’, IEEE Transactions on Software Engineering SE-4(6), 456–467.CrossRefGoogle Scholar
  35. 35.
    Scherlis, W. L.: 1981, ‘Program Improvement by Internal Specialization’, 8th Symposium on Principles of Programming Languages, pp. 41–49.Google Scholar
  36. 36.
    Schwartz, J. T.: 1973, ‘On Programming, an Interim Report on the SETL Project’, Courant Institute of Mathematical Sciences, New York University.Google Scholar
  37. 37.
    Schwartz, J. T.: 1979, ‘On Correct Program Technology’, Courant Institute of Mathematical Sciences, New York University.Google Scholar
  38. 38.
    Sintzoff, M.: 1980, ‘Suggestions for Composing and Specifying Program Design Decisions’, International Symposium on Programming, Springer-Verlag Lecture Notes in Computer Science.Google Scholar
  39. 39.
    Swart, E. R.: 1980, ‘The Philosophical Implications of the Four-Color Problem’, American Mathematical Monthly 87(9), 697–707.MathSciNetzbMATHCrossRefGoogle Scholar
  40. 40.
    Swartout, W. and Balzer, R.: 1982, ‘On the Inevitable Intertwining of Specification and Implementation’, Communications of the ACM 25(7), 438–440.CrossRefGoogle Scholar
  41. 41.
    Teller, P.: 1980, ‘Computer Proof’, The Journal of Philosophy 77(12), 803–820.CrossRefGoogle Scholar
  42. 42.
    Tymoczko, T.: ‘The Four-Color Problem and its Philosophical Significance’, The Journal of Philosophy 66(2), 57–83.Google Scholar
  43. 43.
    Wand, M.: 1980, ‘Continuation-Based Program Transformation Strategies’, Journal of the ACM 27(1), 164–180.MathSciNetzbMATHCrossRefGoogle Scholar
  44. 44.
    Waters, R. C.: 1981. ‘A Knowledge Based Program Editor’, 7th International Joint Conference on Artificial Intelligence, Vancouver.zbMATHGoogle Scholar
  45. 45.
    Wile, D. S.: 1981, ‘Program Developments as Formal Objects’, USC/Information Sciences Institute Technical Report.Google Scholar
  46. 46.
    Wirth, N.: 1971, ‘Program Development by Stepwise Refinement’, Communications of the ACM 14 (4), 221–227.zbMATHCrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media Dordrecht 1993

Authors and Affiliations

  • William L. Scherlis
    • 1
  • Dana S. Scott
    • 1
  1. 1.Department of Computer ScienceCarnegie-Mellon UniversityPittsburghUSA

Personalised recommendations