Functional semantics of modules

  • John Gannon
  • Richard Hamlet
  • Harlan Mills
Advanced Seminar On The Role Of Semantics In Software Development The Role Of Semantics In The Development Of Software Systems
Part of the Lecture Notes in Computer Science book series (LNCS, volume 186)


Because large-scale software development is a struggle against internal program complexity, the modules into which programs are divided play a central role in software engineering. A module encapsulating a data type allows the programmer to ignore both the details of its operations, and of its value representations. It is a primary strength of program proving that as modules divide a program, making it easier to understand, so do they divide its proof. Each module can be verified in isolation, then its internal details ignored in a proof of its use. This paper describes proofs of module abstractions based on the functional semantics, and contrasts this with the Alphard formalism based on Hoare logic.


Concrete Object Symbolic Execution Concrete State Triangular Diagram Abstract Data Type 
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.


  1. 1.
    O.-J. Dahl, B. Myhrhaug, and K. Nygaard, The SIMULA 67 common base language. Norwegian Computing Center, Oslo, Publication Nr. S-22, 1970.Google Scholar
  2. 2.
    C. A. R. Hoare, Proof of correctness of data representations, Acta Informatica 1 (1972), pp. 271–281.Google Scholar
  3. 3.
    W. A. Wulf, R. L. London, and M. Shaw, An introduction to the construction and verification of Alphard programs, IEEE Trans. Software Engineering SE-2 (1976), pp. 253–265.Google Scholar
  4. 4.
    J. Guttag and J. Horning, The algebraic specification of abstract data types, Acta Informatica 10 (1978), 27–52.Google Scholar
  5. 5.
    J. A. Goguen, J. W. Thatcher, E. G. Wagner, and J. B. Wright, Initial algebra semantics and continuous algebras, J. of the Assoc. for Comp. Mach. 24 (1977), pp. 68–95.Google Scholar
  6. 6.
    R. G. Hamlet and H. D. Mills, Functional semantics, University of Maryland Computer Science Technical Report 1238, 1983.Google Scholar
  7. 7.
    Ibid., Functional Analysis of Programs, Oregon Graduate Center Technical Report CS/E 84-006, October, 1984.Google Scholar
  8. 8.
    Linger, R.C., Mills, H.D., and Witt, B.I., Structured Programming: Theory and Practice, Addison-Wesley, 1979.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1985

Authors and Affiliations

  • John Gannon
    • 2
  • Richard Hamlet
    • 1
  • Harlan Mills
    • 2
  1. 1.Department of Computer ScienceOregon Graduate CenterBeavertonUSA
  2. 2.Department of Computer ScienceUniversity of MarylandCollege Park

Personalised recommendations