The Formal Semantics of Programming Languages

The Formal Semantics of Programming Languages

Author: Glynn Winskel

Publisher: MIT Press

Published: 1993-02-05

Total Pages: 388

ISBN-13: 9780262731034

DOWNLOAD EBOOK

The Formal Semantics of Programming Languages provides the basic mathematical techniques necessary for those who are beginning a study of the semantics and logics of programming languages. These techniques will allow students to invent, formalize, and justify rules with which to reason about a variety of programming languages. Although the treatment is elementary, several of the topics covered are drawn from recent research, including the vital area of concurency. The book contains many exercises ranging from simple to miniprojects.Starting with basic set theory, structural operational semantics is introduced as a way to define the meaning of programming languages along with associated proof techniques. Denotational and axiomatic semantics are illustrated on a simple language of while-programs, and fall proofs are given of the equivalence of the operational and denotational semantics and soundness and relative completeness of the axiomatic semantics. A proof of Godel's incompleteness theorem, which emphasizes the impossibility of achieving a fully complete axiomatic semantics, is included. It is supported by an appendix providing an introduction to the theory of computability based on while-programs. Following a presentation of domain theory, the semantics and methods of proof for several functional languages are treated. The simplest language is that of recursion equations with both call-by-value and call-by-name evaluation. This work is extended to lan guages with higher and recursive types, including a treatment of the eager and lazy lambda-calculi. Throughout, the relationship between denotational and operational semantics is stressed, and the proofs of the correspondence between the operation and denotational semantics are provided. The treatment of recursive types - one of the more advanced parts of the book - relies on the use of information systems to represent domains. The book concludes with a chapter on parallel programming languages, accompanied by a discussion of methods for specifying and verifying nondeterministic and parallel programs.


Concrete Semantics

Concrete Semantics

Author: Tobias Nipkow

Publisher: Springer

Published: 2014-12-03

Total Pages: 304

ISBN-13: 3319105426

DOWNLOAD EBOOK

Part I of this book is a practical introduction to working with the Isabelle proof assistant. It teaches you how to write functional programs and inductive definitions and how to prove properties about them in Isabelle’s structured proof language. Part II is an introduction to the semantics of imperative languages with an emphasis on applications like compilers and program analysers. The distinguishing feature is that all the mathematics has been formalised in Isabelle and much of it is executable. Part I focusses on the details of proofs in Isabelle; Part II can be read even without familiarity with Isabelle’s proof language, all proofs are described in detail but informally. The book teaches the reader the art of precise logical reasoning and the practical use of a proof assistant as a surgical tool for formal proofs about computer science artefacts. In this sense it represents a formal approach to computer science, not just semantics. The Isabelle formalisation, including the proofs and accompanying slides, are freely available online, and the book is suitable for graduate students, advanced undergraduate students, and researchers in theoretical computer science and logic.


Certified Programming with Dependent Types

Certified Programming with Dependent Types

Author: Adam Chlipala

Publisher: MIT Press

Published: 2013-12-06

Total Pages: 437

ISBN-13: 0262317885

DOWNLOAD EBOOK

A handbook to the Coq software for writing and checking mathematical proofs, with a practical engineering focus. The technology of mechanized program verification can play a supporting role in many kinds of research projects in computer science, and related tools for formal proof-checking are seeing increasing adoption in mathematics and engineering. This book provides an introduction to the Coq software for writing and checking mathematical proofs. It takes a practical engineering focus throughout, emphasizing techniques that will help users to build, understand, and maintain large Coq developments and minimize the cost of code change over time. Two topics, rarely discussed elsewhere, are covered in detail: effective dependently typed programming (making productive use of a feature at the heart of the Coq system) and construction of domain-specific proof tactics. Almost every subject covered is also relevant to interactive computer theorem proving in general, not just program verification, demonstrated through examples of verified programs applied in many different sorts of formalizations. The book develops a unique automated proof style and applies it throughout; even experienced Coq users may benefit from reading about basic Coq concepts from this novel perspective. The book also offers a library of tactics, or programs that find proofs, designed for use with examples in the book. Readers will acquire the necessary skills to reimplement these tactics in other settings by the end of the book. All of the code appearing in the book is freely available online.


Syntactic Structures

Syntactic Structures

Author: Noam Chomsky

Publisher: Walter de Gruyter GmbH & Co KG

