scispace - formally typeset
Search or ask a question

Showing papers on "Operational semantics published in 1980"


Journal ArticleDOI
TL;DR: In this setting, the two main theorems of semantics of semantics are proved: equivalence between operational and denotational semantics and the one-many function computed by a program is the image of the set of trees computed by the program.

95 citations


Journal ArticleDOI
TL;DR: It is shown that two widely different notions of program equivalence coincide for the language of recurslve definitions with simplification rules.
Abstract: In this paper, we show that two widely different notions of program equivalence coincide for the language of recursive definitions with simplification rules. The first one is the now classical equivalence for fixed-point semantics. The other one is purely operational in nature and is much closer to a programmer's intuition of program equivalence.

60 citations



Book
01 Jan 1980
TL;DR: The intention is not to develop a theory of programs, concerned with the analysis of existing programs, but instead to developA theory of programming, dealing with the process of constructing new programs, which would have practical benefits both for programming methodology and for automatic synthesis.
Abstract: We explore techniques for systematically deriving programs from specifications. The goal of this exploration is a better understanding of the development of algorithms. Thus, the intention is not to develop a theory of programs, concerned with the analysis of existing programs, but instead to develop a theory of programming, dealing with the process of constructing new programs. Such a theory would have practical benefits both for programming methodology and for automatic synthesis. We investigate the derivation of programs by program transformation techniques. By expanding an ordinary language of recursion equations to include a generalized procedure construct (the expression procedure), our ability to manipulate programs in that language is greatly facilitated. The expression procedure provides a means of expressing information not just about the properties of individual program elements, but also about the way they relate to each other. A set of three operations--abstraction, application, and composition--for transforming programs in this extended language is presented. We prove using operational semantics that these operations preserve the strong equivalence of programs. The well-known systems of Burstall and Darlington and of Manna and Waldinger are both based on an underlying rule system that does not have this property. Our transformation system is illustrated with several small examples, which are examined in detail to give insight to the heuristic problems of program development. A tactic of program specialization is shown to underlie many of these derivations. While we present no implemented system, some consideration is given to issues related to the development of programming tools. The practical value of our approach is demonstrated in the systematic development of a partial family tree of parsing algorithms, similar in spirit to the treatment of sorting by Darlington and by Green and Barstow. Several intricate parsing algorithms (Earley's, Cocke-Younger-Kasami, and Top-Down) are derived in detail.

41 citations


Book ChapterDOI
14 Jan 1980
TL;DR: A methodology is described for generating provably correct compilers from denotational definitions of programming languages using lambda calculus dialects to produce compilers into STM code.
Abstract: A methodology is described for generating provably correct compilers from denotational definitions of programming languages. An application is given to produce compilers into STM code (an STM or state transition machine is a flow-chart-like program, low-level enough to be translated into efficient code on conventional computers). First, a compiler ϕ: LAMC → STM from a lambda calculus dialect is defined. Any denotational definition Δ of language L defines a map \(\bar \Delta\): L → LAMC, so \(\bar \Delta ^ \circ \varphi\) compiles L into STM code. Correctness follows from the correctness of ϕ.

40 citations


Journal ArticleDOI
TL;DR: A nondeterministic control structure is added to a typed λ-calculus and the usual operational semantics for the deterministic language is generalized to take into account the more complex behaviour of nondetergetic algorithms.

39 citations


Journal ArticleDOI
TL;DR: A denotational semantics using so-called nondeterministic domains, which are function spaces endowed with two partial orders is defined, and an operational characterization of equality of procedures under this denotATIONAL semantics is given.
Abstract: Nondeterministic recursive procedures are considered in which parameters may be passed by use of call-by-value or one of two different formulations of call-by-name. These procedures are given an operational semantics via an evaluation mechanism. We define a denotational semantics using so-called nondeterministic domains, which are function spaces endowed with two partial orders. An operational characterization of equality of procedures under this denotational semantics is then given.

38 citations


Book
01 Jan 1980
TL;DR: Buku ini merupakan sebuah kajian yang ilustratif tentang teori semantik, pengertian paradigmatik ying tidak berkontradiksi dengan sintagmatik.
Abstract: Buku ini merupakan sebuah kajian yang ilustratif tentang teori semantik. Pada teks ini semantik dipandang sebagai kajian yang paradigmatik dalam pengertian paradigmatik yang tidak berkontradiksi dengan sintagmatik. Namun demikian, penulis menekankan pembahasan pada perbedaan antara sinkronis dan diakronis, bahasa dan ujaran atau sistem, norma, dan ujaran, perbedaan antara fonetik dan fonologi, dan juga perbedaan antara bentuk dan substansi.

33 citations


Journal ArticleDOI

28 citations



Book ChapterDOI
14 Jul 1980
TL;DR: It is shown that the simple approach of taking the powerdomain of the flat cpo does not produce a correct semantics for programs in which nondeterminism is unbounded, and the power domain approach is extended to computation paths.
Abstract: A program construct is proposed, for which the assumption of bounded nondeterminism is not natural. It is shown that the simple approach of taking the powerdomain of the flat cpo does not produce a correct semantics for programs in which nondeterminism is unbounded. The powerdomain approach is then extended to computation paths, resulting is an essentially operational semantics for programs of unbounded nondeterminism.

Journal ArticleDOI
TL;DR: This paper defines transformations and shows that the transformations preserve the predicates used to construct continuation semantics, starting from a direct semantics of a language with procedures called by value.
Abstract: The primary motivation behind this paper is an interest in transforming one semantic description for a language into another related description of the same language. Since direct and continuation semantics have been studied in some detail, they are obvious test-beds for suggesting the problems that might be encountered in the process. One of the problems is that the semantic objects in two descriptions of a language may be quite dissimilar. For example, function values of procedures in direct semantics are quite different from function values in continuation semantics. Milne and Reynolds have defined predicates which can be used to relate the two kinds of function values. Starting with such predicates we define transformations and then show that the transformations preserve the predicates. The transformations are used to construct continuation semantics, starting from a direct semantics of a language with procedures called by value.

Book ChapterDOI
14 Jan 1980
TL;DR: This work mainly deals with the code generation parts of a compiler compiler, which takes as input the formal definition of a programming language in Denotational Semantics and produces as output a fairly efficient compiler.
Abstract: We are developing a compiler compiler. It takes as input the formal definition of a programming language in Denotational Semantics and produces as output a fairly efficient compiler written in a systems programming language which in turn will produce code for a real machine. This work mainly deals with the code generation parts.



Book ChapterDOI
22 Apr 1980
TL;DR: The study of relations between nondeterministic programs allows to compare different concepts of nondeterminism and help to get a better understanding of both programming languages and the programming activity.
Abstract: Equivalence relations between programs are strongly connected to the formal definition of the semantics of programming languages. In addition they provide a basis for the formal justification of the development of programs by transformations. Besides equivalences there are various other relations on programs and computational structures, which help to get a better understanding of both programming languages and the programming activity. In particular, the study of relations between nondeterministic programs allows to compare different concepts of nondeterminism.

Journal ArticleDOI
TL;DR: It is argued that recording the entire history of a computation in a single set of variables can actually complicate a correctness proof and should be avoided if possible and a modification of Clint's axiom system and a strategy for constructing proofs that eliminates the need for history variables in verifying simple coroutines are proposed.
Abstract: We examine the question of whether history variables are necessary in formal proofs of correctness for coroutines. History variables are special variables, which are added to a program to facilitate its proof by recording the sequence of states reached by the program during a computation; after the proof has been completed the history variables may be deleted. The use of such variables in correctness proofs was first suggested by Clint [CL73] in a paper entitled "Program Proving: Coroutines;" subsequently, history variables have been used by Owicki [OW76a] and Howard [HO75] in verifying concurrent programs and by Apt [APT77] in verifying sequential programs. We argue that recording the entire history of a computation in a single set of variables can actually complicate a correctness proof and should be avoided if possible. We propose a modification of Clint's axiom system and a strategy for constructing proofs that eliminates the need for history variables in verifying simple coroutines. Examples (including Clint's program "Histo") are given to illustrate this technique of verifying coroutines, and our axiom system is shown to be sound and relatively complete with respect to an operational semantics for coroutines. Finally, we discuss extensions of the coroutine concept for which history variables do appear to be needed; we also discuss the question of whether such variables are necessary in verifying concurrent programs.

