Results 1  10
of
19
The origins of structural operational semantics
 Journal of Logic and Algebraic Programming
, 2004
"... We review the origins of structural operational semantics. The main publication ‘A Structural Approach to Operational Semantics, ’ also known as the ‘Aarhus Notes, ’ appeared in 1981 [G.D. Plotkin, A structural approach to operational semantics, DAIMI FN19, Computer Science Department, Aarhus Unive ..."
Abstract

Cited by 64 (0 self)
 Add to MetaCart
We review the origins of structural operational semantics. The main publication ‘A Structural Approach to Operational Semantics, ’ also known as the ‘Aarhus Notes, ’ appeared in 1981 [G.D. Plotkin, A structural approach to operational semantics, DAIMI FN19, Computer Science Department, Aarhus University, 1981]. The development of the ideas dates back to the early 1970s, involving many people and building on previous work on programming languages and logic. The former included abstract syntax, the SECD machine, and the abstract interpreting machines of the Vienna school; the latter included the λcalculus and formal systems. The initial development of structural operational semantics was for simple functional languages, more or less variations of the λcalculus; after that the ideas were gradually extended to include languages with parallel features, such as Milner’s CCS. This experience set the ground for a more systematic exposition, the subject of an invited course of lectures at Aarhus University; some of these appeared in print as the 1981 Notes. We discuss the content of these lectures and some related considerations such as ‘small state’ versus ‘grand state, ’ structural versus compositional semantics, the influence of the Scott–Strachey approach to denotational semantics, the treatment of recursion and jumps, and static semantics. We next discuss relations with other work and some immediate further development. We conclude with an account of an old, previously unpublished, idea: an alternative, perhaps more readable, graphical presentation of systems of rules for operational semantics.
Proving Concurrent Constraint Programs Correct
, 1994
"... We develop a compositional proofsystem for the partial correctness of concurrent constraint programs. Soundness and (relative) completeness of the system are proved with respect to a denotational semantics based on the notion of strongest postcondition. The strongest postcondition semantics provide ..."
Abstract

Cited by 59 (13 self)
 Add to MetaCart
We develop a compositional proofsystem for the partial correctness of concurrent constraint programs. Soundness and (relative) completeness of the system are proved with respect to a denotational semantics based on the notion of strongest postcondition. The strongest postcondition semantics provides a justification of the declarative nature of concurrent constraint programs, since it allows to view programs as theories in the specification logic. 1 Introduction Concurrent constraint programming ([24, 25, 26]) (ccp, for short) is a concurrent programming paradigm which derives from replacing the storeasvaluation conception of von Neumann computing by the storeas constraint model. Its computational model is based on a global store, represented by a constraint, which expresses some partial information on the values of the variables involved in the computation. The concurrent execution of different processes, which interact through the common store, refines the partial information of...
Mechanizing Programming Logics in Higher Order Logic
 in Current Trends in Hardware Verification and Automated Theorem Proving, ed. P.A. Subrahmanyam and Graham Birtwistle
, 1989
"... Formal reasoning about computer programs can be based directly on the semantics of the programming language, or done in a special purpose logic like Hoare logic. The advantage of the first approach is that it guarantees that the formal reasoning applies to the language being used (it is well known, ..."
Abstract

Cited by 58 (3 self)
 Add to MetaCart
Formal reasoning about computer programs can be based directly on the semantics of the programming language, or done in a special purpose logic like Hoare logic. The advantage of the first approach is that it guarantees that the formal reasoning applies to the language being used (it is well known, for example, that Hoare’s assignment axiom fails to hold for most programming languages). The advantage of the second approach is that the proofs can be more direct and natural. In this paper, an attempt to get the advantages of both approaches is described. The rules of Hoare logic are mechanically derived from the semantics of a simple imperative programming language (using the HOL system). These rules form the basis for a simple program verifier in which verification conditions are generated by LCFstyle tactics whose validations use the derived Hoare rules. Because Hoare logic is derived, rather than postulated, it is straightforward to mix semantic and axiomatic reasoning. It is also straightforward to combine the constructs of Hoare logic with other applicationspecific notations. This is briefly illustrated for various logical constructs, including termination statements, VDMstyle ‘relational’ correctness specifications, weakest precondition statements and dynamic logic formulae. The theory underlying the work presented here is well known. Our contribution is to propose a way of mechanizing this theory in a way that makes certain practical details work out smoothly.
Algebraic Approaches to Nondeterminism  an Overview
 ACM Computing Surveys
, 1997
"... this paper was published as Walicki, M.A. and Meldal, S., 1995, Nondeterministic Operators in Algebraic Frameworks, Tehnical Report No. CSLTR95664, Stanford University ..."
Abstract

Cited by 23 (3 self)
 Add to MetaCart