Published: 2020-05-18

Total Pages: 120

ISBN-13: 3112316002

DOWNLOAD EBOOK

No detailed description available for "Syntactic Structures".


Semantics of Programming Languages

Semantics of Programming Languages

Author: Carl A. Gunter

Publisher: MIT Press

Published: 1992

Total Pages: 450

ISBN-13: 9780262570954

DOWNLOAD EBOOK

Semantics of Programming Languages exposes the basic motivations and philosophy underlying the applications of semantic techniques in computer science. It introduces the mathematical theory of programming languages with an emphasis on higher-order functions and type systems. Designed as a text for upper-level and graduate-level students, the mathematically sophisticated approach will also prove useful to professionals who want an easily referenced description of fundamental results and calculi. Basic connections between computational behavior, denotational semantics, and the equational logic of functional programs are thoroughly and rigorously developed. Topics covered include models of types, operational semantics, category theory, domain theory, fixed point (denotational). semantics, full abstraction and other semantic correspondence criteria, types and evaluation, type checking and inference, parametric polymorphism, and subtyping. All topics are treated clearly and in depth, with complete proofs for the major results and numerous exercises.


Algol-like Languages

Algol-like Languages

Author: Peter O'Hearn

Publisher: Springer Science & Business Media

Published: 2013-03-14

Total Pages: 345

ISBN-13: 147573851X

DOWNLOAD EBOOK

To construct a compiler for a modern higher-level programming languagel one needs to structure the translation to a machine-like intermediate language in a way that reflects the semantics of the language. little is said about such struc turing in compiler texts that are intended to cover a wide variety of program ming languages. More is said in the Iiterature on semantics-directed compiler construction [1] but here too the viewpoint is very general (though limited to 1 languages with a finite number of syntactic types). On the other handl there is a considerable body of work using the continuation-passing transformation to structure compilers for the specific case of call-by-value languages such as SCHEME and ML [21 3]. ln this paperl we will describe a method of structuring the translation of ALGOL-like languages that is based on the functor-category semantics devel oped by Reynolds [4] and Oles [51 6]. An alternative approach using category theory to structure compilers is the early work of F. L. Morris [7]1 which anticipates our treatment of boolean expressionsl but does not deal with procedures. 2 Types and Syntax An ALGOL-like language is a typed lambda calculus with an unusual repertoire of primitive types. Throughout most of this paper we assume that the primi tive types are comm(and) int(eger)exp(ression) int(eger)acc(eptor) int(eger)var(iable) I and that the set 8 of types is the least set containing these primitive types and closed under the binary operation -.


Mathematical Foundations of Advanced Informatics

Mathematical Foundations of Advanced Informatics

Author: Bernhard Steffen

Publisher: Springer

Published: 2018-03-20

Total Pages: 249

ISBN-13: 3319683977

DOWNLOAD EBOOK

The books in this trilogy capture the foundational core of advanced informatics. The authors make the foundations accessible, enabling students to become effective problem solvers. This first volume establishes the inductive approach as a fundamental principle for system and domain analysis. After a brief introduction to the elementary mathematical structures, such as sets, propositional logic, relations, and functions, the authors focus on the separation between syntax (representation) and semantics (meaning), and on the advantages of the consistent and persistent use of inductive definitions. They identify compositionality as a feature that not only acts as a foundation for algebraic proofs but also as a key for more general scalability of modeling and analysis. A core principle throughout is invariance, which the authors consider a key for the mastery of change, whether in the form of extensions, transformations, or abstractions. This textbook is suitable for undergraduate and graduate courses in computer science and for self-study. Most chapters contain exercises and the content has been class-tested over many years in various universities.


The Implications of Induction

The Implications of Induction

Author: L. Jonathan Cohen

Publisher: Routledge

Published: 2019-10-30

Total Pages: 261

ISBN-13: 1000735001

DOWNLOAD EBOOK

Originally published in 1973. This book presents a valid mode of reasoning that is different to mathematical probability. This inductive logic is investigated in terms of scientific investigation. The author presents his criteria of adequacy for analysing inductive support for hypotheses and discusses each of these criteria in depth. The chapters cover philosophical problems and paradoxes about experimental support, probability and justifiability, ending with a system of logical syntax of induction. Each section begins with a summary of its contents and there is a glossary of technical terms to aid the reader.