Abstract
A data type is often given by an informal model. Its formal specification is an important task, but also difficult and error-prone. Here a methodology for this task is presented. Its steps are, first, the election of a canonical form defining a canonical term algebra; second, a system of sound rewriting rules powerful enough to achieve the syntactical transformations of the canonical term algebra. The final translation of rewriting rules into equations is immediate. The methodology is illustrated by the detailed presentation of a simple example.
Similar content being viewed by others
References
J. E. Donahue,Complementary definitions of programming language semantics (Springer-Verlag, New York, 1976).
A. L. Furtado and P. A. S. Veloso, “Procedural specifications and implementations for abstract data types,”SIGPLAN NOTICES,16 (3): 53–62 (Mar. 1981).
A. L. Furtado, P. A. S. Veloso, and J. M. V. de Castilho, “Verification and testing of simple entity-relationship representations,”Second Internat. Conf. on the Entity-Relationship Approach (Oct. 1981), p. 125–149.
J. Gannon, P. McMullin, R. Hamlet, and M. Ardis, “Testing traversable stacks,”SIGPAN Notices 15 (1): 58–65 (Jan. 1980).
M. C. Gaudel, “Algebraic specification of abstract data types,”IRIA, Res. Rept. no. 360 (1979).
J. Goguen, J. Tardo, N. Williamson, and M. Zamfir, “A practical method for testing algebraic specifications,”The UCLA Comp. Sci. Dept. Quarterly 7 (1): 59–80 (Jan. 1979).
J. A. Goguen, J. W. Thatcher, and E. G. Wagner, “An initial algebra approach to the specification, correctness and implementation of abstract data types,”in Current trends in programming methodology, R. T. Yeh (ed.) vol. IV (Prentice-Hall, New York, 1977).
J. V. Guttag, “Abstract data types and the development of data structures,”Comm. of the ACM 20: 396–404 (1977).
J. V. Guttag, E. Horowitz, and D. R. Musser, “Abstract data types and software validation,”Comm. ACM,21 (12): 1048–1064 (Dec. 1978).
G. Huet and D. C. Oppen, “Equations and rewrite rules: a survey,” InFormal languages: perspectives and open problems, R. V. Book (ed.) (Academic Press, NY, 1980).
D. Kapur, “Specifications of Majester's traversable stack and Veloso's traversable stack,”SIGPLAN Notices,14 (5): 46–53 (May 1979).
M. R. Levy, “Some remarks on abstract data types,”SIGPLAN NOTICES,12 (7): 126–128 (July 1977).
B. H. Liskov, “Data types and program correctness,”SIGPLAN NOTICES 10 (7): 16–17 (July 1975).
B. Liskov and S. Zilles, “Specification techniques for data abstractions,”IEEE Trans. Software Engin.,1 (1): 7–18 (1975).
J. L. Remy and P. A. S. Veloso, “Comparing abstract data type specifications via their normal forms,”Internat. Journal of Computer & Information Sciences,11 (3):141–153 (1982).
Author information
Authors and Affiliations
Additional information
Research partly sponsored by FINEP, CNPq and the French Ministry for Foreign Affairs.
Rights and permissions
About this article
Cite this article
Veloso, P.A.S. Methodical specification of abstract data types via rewriting systems. International Journal of Computer and Information Sciences 11, 295–323 (1982). https://doi.org/10.1007/BF01001954
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF01001954