Summary
The model theoretic basis for (abstract) data types is generalized from algebras to multi-algebr as in order to cope with non-deterministic operations. A programming oriented definition and a model theoretic criterion (called simulation) for implementation of data types are given. To justify the criterion w.r.t. the definition, an abstract framework linking denotational semantics of programming languages and model theory of data types is set up. A set of constraints on a programming language semantics are derived which guarantee that simulation implies implementation. It is argued that any language supporting data abstraction does fulfill these constraints. As an example a simple but expressive language L is defined and it is formally proved that L does conform to these restrictions.
Article PDF
Similar content being viewed by others
References
Brooks, S.D., Rounds, W.C.: Behavioral Equivalence Relations Induced by Programming Logics. In: ICALP '83. Lect. Notes Comput. Sci. 154, 97–108 (1983)
Broy, M.: A Fixed Point Approach to Applicative Multiprogramming. In: ([4], 565–622)
Broy, M.: Fixed Point Theory for Communication and Concurrency. In: Formal Descriptions of Programming Concepts (D. Bjørner, ed.), pp. 125–147. Amsterdam: North-Holland 1983
Broy, M., Schmidt, G. (eds.): Theoretical Foundations of Programming Methodology. Dordrecht: Reidel 1982
Broy, M., Wirsing, M.: On the Algebraic Specification of Non-deterministic Programming Languages. In: Proc. CAAP '81. Lect. Notes Comput. Sci. 112, 162–179 (1981)
Broy, M., Wirsing, M.: Partial Abstract Types. Acta Inf. 18(1982)
Burmeister, P.: Partial algebras — survey of a unifying approach towards a two-valued model theory for partial algebras. Algebra Univers. 15 (1982)
Burstall, R.M., Goguen, J.A.: Algebras, Theories and Freeness: an Introduction for Computer Scientists. In: ([4], 329–348)
Castellani, I.: Bisimulations and Abstraction Homomorphisms. In: Proc. CAAP '85. Lect. Notes Comput. Sci. 185, 223–238 (1985)
Chandra, A.K.: Computable Nondeterministic Functions. In: Proc. 19th Annual Symposium on Foundations of Computer Science, 1978
de Nicola, R., Hennessy, M.C.B.: Testing Equivalences for Processes. In: Proc. ICALP '83. Lect. Notes Comput. Sci. 154, 548–560 (1983)
Dijkstra, E.W.: A Discipline of Programming. Englewood Cliffs, New Jersey: Prentice-Hall 1976
Ehrig, H.: Combining Initial and Loose Algebraic Specification Methods Including Compositionality and Modules. In: Proc. Workshop on Formal Software Development: Combining Specification Methods, Nyborg 1984 (To appear)
Ehrig, H., Kreowski, H.-J.: Parameter Passing Commutes with Implementation of Parameterized Data Types. In: Proc. ICALP '82. Lect. Notes Comput. Sci. 140, 197–211 (1982)
Goguen, J.A., Messeguer, J.: Universal Realization, Persistent Interconnection and Implementation of Abstract Modules. In: Proc. ICALP '82. Lect. Notes Comput. Sci. 140, 265–281 (1982)
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, Vol. 4. (R.T. Yeh, ed.). Englewood Cliffs: Prentice-Hall 1978
Hansoul, G.: Systemes Relationnels Et Algebres Multiformes. PhD Thesis, Universite de Liege, 1979/80
Hennessy, M., Milner, R.: Algebraic Laws for Nondeterminism and Concurrency, J. Assoc. Comput. Mach. 32, 137–161 (1985)
Hoare, C.A.R.: Proof of Correctness of Data Representations, Acta Inf. 1 (1972)
Hoare, C.A.R., Hayes, I.J., Jifeng He, Morgan, C.C., Sanders, J.W., Sorensen, I.H., Spivey, J.M., Sufrin, B.A.: Data Refinement Refined. PRG Oxford, Draft May 1985
Jones, C.B.: Software Development: A Rigorous Approach. Englewood Cliffs: Prentice-Hall 1980
Jones, C.B.: Development Methods for Computer Programs Including a Notion of Interference. Oxford University, PRG Monograph 25, 1981
Milner, R.: An Algebraic Definition of Simulation Between Programs. Report CS-205, Computer Science Department, Stanford University 1971
Milner, R.: A Calculus of Communicating Systems. Lect. Notes Comput. Sci 92 (1980)
Nipkow, T.: Nondeterministic Data Types: Models and Implementations. Draft Version, Dept. of Computer Science, The University of Manchester, March 1985
Park, D.M.R.: On the Semantics of Fair Parallelism. In: Abstract Software Specification (D. Bjørner, ed.). Lect. Notes Comput. Sci. 86, 504–526 (1980)
Park, D.M.R.: Concurrency and Automata on Infinite Sequences. In: Lect. Notes Comput. Sci. 104, 167–183 (1981)
Reichel, H.: Initial Restrictions of Behaviour. In: Proc. IFIP Working Conference. The Role of Abstract Models in Information Processing, Vienna, January 1985 (To appear)
Sannella, D.T., Tarlecki, A.: On Observational Equivalence and Algebraic Specification. In: Proc. CAAP '85. Lect. Notes Comput. Sci. 185, 308–322 (1985)
Sannella, D.T., Wirsing, M.: A Kernel Language for Algebraic Specification and Implementation. In: Proc. FCT '83. Lect. Notes Comput. Sci. 158, 413–427 (1983)
Schoett, O.: Ein Modulkonzept in der Theorie Abstrakter Datentypen. Report IfI-HH-B-81/81, Universität Hamburg, Fachbereich Informatik, 1981
Schoett, O.: A Theory of Program Modules, their Specification and Implementation. Report CSR-155-83, Dept. of Computer Science, University of Edinburgh 1983
Schoett, O.: Behavioural Correctness of Data Representations. Report CSR-185-85, Dept. of Computer Science, University of Edinburgh 1985
Shoenfield, R.J.: Mathematical Logic, Reading, MA: Addison-Wesley 1967
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Nipkow, T. Non-deterministic data types: models and implementations. Acta Informatica 22, 629–661 (1986). https://doi.org/10.1007/BF00263649
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00263649