Abstract
We present a framework for program development, which is based on concepts from algebra and logic. In this framework, programming is viewed as a process that successively extends the program under consideration by adding new axioms or theorems to it. In this setting, axioms constitute design decisions, whereas theorems merely make deducible knowledge explicit.
Technically, this is achieved by combining concepts from two related areas: Algebraic specifications are used to represent programs, and Gentzen-style rules of natural deduction are used to represent derivation processes.
The paper presents the algebraic framework and a collection of characteristic derivation rules. A number of small examples shall illustrate the underlying methodology.
This work was partially sponsored by the German Ministry of Research and Technology (BMFT) as part of the project “KORSO — Korrekte Software”.
Chapter PDF
Similar content being viewed by others
Keywords
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
Bauer, F.L. et al.: The Munich Project Cip. Vol II: The Program Transformation System CIP-S. Lecture Notes in Computer Science 292. Berlin: Springer 1987.
Bauer, F.L., Möller, B., Partsch, H., Pepper, P.: Formal Program Construction by Transformations Computer-Aided, Intuition-Guided Programming. IEEE Trans. on Softw. Eng. 15:2 (1989), 165–180.
Bauer, F.L., Wössner, H.: Algorithmic Language And Program Development. Berlin: Springer 1982.
Bird, R.S.: An Introduction to the Theory of Lists. In: Broy, M. (ed.): Logic of Programming and Calculi of Discrete Design, NATO series F, vol. 36, Berlin: Springer 1986.
Bird, R.S.: Lectures on Constructive Functional Programming. In: Broy, M. (ed.): Constructive Methods in Computing Science. NATO series F, vol. 52, Berlin: Springer 1988.
Bird, R.S., Wadler, Ph.: Introduction to Functional Programming. Prentice Hall, 1988.
Broy, M.: Algebraic Methods for Program Construction: The Project CIP. In: Pepper, P. (ed.): Proc. of the Workshop on Program Transformation and Programming Environments. Berlin: Springer 1984, 199222.
Broy, M.: Deductive Program Development: Evaluation in Reverse Polish Notation as an Example. In: Broy, M., Wirsing, M. (eds.): Methods of Programming. Lecture Notes in Computer Science 544, Berlin: Springer 1991.
Broy, M., Wirsing, M.: Ultra-loose Algebraic Specification. Bulletin of the EATCS 35 (June 1988), 117–128.
Broy, M. et al.: The Requirement and Design Specification Language SPECTRUM — An Informal Introduction. Techn. Univ. München, Institut für Informatik, Techn. Rep. TUM-I9140, Oct. 1991.
Ehrig, H., Mahr, B.: Fundamentals of Algebraic Specification. Vol I/II. Berlin: Springer 1985/1990.
Gentzen, G. Untersuchungen über das logische Schließens. Math. Zeitschrift 39 (1935), 176–210, 405–431.
Gordon, M.J.C.: The Denotational Description of Programming Languages. Berlin: Springer 1979.
Gries, D.: The Science of Programming. Berlin: Springer 1981.
Hughes, G.E., Cresswell, M.J.: An Introduction to Modal Logic. London: Methuen 1986.
Kahn, G.: Natural Semantics. In: Brandenburg et al. (eds.): Proc. STACS 87, Lecture Notes in Computer Science 247, Berlin: Springer 1987, 22–39.
Manna, Z.: Mathematical Theory of Computation. New York: McGraw-Hill 1974.
Manna, Z., Waldinger, R.: The Logical Basis for Computer Programming, Vol.1+2. Reading: Addison-Wesley, 1985, 1990.
Partsch, H.: Specification and Transformation of Programs. Berlin: Springer 1990.
Partsch, H., Pepper, P.: Program transformations expressed by algebraic type manipulations. Technique et Science Informatiques 5:3 (1986), 197–212.
Pepper, P.: A Study on Transformational Semantics. In: Bauer, F.L., Broy, M. (eds.): Program Construction. Lect. Notes in Comp. Sc. 69, Berlin: Springer 1979, 322–405.
Pepper, P.: Algebraic Techniques for Program Specification. In: Pepper, P. (ed.): Proc. of the Workshop on Program Transformation and Programming Environments. Berlin: Springer 1984, 231–244.
Pepper, P.: Application of Modal Logics to the Reasoning About Applicative Programs. In: Meertens, L.G.L.T. (ed.): Program Specification and Transformation. Proc. IFIP TC2 Working Conf., Amsterdam: North Holland 1987, 429–449.
Pepper, P.: A simple calculus for program transformation (inclusive of induction). Science of Computer Programming 9 (1987), 221–262.
Pepper, P. (ed.): The Programming Language Opal-1. Technical Report, Fachbereich Informatik, Technische Universitt Berlin, 1991.
Pepper, P.: Transforming Algebraic Specifications — Lessons Learnt From An Example. In: Möller, B. (ed.): Constructing Programs From Specifications. Proc. IFIP TC2 Working Conference, Pacific Grove, Ca, May 1991. Amsterdam: North-Holland 1991, 399–426.
Pepper, P.: Literate Program Derivation: A Case Study. In: Broy, M., Wirsing, M. (eds.): Methods of Programming. Lecture Notes in Computer Science 544, Berlin: Springer 1991.
Plotkin, G.D.: A Structural Approach to Operational Semantics. DAIMI FN-19, Comp. Sc. Dept., Aarhus University, Aarhus, Denmark, Sept. 1981.
Sannella, D.T., Tarlecki, A.: On Observational Equivalence and Algebraic Specifications. J.Comp.System Sci. 34 (1987) 150–178.
Sannella, D.T., Tarlecki, A.: Toward Formal Development of Programs From Algebraic Specifications: Implementations Revisited. In: Ehrig, H. et al. (eds.): TAPSOFT '87, Lecture Notes in Computer Science 249, Berlin: Springer 1987, 96–100.
Sannella, D.T., Wirsing, M.: A Kernel Language for Algebraic Specification and Implementation. In: Coll. on Foundations of Comp. Th., Linkping 1983, Lecture Notes in Computer Science 158, Berlin: Springer 1983, 413–427.
Schmidt, D.A.: Denotational Semantics. Dubuque: Brown Publishers 1988.
Scott, D.: Outline of a Mathematical Theory of Computation. Proc. 4th Annual Princeton Conf. on Information Sciences and Systems, 169–176, 1970.
Smith, D.R.: The Design of Divide-and-Conquer Algorithms. Sci. Comp. Progr. 5 (1985) 37–58.
Smith, D.R.: Structure and Design of Global Search Algorithms. Techn. Rep. KES.U.87.12, Kestrel Institute, Nov. 1987. (to appear in Acta Informatica).
Smith, D.R.: KIDS — A Semi-automatic Program Development System. IEEE Trans. on Softw. Eng. 16:9 (1990) 1024–1043.
Wirsing, M.: Algebraic Specification. In: van Leeuven, J. (ed.): Handbook for Theoretical Computer Science. Amsterdam: North-Holland, 1990.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Pepper, P. (1993). Program development in an algebraic setting. In: Möller, B., Partsch, H., Schuman, S. (eds) Formal Program Development. Lecture Notes in Computer Science, vol 755. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57499-9_22
Download citation
DOI: https://doi.org/10.1007/3-540-57499-9_22
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57499-6
Online ISBN: 978-3-540-48197-3
eBook Packages: Springer Book Archive