Academia.eduAcademia.edu

Outline

Writing Larch interface language specifications

1987, ACM Transactions on Programming Languages and Systems

https://doi.org/10.1145/9758.10500

Abstract

Current research in specifications is emphasizing the practical use of formal specifications in program design. One way to encourage their use in practice is to provide specification languages that are accessible to both designers and programmers. With this goal in mind, the Larch family of formal specification languages has evolved to support a two-tiered approach to writing specifications. This approach separates the specification of state transformations and programming language dependencies from the specification of underlying abstractions. Thus, each member of the Larch family has a subset derived from a programming language and another subset independent of any programming languages. We call the former interface languages, and the latter the Larch Shared Language. This paper focuses on Larch interface language specifications. Through examples, we illustrate some salient features of Larch/CLU, a Larch interface language for the programming language CLU. We give an example of writing an interface specification following the two-tiered approach and discuss in detail issues involved in writing interface specifications and their interaction with their Shared Language components.

References (57)

  1. ABRIAL, J. R. The specification language Z: Syntax and semantics. Programming Research Group, Oxford University, 1980.
  2. GOGUEN, J. A., THATCHER, J. W., WAGNER, E. G., AND WRIGHT, J. B. Abstract data types as initial algebras and correctness of data representations. In Proceedings of the Conference on Computer Graphics, Pattern Recognition and Data Structures (May 1975), ACM, New York, 89-93.
  3. ATREYA, S. K. Formal specification of a specification library. M.S. thesis, MIT, Dept. of Electrical Engineering and Computer Science, Cambridge, Mass., May 1982.
  4. BERZINS, V. Abstract model specifications for data abstractions. MIT Laboratory for Computer Science, Cambridge, Mass., July 1979.
  5. BIRKHOFF, G., AND LIPSON, J. D. Heterogeneous algebras. J. Comb. Theor. 8 (1970), 115-133.
  6. BJORNER, D., AND JONES, C. G. (Eds.). The Vienna Development Method: The Meta-langunge. Lecture Notes in Computer Science, 61. Springer, New York, 1978.
  7. BURSTALL, R. M., AND GOGUEN, J. A. Putting theories together to make specifications. In Proceedings of the 5th. International Joint Conference on Artificial Intelligence (Aug. 1977), 1045-1058. Invited paper.
  8. BURSTALL, R. M., AND GOGUEN, J. A. An informal introduction to specifications using CLEAR. In The Correctness Problem in Computer Science, 1981.
  9. CAINE, S. H., AND GORDON, E. K. PDL-A tool for software design. In Proceedings of the I975 National Computer Conference (Anaheim, Calif., May 19-22). AFIPS Press, Reston, Va., 1975, 271-276.
  10. EHRICH, H.-D. Extensions and implementations of abstract data type specifications. In Math- ematical Foundations of Computer Science 1978, Proceedings. Lecture Notes in Computer Science, 64. Springer, New York, 1978, 155-164.
  11. EHRIG, H., KREOWSKI, H.-J., THATCHER, J., WAGNER, E., AND WRIGHT, J. Parameterized data types in algebraic specification languages. In Automata, Languages, and Programming. Lectures Notes in Computer Science, 85. Springer, New York, 1980, 157-168.
  12. EHRIG, H., AND MAHR, B. Fundumentals of Algebraic Specification 1. Springer, New York, 1985.
  13. FORGAARD, R. A program for generating and analyzing term rewriting systems. M.S. thesis, TR-343, MIT Laboratory for Computer Science, Cambridge, Mass., 1985.
  14. GOGUEN, J. A. Abstract errors for abstract data types. In Proceedings of the IFIP Working Conference on Formal Basis of Programming Concepts (Aug. 1977). IFIP, 21.1-21.32. ACM Transactions on Programming Languages and Systems, Vol. 9, No. 1, January 1987. Writing Larch Interface Language Specifications l 23
  15. GOGUEN, J. A., AND PARSAYE-GHOMI, K. Algebraic denotational semantics using parameterized abstract modules. CSL-119, Stanford Research Institute, Menlo Park, Calif., Feb. 1981.
  16. GOOD, D. I., COHEN, R. M., HOCH, C. G., HUNTER, L. W., AND HARE, D. F. Report on the language Gypsy, version 2.0. ICSCA-CMP-10, Certifiable Minicomputer Project, Univ. of Texas, Austin, Sept. 1978.
  17. GUTTAG, J. V. The specification and application to programming of abstract data types. Ph.D. dissertation, Univ. of Toronto, Toronto, Sept. 1975.
  18. GUTTAG, J. V. Abstract data types and the development of data structures. Commun. ACM 20, 6 (June 1977), 396-404.
  19. GU?TAG, J. V., AND HORNING, J. J. Formal specification as a design tool. In Proceedings of the 7th ACM Symposium on Principles of Programming Languages (Las Vegas, Nev., Jan. 1980), ACM, New York, 251-261.
  20. GUWAG, J. V., HORNING, J. J., AND WING, J. M. Some notes on putting formal specifications to productive use. Sci. Comput. Program. 2, 1 (Oct. 1982), 53-68.
  21. GUTTAG, J. V., AND HORNING, J. J. An introduction to the Larch Shared Language. In Proceedings of the IFIP 9th World Computer Congress (Paris, Sept. 1983), IFIP, 1983.
  22. GUTTAG, J. V., HORNING, J. J., AND WING, J. M. The Larch family of specification languages. IEEE Softw. 2, 5 (Sept. 1985), 24-36.
  23. GUTTAG, J. V., HORNING, J. J., AND WING, J. M. Larch in five easy pieces. 5, DEC Systems Research Center, July 1985.
  24. GUTTAG, J. V., AND HORNING, J. J. Report on the Larch Shared Language. Sci. Comput. Program. 6 (1986), 103-134.
  25. GUTTAG, J. V., AND HORNING, J. J. A Larch Shared Language handbook. Sci. Comput. Program. 6 (1986), 135-157.
  26. HOARE, C. A. R. An axiomatic basis for computer programming. Commun. ACM 12, 10 (Oct. 1969), 576-583.
  27. HOARE, C. A. R. Proof of correctness of data representations. Acta Inf. 1, 1 (1972), 271-281.
  28. HORNING, J. J. Combining algebraic and predicative specifications in Larch. In Proceedings of the International Joint Conference on Theory and Practice of Software Development, TAPSOFT, 1985. Lecture Notes in Computer Science, 186. Springer, New York, 1985,12-26.
  29. HORNING, J. J. Cedar Mesa interface language. Private communication, 1983.
  30. JACKSON, M. A. Principles of Program Design. Academic Press, London, 1975.
  31. JONES, C. B. Software Deuelapment: A Rigorous Approach. Prentice-Hall International, Englewood Cliffs, N.J., 1980.
  32. KAMIN, S. Final data types and their specification. ACM Trans. Program. Lung. Syst. 5, 1 (Jan. 1983), 97-121.
  33. KAPUR, D. Towards a theory for abstract data types. TR-237, MIT Laboratory for Computer Science, Cambridge, Mass., May 1980.
  34. KATZAN, H., JR. Systems Design and Documentation: An Introduction to the HIP0 Method. Van Nostrand Reinhold, New York, 1976.
  35. KOWNACKI, R. W. Semantic checking of formal specifications. M.S. thesis, MIT, Dept. of Electrical Engineering and Computer Science, Cambridge, Mass., Aug. 1984.
  36. LESCANNE, P. Computer experiments with the REVE term rewriting system generator. In Proceedings of the 10th ACM Symposium on Principles of Programming Languages (Austin, Tex., Jan. 1983). ACM, New York, 1983,99-108.
  37. LISKOV, B. H., AND ZILLES, S. N. Specification techniques for data abstractions. IEEE Trans. Softw. Eng. SE-Z, 1 (1975), 7-19.
  38. LISKOV, B., SNYDER, A., ATKINSON, R., AND SCHAFFERT, C. Abstraction mechanisms in CLU. Commun. ACM 20,8 (Aug. 1977), 564-576.
  39. LISKOV, B. H., AND BERZINS, V. An appraisal of program specifications. Research Directions in Software Technology, Cambridge, Mass., 1979.
  40. LISKOV, B. H., ET AL. CLU Reference Manual: Lecture Notes in Computer Science, 114. Springer, New York, 1981.
  41. MUSSER, D. R. Abstract data type specification in the Affirm system. IEEE Trans. Softw. Eng. 6, 1 (Jan. 1980), 24-32.
  42. NAKAJIMA, R., HONDA, M., AND NAKAHARA, H. Hierarchical program specification and verifi- cation-A many-sorted logical approach. Acta Inf. 14 (1980), 135-155.
  43. l Jeannette M. Wing
  44. NAKAJIMA, R., AND YUASA, T. The Iota Programming System. Springer, New York, 1983.
  45. PARNAS, D. L. A technique for software module specification with examples. Commun. ACM 25,5 (May 1972), 330-336.
  46. ROBINSON, L., AND ROUBINE, 0. SPECIAL-A specification and assertion language. CSL-46, Stanford Research Institute, Menlo Park, Calif., Jan. 1977.
  47. SCHEID, J., AND ANDERSON, S. The Ina Jo specification language reference manual. TM-(L)-6021/001/00, System Development Corp., Santa Monica, Calif., Mar. 1985.
  48. STANDISH, T. A. Data structures: An axiomatic approach. Rep. 2639, Bolt, Beranek, and Newman, Cambridge, Mass., Aug. 1973.
  49. SUFRIN, B., MORGAN, C., SORENSEN, I., AND HAYES, I. Notes for a Z handbook: Part l-The mathematical language. Programming Research Group, Oxford Univ., Computing Laboratory, Aug. 1984.
  50. THATCHER, J. W., WAGNER, E. G., AND WRIGHT, J. B. Data type specification: Parameteriza- tion and the power of specification techniques. In Proceedings of the 1OthAnnunlACM Symposium on Theory of Computing (May), ACM, New York, 1978,119-132.
  51. WAND, M. Final algebra semantics and data type extensions. J. Comput. Syst. Sci. 19, 1 (Aug. 1979), 27-44.
  52. WING, J. M. A two-tiered approach to specifying programs. MIT-LCS-TR-299, MIT Laboratory for Computer Science, Cambridge, Mass., June 1983.
  53. WING, J. M. Helping specifien evaluate their specifications. In Pmceedings of the 2nd Software Engineering Conference (June 1984). AFCET, 179-191.
  54. YOURDON, E., AND CONSTANTINE, L. L. Structured Design: Fundamentals of a Discipline of Computer Programs and Systems Design, 2nd ed. Yourdon Press, New York, 1978.
  55. ZACHARY, J. A syntax-directed tool for constructing specifications. M.S. thesis, MIT, Dept. of Electrical Engineering and Computer Science, Cambridge, Mass., Mar. 1983.
  56. ZAVE, P. An operational approach to requirements specification for embedded systems. IEEE Trans. Softw. Eng. 8,3 (May 1982), 250-269.
  57. ZILLES, S. N. Abstract specifications for data types. IBM Research Laboratory, San Jose, Calif., 1975.