this paper was published as Walicki, M.A. and Meldal, S., 1995, Nondeterministic Operators in Algebraic Frameworks, Tehnical Report No. CSLTR95664, Stanford University
Soundness of Data Refinement for a Higher Order Imperative Language
, 1999
"... Using a settheoretic model of predicate transformers and ordered data types, we give a semantics for an Oberonlike higher order imperative language with record subtyping and proceduretype variables and parameters. Data refinement is shown to be sound for this language: It implies algorithmic refi ..."
Abstract

Cited by 9 (4 self)
 Add to MetaCart
Using a settheoretic model of predicate transformers and ordered data types, we give a semantics for an Oberonlike higher order imperative language with record subtyping and proceduretype variables and parameters. Data refinement is shown to be sound for this language: It implies algorithmic refinement when suitably localized. And all constructs are shown to preserve simulation, so data refinement can be carried out piecewise.
Isomorphisms between Predicate and State Transformers
 In Proc., MFCS '93, Springer LNCS 711
, 1993
"... We study the relation between state transformers based on directed complete partial orders and predicate transformers. Concepts like `predicate', `liveness', `safety' and `predicate transformers' are formulated in a topological setting. We treat state transformers based on the Ho ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
We study the relation between state transformers based on directed complete partial orders and predicate transformers. Concepts like `predicate', `liveness', `safety' and `predicate transformers' are formulated in a topological setting. We treat state transformers based on the Hoare, Smyth and Plotkin powerdomains and consider continuous, monotonic and unrestricted functions. We relate the transformers by isomorphisms thereby extending and completing earlier results and giving a complete picture of all the relationships.
Relating Multifunctions and Predicate Transformers through Closure Operators
 of Lecture Notes in Computer Science
, 1994
"... . We study relations between predicate transformers and multifunctions in a topological setting based on closure operators. We give topological definitions of safety and liveness predicates and using these predicates we define predicate transformers. State transformers are multifunctions with values ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
. We study relations between predicate transformers and multifunctions in a topological setting based on closure operators. We give topological definitions of safety and liveness predicates and using these predicates we define predicate transformers. State transformers are multifunctions with values in the collection of fixed points of a closure operator. We derive several isomorphisms between predicate transformers and multifunctions. By choosing different closure operators we obtain multifunctions based on the usual power set construction, on the Hoare, Smyth and Plotkin power domains, and based on the compact and closed metric power constructions. Moreover, they are all related by isomorphisms to the predicate transformers. 1 Introduction There are (at least) two different ways of assigning a denotational semantics to a programming language: forward or backward. A typical forward semantics is a semantics that models a program as a function from initial states to final states. In th...
Relating State Transformation Semantics and Predicate Transformer Semantics for Parallel Programs
, 1993
"... A state transformation semantics and a predicate transformer semantics for programs built from atomic actions, sequential composition, nondeterministic choice, parallel composition, atomisation, and recursion are presented. Both semantic models are derived from some SOSstyle labelled transition sys ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
A state transformation semantics and a predicate transformer semantics for programs built from atomic actions, sequential composition, nondeterministic choice, parallel composition, atomisation, and recursion are presented. Both semantic models are derived from some SOSstyle labelled transition system. The state transformation semantics and the predicate transformer semantics are shown to be isomorphic extending results of Plotkin and Best. AMS Subject Classification (1991): 68Q55 CR Subject Classification (1991): D.3.1, F.3.2 Keywords & Phrases: state transformation, predicate transformer, isomorphism, labelled transition system, parallelism Note: This work was partially supported by the Netherlands Nationale Faciliteit Informatica programme, project Research and Education in Concurrent Systems (REX).
Specification and Verification I
"... These lecture notes are for the course entitled Specification and Verification I. Some of the material is derived from previously published sources. 1 Chapters 1–4 introduce classical ideas of specification and proof of programs due to Floyd and Hoare. Chapter 5 is an introduction to program refinem ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
These lecture notes are for the course entitled Specification and Verification I. Some of the material is derived from previously published sources. 1 Chapters 1–4 introduce classical ideas of specification and proof of programs due to Floyd and Hoare. Chapter 5 is an introduction to program refinement using an approach due to Paul Curzon. Chapter 6 presents higher order logic and Chapter 7 explains how FloydHoare logic can be embedded in higher order logic. The course presents classical ideas on the specification and verification of software. Although much of the material is old – see the dates on some of the cited references – it is still a key foundation for current research. 2 This course is a prerequisite for the Part II course entitled Specification and Verification II, which makes extensive use of higher order logic (see Chapter 6) for specifying and verifying hardware. Learning Guide These notes contain all the material that will be covered in the course. It should thus not be necessary to consult any textbooks etc. The copies of transparencies give the contents of the lectures. However note that I sometimes end up going faster or slower than expected so, for example, material shown in Lecture n might actually get covered in Lecture n+1 or Lecture n−1. The examination questions will be based on material in the lectures. Thus if I end up not covering some topic in the lectures, then I would not expect to set an examination question on it. This course has been fairly stable for several years, so past exam questions are a reasonable guide to the sort of thing I will set this year.