Advertisement

A case study of abstract implementations and their correctness

  • H. Ehrig
  • H. -J. Kreowski
  • P. Padawitz
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 83)

Abstract

A new implementation concept for algebraic specification languages supports hierarchical programming mainly because it provides a semantical basis for correctness proofs. "Abstract programs" describe syntactically how data and operations of a lower level data type should represent those of an upper level type. Dependent on these programs a general semantical construction transforms the lower level type into an implementation of the upper level type. The implementation is correct if the result of this construction coincides with the semantics of the upper level type. Therefore this concept involves a clear distinction between the syntactical and the semantical part of an abstract implementation. Although the syntax of such an implementation always supplies a "freely generated" semantics, the concept also admits the use of other (algebraic) models which often ease correctness proofs.

A data type for performing some text analysis is specified and implemented by arrays which are accessed via an efficient hashing technique. Moreover, we give a correctness proof of this implementation that partly refers to correctness criteria introduced in an earlier paper where the whole concept is discussed in more detail.

Keywords

Data Type Specification Language Correctness Proof Abstract Data Type Abstraction Function 
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.

References

  1. /AM 75/.
    Arbib, M.A., Manes, E.G.: Arrows, Structures, and Functors, Academic Press, New York, 1975Google Scholar
  2. /BG 77/.
    Burstall, R.M., Goguen, J.A.: Putting Theories together to Make Specifications, Proc. Int. Conf. Artificial Intelligence, Boston, 1977Google Scholar
  3. /Der 79/.
    Dershowitz, N.: Orderings for Term-Rewriting Systems, Proc. 20th IEEE Symp. on FOCS, 1979, 123–131Google Scholar
  4. /Dij 72/.
    Dijkstra, E.W.: Notes on Structured Programming, in: Structured Programming, C.A.R. Hoare, Ed., Academic Press, New York, 1972Google Scholar
  5. /EKMP 80/.
    Ehrig, H., Kreowski, H.-J., Mahr, B., Padawitz, P.: Compound Algebraic Implementations: An Approach to Stepwise Refinement of Software Systems, 1980,Bericht Nr.80-4,TU Berlin,FB 20,1980Google Scholar
  6. /EKP 78/.
    Ehrig, H., Kreowski, H.-J., Padawitz, P.: Stepwise Specification and Implementation of Abstract Data Types, Proc. 5th ICALP, Udine 1978, Springer Lect. Not. in Comp. Sci. 62, 205–226Google Scholar
  7. /EKP 79a/.
    —: Algebraische Implementierung abstrakter Datentypen, Forschungsbericht Nr. 79-3, TU Berlin, FB 20, 1979Google Scholar
  8. /EKP 79b/.
    —: Algebraic Implementation of Abstract Data Types: Concept, Syntax, Semantics and Correctness, 1979, accepted for ICALP 80Google Scholar
  9. /EKP 80/.
    —: Completeness in Algebraic Specifications, to appear in Bull. EATCS, No. 11, 1980Google Scholar
  10. /GH 78/.
    Guttag, J.V., Horning, J.J.: The Algebraic Specification of Abstract Data Types, Acta Informatica 10, 1978, 27–52Google Scholar
  11. /GHM 78/.
    Guttag, J.V., Horowitz, E., Musser, D.R.: Abstract Data Types and Software Validation, Comm. ACM, Vol. 21, No. 12, 1978, 1048–1063Google Scholar
  12. /GN 78/.
    Goguen, J.A., Nourani, F.: Some Algebraic Techniques for Proving Correctness of Data Type Implementation, Extended Abstract Comp. Sci. Dept., UCLA, Los Angeles, 1978Google Scholar
  13. /GT 78/.
    Goguen, J.A., Tardo, J.J.: An Introduction to OBJ: A Language for Writing and Testing Formal Algebraic Specifications, Techn. Report, Univ. of California at LA, 1978Google Scholar
  14. /GTW 78/.
    Goguen, J.A., Thatcher, J.W., Wagner, E.G.: An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types, in: Current Trends in Programming Methodology, IV: Data Structuring (R. Yeh Ed.), Prentice Hall, New Jersey, 1978, 80–144Google Scholar
  15. /Gut 76/.
    Guttag, J.V.: Abstract Data Types and the Development of Data Structures, Supplement to Proc. Conf. on Data Abstraction, Definition, and Structure, SIGPLAN Notices 8, March 1976Google Scholar
  16. /Huet 77/.
    Huet, G.: Confluent Reductions: Abstract Properties and Applications to Term Rewriting Systems, Proc. 18th Symp. on FOCS, 1977, 30–45Google Scholar
  17. /KB 70/.
    Knuth, D., Bendix, P.: Simple Word Problems in Universal Algebras, in: Computational Problems in Abstract Algebra, J. Leech, Ed., Pergamon Press, Oxford 1970, 263–297Google Scholar
  18. /LRS 79/.
    Levitt, K.N., Robinson, L., Silverberg, B.A.: The HDM Handbook, SRI International, Menlo Park, 1979Google Scholar
  19. /LS 77/.
    Lehmann, D.H., Smyth, M.B.: Data Types, Univ. of Warwick, Dept. of Comp. Sci., Report No. 19, 1977, and Proc. 18th IEEE Symp. on Found. of Computing, Providence, R.I., Nov. 1977, 7–12Google Scholar
  20. /Mus 78/.
    Musser, D.R.: A Data Type Verification System Based on Rewrite Rules, Univ. of Southern California, ISI Report, 1978Google Scholar
  21. /Nou 79/.
    Nourani, F.: Constructive Extension and Implementation of Abstract Data Types and Algorithms, Ph.D.Thesis, University of California at LA, 1979Google Scholar
  22. /Pad 79/.
    Padawitz, P.: Proving the Correctness of Implementations by Exclusive Use of Term Algebras, Forschungsbericht Nr. 79-8, TU Berlin, FB 20, 1979Google Scholar
  23. /Pad 80/.
    —: New Results on Completeness and Consistency of Abstract Data Types, 1980, submitted to 5th Conf. on Automated DeductionGoogle Scholar
  24. /Par 72/.
    Parnas, D.L.: A Technique for Module Specification with Examples, Comm. ACM, Vol. 15, No. 5, 1972, 330–336Google Scholar
  25. /RL 77/.
    Robinson, L., Levitt, K.N.: Proof Techniques for Hierarchically Structured Programs, Comm. ACM, Vol. 20, No. 4, 271–283Google Scholar
  26. /Ros 73/.
    Rosen, B.K.: Tree-Manipulating Systems and Church-Rosser Theorems, Journal ACM, Vol. 20, No. 1, 1973, 160–187Google Scholar
  27. /RR 77/.
    Roubine, O, Robinson, L.: SPECIAL Reference Manual, 3rd Edition, SRI Report No. CSG-45, Menlo Park, 1977Google Scholar
  28. /TWW 78/.
    Thatcher, J.W., Wagner, E.G., Wright, J.B.: Data Type Specification: Parameterization and the Power of Specification Techniques, Proc. 10. SIGACT Symp. on Theory of Computing, San Diego, 1978, 119–132Google Scholar
  29. /Wir 71/.
    Wirth, N.: Program Development by Stepwise Refinement, Comm. ACM, Vol. 14, No. 4, 1971, 221–227Google Scholar
  30. /WLS 76/.
    Wulf, A., London, R.L., Shaw, M.: Abstraction and Verification in ALPHARD: Introduction to Language and Methodology, Techn. Report, Carnegie-Mellon Univ., 1976Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1980

Authors and Affiliations

  • H. Ehrig
    • 1
  • H. -J. Kreowski
    • 1
  • P. Padawitz
    • 1
  1. 1.TU Berlin, FB Informatik (20)Berlin 10Germany (West)

Personalised recommendations