Summary
An observational approach to the construction of implementations of algebraic specifications is presented. Based on the theory of observational specifications an implementation relation is defined which formalizes the intuitive idea that an implementation is correct if it produces correct observable output. To be useful in practice proof theoretic criteria for observational implementations are provided and a proof technique (called “context induction”) for the verification of implementation relations is presented. As an example an abstract specification of (the algebraic semantics of) a small imperative programming language is implemented by a state oriented specification of the language.
In order to support the modular construction of implementations the approach is extended to parameterized observational specifications. Based on the notion of observable parameter context a proof theoretic criterion for parametrized observational implementations is presented and it is shown that under appropriate conditions observational implementations compose horizontally. The given implementation criteria are applied to examples.
Similar content being viewed by others
References
[Broy et al. 84] Broy, M., Pair, C., Wirsing, M.: A systematic study of models of abstract data types. Theoret. Comput. Sci.33, 139–174 (1984)
[Broy et al. 87] Broy, M., Pepper, P., Wirsing, M.: On the algebraic definition of programming languages. ACM Trans. Prog. Languages Syst.9(1), 54–99 (1987)
[Burstall, Goguen 80] Burstall, R.M., Goguen, J.A.: The semantics of Clear, a specification language. Proc. of Advanced Course on Abstract Software Specifications, Kopenhagen. (Lect. Notes Comput. Sci., vol. 86, pp. 292–332) Berlin Heidelberg New York: Springer 1980
[Cohn 81] Cohn, P.M.: Universal algebra. Dordrecht: D. Reidel 1981
[Ehrig, Kreowski 82] Ehrig, H., Kreowski, H.J.: Parameter passing commutes with implementation of parameterized data types. In: Nielsen, M., Schmidt, E.M. (eds.) Proc ICALP 82, 9th Coll. on Automata, Languages and Programming, Aarhus, July 1982. (Lect. Notes Comput. Sci., vol. 140, pp. 197–211) Berlin Heidelberg New York: Springer 1982
[Ehrig, Mahr 85] Ehrig, H., Mahr, B.: Fundamentals of algebraic specification 1. EATCS Monographs on Theor. Comp. Science, vol. 6. Berlin Heidelberg New York: Springer 1985
[Ehrig et al. 82] Ehrig, H., Kreowski, H.J., Mahr, B., Padawitz, P.: Algebraic implementation of abstract data types. Theoret. Comput. Sci.20, 209–263 (1982)
[Futatsugi et al. 85] Futatsugi, K., Goguen, J.A., Jouannaud, J.P., Meseguer, J.: Principles of OBJ2. Proc. 12th ACM Symposium on Principles of Programming Languages, New Orleans, pp. 52–66. Baltimore: ACM Order Department 1985
[Ganzinger 83] Ganzinger, H.: Parameterized specifications: parameter passing and implementation with respect to observability. ACM Trans. Prog. Lang. Syst.5(3), 318–354 (1983)
[Geser, Hussmann 86] Geser, A., Hussmann, H.: Experiences with the RAP system—a specification interpreter combining term rewriting and resolution. In: Robinet, B., Wilhelm, R. (eds.) Proc. ESOP 86, Europ. Symp. on Programming, Saarbrücken. (Lect. Notes Comput. Sci., vol. 213, pp. 339–350) Berlin Heidelberg New York: Springer 1986
[Giarratana et al. 76] Giarratana, V., Gimona, F., Montanari, U.: Observability concepts in abstract data type specification. In: Mazurkiewicz, A. (ed.) Proc. MFCS 76, 5th Internat. Symp. on Mathematical Foundations of Comp. Science, Gdansk. (Lect. Notes Comput. Sci., vol. 45, pp. 576–587) Berlin Heidelberg New York: Springer 1976
[Goguen, Burstall 80] Goguen, J.A., Burstall, R.M.: CAT, a system for the structured elaboration of correct programs from structured specifications. Technical report CSL-118, Computer Science Laboratory, SRI International (1980)
[Goguen, Meseguer 82] Goguen, J.A., Meseguer, J.: Universal realization, persistent interconnection and implementation of abstract modules. In: Nielsen, M., Schmidt, E.M. (eds.) Proc. ICALP 82, 9th Coll. on Automata, Languages and Programming, Aarhus. (Lect. Notes Comput. Sci., vol. 140, pp. 265–281) Berlin Heidelberg New York: Springer 1982
[Goguen, Meseguer 82a] Goguen, J.A., Meseguer, J.: Completeness of many-sorted equational logic. SIGPLAN Notices16(7), 24–32 (1981);17(1), 9–17 (1982)
[Hennicker 88] Hennicker, R.: Beobachtungsorientierte Spezifikationen. Dissertation, Fakultät für Mathematik und Informatik, Universität Passau 1988
[Hennicker, Wirsing 85] Hennicker, R., Wirsing, M.: Observational specification: a Birkhoff-theorem. In: Kreowski, H.J. (ed.) Recent trends in data type specification. 3rd Workshop on Theory and Appl. of Abstract Data Types, Bremen. Selected Papers. Informatik Fachber., vol. 116, pp. 119–135, Berlin Heidelberg New York: Springer 1985
[Nivela, Orejas 88] Nivela, Ma P., Orejas, F.: Initial behaviour semantics for algebraic specifications. In: Sannella, D., Tarlecki, A. (eds.) Proc 5th Workshop on Algebraic Specifications of Abstract Data Types, Gullane. (Lect. Notes Comput. Sci., vol. 332, pp. 184–207) Berlin Heidelberg New York: Springer 1988
[Padawitz 90] Padawitz, P.: Horn logic and rewriting for functional and logic program design. Technische Berichte der Fakultät für Mathematik und Informatik, Universität Passau, MIP-9002 (1990)
[Padawitz, Wirsing 84] Padawitz, P., Wirsing, M.: Completeness of many-sorted equational logic revisited. Bull. EATCS24, 88–94 (1984)
[Reichel 81] Reichel, H.: Behavioural equivalence — a unifying concept for initial and final specification methods. In: Arotó, M., Varga, L. (eds.) Math. models in comp. systems. Proc. 3rd Hungarian Computer Science Conf., Budapest, pp. 27–39. Budapest: Akadémiai Kiadó 1981
[Reichel 85] Reichel, H.: Initial restrictions of behaviour. IFIP Working Conference. The Role of Abstract Models in Information Processing (1985)
[Sannella, Tarlecki 85] Sannella, D.T., Tarlecki, A.: On observational equivalence and algebraic specification. In: Ehrig, H., Floyd, C., Nivat, M., Thatcher, J. (eds.) Proc. TAPSOFT 85, Joint Conf. on Theory and Practice of Software Development, Berlin. (Lect. Notes Comput. Sci., vol. 185, pp. 308–322) Berlin Heidelberg New York: Springer 1985
[Sannella, Tarlecki 87] Sannella, D.T., Tarlecki, A.: Toward formal development of programs from algebraic specifications: implementations revisited. Proc. TAPSOFT 87, Joint Conf. on Theory and Practice of Software Development, Pisa. (Lect. Notes Comput. Sci., vol. 249, pp. 96–110) Berlin Heidelberg New York: Springer 1987
[Sannella, Wirsing 82] Sannella, D.T., Wirsing, M.: Implementation of parameterized specifications. In: Nielsen, M., Schmidt, E.M. (eds.) Proc. ICALP 82, 9th Coll. on Automata, Languages and Programming, Aarhus. (Lect. Notes Comput. Sci., vol. 140, pp. 473–488) Berlin Heidelberg New York: Springer 1982
[Schoett 87] Schoett, O.: Data abstraction and the correctness of modular programming. Ph. D. thesis, CST-42-87, Department of Comp. Science, University of Edinburgh (1987)
[Wirsing 86] Wirsing, M.: Structured algebraic specifications: a kernel language. Theoret. Comput. Sci.42, 123–249 (1986)
[Wirsing et al. 83] Wirsing, M., Pepper, P., Partsch, H., Dosch, W., Broy, M.: On hierarchies of abstract data types. Acta Inf.20, 1–33 (1983)
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Hennicker, R. Observational implementation of algebraic specifications. Acta Informatica 28, 187–230 (1991). https://doi.org/10.1007/BF01178505
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF01178505