CB Jones Transition from VDL to VDM Cover Sheet
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Operational Semantics: Concepts and Their Expression
Operational Semantics: Concepts and their Expression Cliff B. Jones School of Computing Science, The University of Newcastle upon Tyne NE1 7RU England. [email protected] Keywords: Formal Semantics, Operational Semantics, Programming Languages 1 Introduction One of the earliest approaches to giving formal semantics for programming lan- guages was “operational semantics”. Enthusiasm for this approach has waxed and waned (not least in my own mind). The main objective of this paper is to tease apart some concepts involved in writing such operational descriptions and (as separately as possible) to discuss useful notations. A subsidiary observation is that “formal methods” will only be used when their cost-benefit balance is positive. Here, learning mathematical ideas that are likely to be unfamiliar to educated software engineers must be considered as a cost; the benefit must be found in understanding, manipulating and recording ideas that are important in software. At the ETAPS-WMT event in Warsaw, Niklaus Wirth reminded the audi- ence of the benefits of the syntax notation known as “Extended Backus-Naur Form”. This paper reviews some of the research in documenting the semantics of programming languages. It is argued that “operational semantics” can provide –for limited learning cost– considerable benefit in terms of understanding and experimenting with aspects of languages. The balance between identifying key concepts and choosing apposite notations is explored as are doubts about the practical value of “denotational semantics”. The main trends in the progress of language semantics can be summarised briefly. There is no intention here to attempt a complete history of research on formal semantics; rather, enough is recorded to set the context for what follows. -
Insight, Inspiration and Collaboration
Chapter 1 Insight, inspiration and collaboration C. B. Jones, A. W. Roscoe Abstract Tony Hoare's many contributions to computing science are marked by insight that was grounded in practical programming. Many of his papers have had a profound impact on the evolution of our field; they have moreover provided a source of inspiration to several generations of researchers. We examine the development of his work through a review of the development of some of his most influential pieces of work such as Hoare logic, CSP and Unifying Theories. 1.1 Introduction To many who know Tony Hoare only through his publications, they must often look like polished gems that come from a mind that rarely makes false steps, nor even perhaps has to work at their creation. As so often, this impres- sion is a further compliment to someone who actually adds to very hard work and many discarded attempts the final polish that makes complex ideas rel- atively easy for the reader to comprehend. As indicated on page xi of [HJ89], his ideas typically go through many revisions. The two authors of the current paper each had the honour of Tony Hoare supervising their doctoral studies in Oxford. They know at first hand his kind and generous style and will count it as an achievement if this paper can convey something of the working style of someone big enough to eschew competition and point scoring. Indeed it will be apparent from the following sections how often, having started some new way of thinking or exciting ideas, he happily leaves their exploration and development to others. -
Pinnacles of Software Engineering 25 Years of Formal Methods
Pinnacles of Software Engineering1) 25 Years of Formal Methods Dines Bjørner Department of IT, Technical University of Denmark, Bldg. 344, DK-2800 Lyngby, Denmark. E–Mail: [email protected]; Web: http://www.it.dtu.dk/˜db March 17, 2000 1)This title is in contrast to [Zave and Jackson 1997a] Dines Bjørner, Pinnacles of Software Engineering: 25 Years of Formal Method i Abstract In this invited paper1) we review 25 years of propagating formal specification in software engineering. We will do so through outlining a paradigmatic approach to the practice of software engineering. For the sake of contrasting argument we shall claim that this approach stands in sharp contrast to classical engineering — and that there is little help to be obtained from classical engineering in securing the quality of the most important facets of software engineering! We shall be outlining a software engineering 2) practice in which formal techniques are applied in capturing the aplication domain void of any reference to requirements let alone software; and in then capturing requirements: Domain requirements (projected, instantiated, possibly extended and usually initialised from domain descriptions), interface requirements and machine requirements. The software engineering practice then goes on to design the software: First the architecture, then the program structure, etc. Throughout abstraction and modelling, hand-in-hand, are used in applicative (functional), imperative and process oriented descriptions, from loose specifications towards concrete, instantiated descriptions, using hierarchical as well as configurational modelling, denotational as well as computational modelling, and in structuring even small scale descriptions using appropriate modularisation concepts: Schemes, classes and objects. All the concepts spelled in this font are software engineering “program” description notions that have been honed over the years, starting in 1973 with VDM [Beki´c et al. -
Scientific Decisions Which Characterize
Scientific Decisions which Characterize VDM Cliff B. Jones Department of Computer Science Manchester University M13 9PL, UK [email protected] Dedicated to the memory of Heinz-Peter Chladek Abstract. The formal description and development method known as VDM has been used extensively, its specification language is now an ISO standard, and it has influenced other specification languages. The origins of VDM are normally placed in language description or semantics but it is probably best known in the wider arena of formal methods for (general) program specification and design. This paper sets out a personal view of some of the key technical decisions which characterize the Vienna Development Method. VDM is generally believed to stand for Vienna Development Method.The programming language description aspects of VDM were forged in the heat of a compiler development project in the IBM Laboratory in Vienna between 1973 and 1976; the technical decisions which characterize this work are outlined in Section 2. VDM is also a general formal method in that it can be applied to pro- grams or systems other than compilers; scientific decisions relating to this more general area are discussed in Section 3. Preceding these substantive sections, the scene is set in Section 1. Some conclusions are offered in Section 4. 1 Background It must be a relatively small proportion of scientific developments whose progress is defined by large discontinuities. In my opinion, progress in research on ‘formal methods’ has built steadily since the 1960s and the identification of new ideas has nearly always benefited from earlier work and has rarely forced a complete revolution in thinking. -
An Exegesis of Four Formal Descriptions of ALGOL 60
COMPUTING SCIENCE An Exegesis of Four Formal Descriptions of ALGOL 60 Cliff B. Jones, Troy K. Astarte TECHNICAL REPORT SERIES No. CS-TR-1498 September 2016 TECHNICAL REPORT SERIES No. CS-TR-1498 September, 2016 An Exegesis of Four Formal Descriptions of ALGOL 60 Cliff B. Jones, Troy K. Astarte Abstract The programming language ALGOL 60 has been used to illustrate several different styles of formal semantic description. This paper identifies the main challenges in providing a formal semantics for imperative programming languages and reviews the responses to these challenges in four relatively complete formal descriptions of ALGOL 60. The aim is to identify the key concepts rather than get bogged down in the minutiae of notational conventions adopted by their authors. As well as providing historical pointers and comparisons, the paper attempts to draw some general conclusions about semantic description styles. © 2015 Newcastle University. Printed and published by Newcastle University, Computing Science, Claremont Tower, Claremont Road, Newcastle upon Tyne, NE1 7RU, England. Bibliographical details An Exegesis of Four Formal Descriptions of ALGOL 60 Cliff B. Jones, Troy K. Astarte September 8, 2016 Abstract The programming language ALGOL 60 has been used to illustrate several different styles of formal semantic description. This paper identifies the main challenges in providing a formal semantics for imperative programming languages and reviews the responses to these challenges in four relatively complete formal descriptions of ALGOL 60. The aim is to identify the key concepts rather than get bogged down in the minutiae of notational conventions adopted by their authors. As well as providing historical pointers and comparisons, the paper attempts to draw some general conclusions about semantic description styles. -
FACS FACTS Newsletter
fas Issue 2006-2 FACS September 2006 A C T S The Newsletter of the Formal Aspects of Computing Science (FACS) Specialist Group ISSN 0950-1231 FACS FACTS Issue 2006-2 September 2006 About FACS FACTS FACS FACTS [ISSN: 0950-1231] is the newsletter of the BCS Specialist Group on Formal Aspects of Computing Science (FACS). FACS FACTS is distributed in electronic form to all FACS members. FACS FACTS is published up to four times a year: March, June, September and December. Submissions are always welcome. Please see the advert on page 12 for further details or visit the newsletter area of the FACS website [http://www.bcs-facs.org/newsletter]. Back issues of FACS FACTS are available to download from: http://www.bcs-facs.org/newsletter/facsfactsarchive.html The FACS FACTS Team Newsletter Editor Paul Boca [[email protected]] Editorial Team Jonathan Bowen, Judith Carlton, John Cooke, Kevin Lano Columnists Dines Bjørner (Train Domain) Contributors to this Issue Joan Atkinson, Paul Boca, Jonathan Bowen, Steve Dunne, John Fitzgerald, Cliff Jones, Ian Hayes, Tiziana Margaria, Ivana Mijajlovic, Faron Moller, Ken Pierce, John Tucker, F.X. Reid, Bernard Schätz, Marcel Verhoef, Phan Cong Vinh 2 FACS FACTS Issue 2006-2 September 2006 Contents Editorial 4 Report on UTP01 6 Report on BCTCS 2006 11 Perspectives on Formal Methods in the Last 25 Years 13 Report on the ForTia Industry Day at FM05 34 Model-Oriented Specifications 39 Understanding the differences between VDM and Z 56 Conference Announcements 79 PhD Abstracts 81 FACS Committee 84 The activities of FACS (i.e. sponsoring conferences and workshops, offering student bursaries and hosting evening seminars) is funded solely from membership subscriptions. -
School of Computing
SCHOOL OF COMPUTING Title: The history of programming language semantics: an overview Names: Troy K Astarte TECHNICAL REPORT SERIES No. CS-TR- 1533 June 2020 TECHNICAL REPORT SERIES No. CS-TR- 1533 Date: June 2020 Title: The history of programming language semantics: an overview Authors: Troy K. Astarte Abstract: In the 1960s, a full formal description was seen as a crucial and unavoidable part of creating a new programming language. A key part of that was a thorough and rigorous description of the semantics. However, in the decades since, the focus on providing this has somewhat diminished. Why was formal semantics once seen as so critical? Why did it not succeed in the ways hoped? These questions are explored by considering the history of model- based approaches to describing programming languages, with a particular focus on the IBM Laboratory Vienna under Heinz Zemanek, and the Programming Research Group at Oxford University under Christopher Strachey. It is shown that there were a variety of different approaches to the problem, stemming from the different backgrounds of the people and groups involved. The story of formal language description is in some ways also the story of early programming languages and the integration of mathematics into the emerging new field of computer science, resulting in the formation of theoretical computing in the European style. This paper is the first draft of one that will be submitted for publication in a Johns Hopkins University Press volume. The finished paper is likely to be significantly different to the one here. This note will be updated when bibliographic information is available for the published version.