Abstract
Contrary to recent claims that specification should be completed before implementation begins, this paper presents two arguments that the two processes must be intertwined. First, limitations of available implementation technology may force a specification change. For example, deciding to implement a stack as an array (rather than as a linked list) may impose a fixed limit on the depth of the stack. Second, implementation choices may suggest augmentations to the original specification. For example, deciding to use an existing pattern-match routine to implement the search command in an editor may lead to incorporating some of the routine's features into the specification, such as the ability to include wild cards in the search key. This paper elaborates these points and illustrates how they arise in the specification of a controller for a package router.
- 1 Balzer, R. M. Dataless programming. Full Joint Computer Conference, 1967, pp. 535-545.]]Google ScholarDigital Library
- 2 Balzer, R. M., N. M. Goldman, and D. S. Wile. On the transformational implementation approach to programming. Proceedings of the Second International Conference on Software Engineering, October 1976, pp. 337-344.]] Google ScholarDigital Library
- 3 Balzer, R. M., and N. M. Goldman. Principles of good software specification and their implications for specification languages. Proceedings of the Specifications of Reliable Software Conference, Boston, Massachusetts, April, 1979, pp. 58-67. (Also presented at the National Computer Conference, 1981.)]]Google Scholar
- 4 Balzer, R. M. Transformational implementation: An example. IEEE Trans. Software Engineering 7, 1 (Jan. 1981), 3-14. Also published as USC/Information Sciences Institute RR-79-79, May 1981.]]Google Scholar
- 5 Bauer, F. L. Programming as an evolutionary process. Proceedings of the Second International Conference on Software Engineering, Oct. 1976, pp. 223-234.]] Google ScholarDigital Library
- 6 Burstall, R. M., and J. Darlington. Some transformations for developing recursive programs. Proceedings of the International Conference on Reliable Software, Los Angeles, Calif., April 1975, pp. 465-472.]] Google ScholarDigital Library
- 7 Dijkstra, E. W. Notes on structured programming. In Structured Programming, Academic Press, New York, 1972.]] Google ScholarDigital Library
- 8 Hommel, G. (Ed.) Vergleich verschiedener Spezifikationsverfahren am Beispiel einer Paketverteilanlage. Kernforschungszentrum Karlsruhe GmbH, August, 1980. PDV- Report, KfK-PDV 186, Part 1.]]Google Scholar
- 9 Knuth, D. E. Structured programming with goto statements. Computing Surveys 6, 4 (Dec. 1974).]] Google ScholarDigital Library
- 10 Parnas, D. L. On the criteria to be used in decomposing systems into modules. Comm. ACM 15, 12 (Dec. 1972), 1053-1058.]] Google ScholarDigital Library
- 11 Wirth, N. Program development by step-wise refinement. Comm. ACM 14, 4 (Aril 1971).]] Google ScholarDigital Library
Index Terms
- On the inevitable intertwining of specification and implementation
Recommendations
Programming Language Specification and Implementation
Leveraging Applications of Formal Methods, Verification and Validation. ModelingAbstractThe specification of a programming language is a special case of the specification of software in general. This paper discusses the relation between semantics and implementation, or specification and program, using two very different languages for ...
Improved semantics and implementation through property-based testing with QuickCheck
AST 2014: Proceedings of the 9th International Workshop on Automation of Software TestTesting is the primary method to validate that a software implementation meets its specification. In this paper, we demonstrate an approach to validating an executable semantics using property- and model-based random testing in QuickCheck to automate ...
Procedural implementation of algebraic specification
An implementation of an algebraic specification in an imperative programming language consists of a representation type, together with an invariant and an equivalence relation over it, and a procedure for each operator in the specification. A formal ...
Comments