Reasoning about programs via operational semantics: requirements for a support system
 John R. D. Hughes,
 Cliff B. Jones
 … show all 2 hide
Rent the article at a discount
Rent now* Final gross prices may vary according to local VAT.
Get AccessAbstract
Reasoning about programs using “axioms” is well established; in this paper we argue that reasoning about a program directly in terms of Structural Operational Semantic (SOS) language descriptions is a viable addition and that this is anyway necessary for the vast majority of languages where there is nothing like a full axiomatic description. Using an SOS description is likely to require detailed proofs whose acceptability to users will depend on suitable support systems. The paper presents a very simple example to illustrate how we can reason about (in fact, develop) a program to prove that it satisfies a specification. The main contribution is to use this trivial example to point out issues in designing an interactive proof system for constructing such proofs.
 Abrial, J.R. (1996) The BBook: Assigning Programs to Meanings. Cambridge University Press, Cambridge
 Bicarregui, J.C., Fitzgerald, J.S., Lindsay, P.A., Moore, R., Ritchie, B. (1994) Proof in VDM: A Practitioner’s Guide. Springer, New York
 Camilleri, J., Melham, T.: Reasoning with inductively defined relations in the HOL theorem prover. Technical Report 265, Computer Laboratory, University of Cambridge (August 1992).
 Coleman, J.W.: Constructing a tractable reasoning framework upon a finegrained structural operational semantics. PhD thesis, Newcastle University (January 2008).
 Dijkstra, E.W., Scholten, C.S. (1990) Predicate Calculus and Program Semantics. Springer, New York
 Donahue, J.E. (1976) Complementary Definitions of Programming Language Semantics. Springer, New York
 Floyd, R.W. (1967) Assigning meanings to programs. Proc. Symp. in Applied Mathematics. American Mathematical Society, Providence, pp. 1932
 Hoare, C.A.R. (1969) An axiomatic basis for computer programming. Commun. ACM 12: pp. 576580 CrossRef
 Hoare, C.A.R. (1971) Commun. ACM. Proof of a program: FIND 14: pp. 3945
 Hoare, C.A.R., Wirth, N. (1973) An axiomatic definition of the programming language Pascal. Acta Inf. 2: pp. 335355 CrossRef
 Holt, R.C., Matthews, P.A., Rosselet, J.A., Cordy, J.R. (1988) The Turing Programming Language: Design and Definition. PrenticeHall International, Englewood Cliffs
 Jones, C.B. (1979) Constructing a theory of a data structure as an aid to program development. Acta Inf. 11: pp. 119137
 Jones, C.B. (1980) Software Development: A Rigorous Approach. PrenticeHall International, Englewood Cliffs
 Jones, C.B. (1990) Systematic Software Development using VDM. PrenticeHall International, Englewood Cliffs
 Jones, C.B. (2003) The early search for tractable ways of reasoning about programs. IEEE, Ann. History Comput. 25: pp. 2649 CrossRef
 Jones, C.B. (2003) Operational semantics: concepts and their expression. Inf. Process. Lett. 88: pp. 2732 CrossRef
 Jones, C.B. Understanding programming language concepts via operational semantics. In: George, C., Liu, Z., Woodcock, J. eds. (2007) Domain Modeling and the Duration Calculus. Springer, New York, pp. 177235 CrossRef
 Jones, C.B., Jones, K.D., Lindsay, P.A., Moore, R. (1991) mural: A Formal Development Support System. Springer, New York
 King, J.C.: A program verifier. PhD thesis, Department of Computer Science, CarnegieMellon University (1969)
 Klein, G., Nipkow, T. (2003) Verified bytecode verifiers. Theor. Comput. Sci. 298: pp. 583626 CrossRef
 Leavens, G.T., Abrial, J.R., Batory, D., Butler, M., Coglio, A., Fisler, K., Hehner, E., Jones, C., Miller, D., PeytonJones, S., Sitaraman, M., Smith, D.R., Stump, A.: Roadmap for enhanced languages and methods to aid verification. Technical Report 0621, Iowa State University, Department of Computer Science, Ames, IA (July 2006)
 Lauer, P.E.: Consistent formal theories of the semantics of programming languages. PhD thesis, Queen’s University of Belfast (1971). Printed as TR 25.121, IBM Lab. Vienna
 Lucas, P., Walk, K. (1969) On The Formal Description of PL/I. Pergamon, Oxford
 McCarthy, J. A formal description of a subset of ALGOL. In: Steel, T. eds. (1966) Formal Language Description Languages for Computer Programing. NorthHalland, Amsterdam, pp. 112
 Mehta, F.D.: Proofs for the working engineer. PhD thesis, ETH Zürich (2008)
 Plotkin, G.D. (2004) The origins of structural operational semantics. J. Log. Algebraic Program. 60–61: pp. 315 CrossRef
 Nieto, L.P.: Verification of parallel programs with the OwickiGries and relyguarantee methods in isabelle/HOL. PhD thesis, Institut für Informatic der Technischen Universitaet München (2001)
 Turing, A.M.: Checking a large routine. In: Report of a Conference on High Speed Automatic Calculating Machines, pp. 67–69. University Mathematical Laboratory, Cambridge (June 1949)
 Title
 Reasoning about programs via operational semantics: requirements for a support system
 Journal

Automated Software Engineering
Volume 15, Issue 34 , pp 299312
 Cover Date
 20081201
 DOI
 10.1007/s1051500800366
 Print ISSN
 09288910
 Online ISSN
 15737535
 Publisher
 Springer US
 Additional Links
 Topics
 Keywords

 Structural operational semantics
 Proofs about programs
 Tool support
 Industry Sectors
 Authors

 John R. D. Hughes ^{(1)}
 Cliff B. Jones ^{(1)}
 Author Affiliations

 1. School of Computing Science, Newcastle University, Newcastle, UK