Book ChapterDOI
23 Aug 1980

Journal ArticleDOI
TL;DR: A completion theorem for ordered magmas (i.e. ordered algebras with monotone operations) in a general form is given in ageneral form, and the possible embeddings of an ordered magma into a complete ordered magMA are studied.
Abstract: We give a completion theorem for ordered magmas (i.e. ordered algebras with monotone operations) in a general form. Particular instances of this theorem are already known, and new results follow. The semantics of programming languages is the motivation of such investigations. Key wordscomplete partial orders, semantics of programming languages. Introduction. When defining recursive functions by systems of equations (Kleene [5]), one introduces an order relation which means that a partial result approximates another one. This partial order is complete(i.e. every ascending chain admits a least upper bound), thus allowing a minimal solution to be defined for the system. This matter has been rebuilt by Scott, and many authors after him, within the framework of complete lattices ; that last theory has been developed for its own sake by several authors , among which Birkhoff [1]. Frequently, the lattice structure does not seem necessary and creates instead additional troubles (Plotkin [9], Milner [8] for instance). The notion of complete partial order is good enough, and fits better to the most common instances. This algebraic framework is suitable for studying program schemes([2], [3]). We then need distinguish between thebase functionsand theprogram-defined functions, with the help of base functions and various control structures (recursive call, iteration, etc...). Thus, our domains will beordered magmas, i.e. partial orders equipped with monotoneoperators (no information is lost during a computation). And we shall be concerned with completeness (the operators being supposedcontinuous). More precisely, we shall study the possible embeddings of an ordered magma into a complete ordered magma. Some of the ascending chains may keep their l.u.b., or may be added a new one ; this gives different completions, each characterized by a universal property. We shall thus define the Γ-completionas the completion which preserves the l.u.b. which already exist in a set Γ of subsetes of the magma. From this general theorem is defived the “ideal completion” of [9], [1], [2], [4], the “chain-completion” of [8], and the existence of factor objects in the category of ordered magmas. The above mentionned authors woule use neither operators not magmas, but only partial orders (except [4]). But eht “chain-completion” in the category of partial orders need not be a complete ordered magma (cf. Corollary 2). Definitions and the main theorem.Let F be a set of operators with arity. An FmagmaM is a domain DM together with a functionfM : DM → DM for eachf ∈ F with arity k. The homomorphisms of F-magmas, or F-morphisms , shall be compatible with the operators : φ M → M′ is a F-morphism when φ(fM(a1, ... , ak)) = fM′(φ(a1), ... , φ(ak)) for all f ∈ F with arityk, and alla1, ... , ak ∈ DM . In this paper, we shall only consider o deredmagmas (therefore “magma” will mean “ordered magma”), with a partial order denoted by ≤M , a least element ΩM (associated with the symbol Ω of arity 0 whichi is always supposed to be an element of F), and monotone operators fM . An F-morphism between ordered magmas must be monotone. 2 Completions of ordered magmas Finally, if M is a magma, asub-F-magmaN of M is a F-magma such that D N ⊆ DM , and that the inclusion i : n → M is a (monotone) F-morphism. It is full whend ≤M d′ impliesd ≤N d′ for everyd, d′ ∈ DN. Let Γ denote a set of non-empty subsets of D M . The F-magma M is said to be Γ-completewhen — every A∈ Γ admits a l.u.b. in DM , denoted by sup A or ∨ x∈A x ; — fm(A1, ... , Ak) = {f (a1, ... , ak); a1 ∈ A1, ... ak ∈ Ak} ∈ Γ and supfM(A1, ... , Ak) = fM(sup A1, ... , sup Ak) for all f with arity k and all A1, ... , Ak ∈ Γ. A monotone functionφ : Mk → N where M isΓ-complete and N is an arbitrary magma is Γ-continuousif for all A1, ... , Ak ∈ Γ, φ(A1, ... , Ak) admits a l.u.b. in N and sup N φ(A1, ... , Ak) = φ(sup M A1, ... , sup M Ak). With each F-magma M is naturally associated Ξ(M) = the set of non-empty subsets of D M , Φ(M) = the set of non-empty finite subsets of D M , ∆(M) = the set of non-empty directed subsets of D M (A ∈ ∆(M) ⇐⇒ ∀d, d′ ∈ A, ∃d′′ ∈ A d ≤ d′′ andd′ ≤ d′′, ∆α(M) = the set of non-empty directed subsets of cardinality at most α, Λ(M) = the set of non-empty directed subsets of D M which admit a l.u.b. in DM , Θα(M) = the set of monotone morphisms of an ordinal α into M (theα-chains), etc. Hence−Λ ⊆ ∆ ⊆ Ξ. Thus, a partial order is a complete lattice (cf. Birkhoff [1]) if and only if it is Ξ-complete, a join-semi-lattice if and only if it is Φ-complete, a lattice if and only if it is Φ′-complete with Φ′(M) = {{d′ ∈ DM ; d′ ≤ d1 & ... & d′ ≤ dk}; k ∈ N, d1, ... , dk ∈ DM}. A F-magma ispre-completeif and only if it is Λ-complete. Notice that this condition only affects the fm′s. If F only contains symbols of arity 0, then every F-magma is precomplete (cf. corollaries 1 and 2, and theorem 3). To each of these families Γ is attached a category the objects of which are the Γ-complete F-magmas, and the arrows of which are the monotone F-morphisms f : M → N that send a subset A ∈ Γ(M) on a subset f (A) in Γ(N) and furthermore such that f (sup A) = supf (A) : theΓ-continuous morphisms . These restrictions can be automatically satisfied by the monotone morphisms for some families, but it is not always the case, as noticed for Λ. In the sequel, we shall restrict ourselves to those “functorial” families and related morphisms. The main theorem of this paper reads as follows. THÉORÈME 1. — LetΓ ⊆ Γ′ two families of subsets, and M a Γ-completeF-magma. There exists a Γ′-complete F-magmaMΓ′ Γ and aΓ-continuous injectiveF-morphism i: M → MΓ′ γ such that for allΓ-continuous morphisms j : M → N where n isΓ′-complete, there exists a unique Γ′-continuous morphism h : MΓ′ Γ → N such that j= hi. M i → MΓ′ Γ j ↘ ↓ h N Proof : The construction of MΓ′ Γ will be carried out in the particular case when Γ′ = Ξ. A non-empty subset A of D is Γ-closedwhen (1) d ≤ d′ andd′ ∈ A ⇒ d ∈ A (henceΩM ∈ A), (2) B ⊆ A and B∈ Γ ⇒ sup B∈ A. The intersection of a family of closed subsets is closed ; therefore — for all non-empty subset A of D, there exists a smallest closed subset containing A, its closure,denoted by CΓ(A) or C(A) whenΓ is clear from the context ; — the setD̂ of non-empty sebsets of D ordered by set inclusion is a complete lattice : for all family (A i)i∈I (which containsΩD) ∧


Proceedings ArticleDOI
13 Oct 1980
TL;DR: A denotational semantics is given for a distributed language based on communication (CSP) that uses linear sequences of communications to record computations and is distinguished by relatively simple semantic domains and ordering.
Abstract: A denotational semantics is given for a distributed language based on communication (CSP). The semantics uses linear sequences of communications to record computations; for any well formed program segment the semantics is a relation between attainable states and the communication sequences needed to attain these states. In binding two or more processes we match and merge the communication sequences assumed by each process to obtain a sequence and State of the combined process. The approach taken here is distinguished by relatively simple semantic domains and ordering.

Proceedings Article
01 Jan 1980



01 May 1980
TL;DR: This report addresses fundamental issues of semantics for computational systems by proposing that the notion of truth-conditions can be explicated and made precise by identifying them with a particular kind of abstract procedure and that such procedures can serve as the meaning bearing elements of a theory of semantics suitable for computer implementation.
Abstract: : Central to being able to construct powerfully intelligent knowledge-based systems is the development of a representational system that is able to handle open-ended domains of knowledge. Critical to this effort is an understanding of the semantics of such notations, and more generally an understanding of the fundamental notions of 'semantics' and 'meaning'. This report addresses fundamental issues of semantics for computational systems. The question at issue is 'What is it that machines can have that would correspond to the knowledge of meanings that people have and that seem to refer to by the ordinary language term 'meaning'?' The proposed answer is that the notion of truth-conditions can be explicated and made precise by identifying them with a particular kind of abstract procedure and that such procedures can serve as the meaning bearing elements of a theory of semantics suitable for computer implementation. This theory, referred to as 'procedural semantics,' has been the basis of several successful computerized systems and is acquiring increasing interest among philosophers of language. (Author)

Journal ArticleDOI
TL;DR: A language that includes computed gotos and parameterized procedures is defined and its semantics are given axiomatically and a number of program transformations are described and proved correct.
Abstract: A language that includes computed gotos and parameterized procedures is defined and its semantics are given axiomatically. A number of program transformations are described and proved correct. Taken collectively and applied repeatedly these transformations compile the full language into a low level subset.

ReportDOI
01 Sep 1980
TL;DR: The notion of acceptance semantics is introduced and it is in terms of this that the authors give meaning to programs constructed in this framework.
Abstract: A formal system is described within which we may represent the communication and concurrency features found in systems of interacting computer agents. This formal system may be used both as a model in which to represent the behaviour of existing systems of computing agents or as a language in which to program desired systems. The notion of acceptance semantics is introduced and it is in terms of this that we give meaning to programs constructed in our framework.


Book ChapterDOI
01 Jan 1980
TL;DR: This paper gives a formal denotational dynamic semantics definition of the sequential parts of Ada that describes the ‘meaning’ of (abstract) Ada constructs by state-to-state transformations on an abstract machine.
Abstract: This paper gives a formal denotational dynamic semantics definition of the sequential parts of Ada. It describes the ‘meaning’ of (abstract) Ada constructs by state-to-state transformations on an abstract machine.

Book ChapterDOI
23 Aug 1980
TL;DR: The notion of one-level prefixing is first introduced by means of the example of Simula 67 and the semantics of a programming language with prefixing at many levels is discussed and analyzed.
Abstract: A generalization of Simula's prefixing of classes is presented. The notion of one-level prefixing is first introduced by means of the example of Simula 67; the semantics of a programming language with prefixing at many levels is then discussed and analyzed.