Search engine for discovering works of Art, research articles, and books related to Art and Culture
ShareThis
Javascript must be enabled to continue!

The Formal Semantics of Programming Languages

View through CrossRef
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.
The MIT Press
Title: The Formal Semantics of Programming Languages
Description:
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.

Related Results

Safe-by-default Concurrency for Modern Programming Languages
Safe-by-default Concurrency for Modern Programming Languages
Modern “safe” programming languages follow a design principle that we call safety by default and performance by choice . By default,...
Programming Language as Eligible One: Legal Aspects
Programming Language as Eligible One: Legal Aspects
The article examines the situation with the introduction of programming languages as an eligible element and the possibilities of recognizing programming languages as acceptable an...
ON FORMAL AND COGNITIVE SEMANTICS FOR SEMANTIC COMPUTING
ON FORMAL AND COGNITIVE SEMANTICS FOR SEMANTIC COMPUTING
Semantics is the meaning of symbols, notations, concepts, functions, and behaviors, as well as their relations that can be deduced onto a set of predefined entities and/or known co...
Kra-Dai Languages
Kra-Dai Languages
Kra-Dai (also called Tai-Kadai and Kam-Tai) is a family of approximately 100 languages spoken in Southeast Asia, extending from the island of Hainan, China, in the east to the Indi...
Programming model abstractions for optimizing I/O intensive applications
Programming model abstractions for optimizing I/O intensive applications
This thesis contributes from the perspective of task-based programming models to the efforts of optimizing I/O intensive applications. Throughout this thesis, we propose programmin...
Concurrent Constraint Programming
Concurrent Constraint Programming
Concurrent Constraint Programming introduces a new and rich class of programming languages based on the notion of computing with partial information, or constraints, that synthesiz...
Cidade educativa e movimentos culturais: um ensaio da educação não formal no ensino superior (p.221-239)
Cidade educativa e movimentos culturais: um ensaio da educação não formal no ensino superior (p.221-239)
Este artigo tem como propósito apontar maneiras de pensar e praticar a educação não formal em um curso de graduação em Pedagogia e colaborar para a formação do futuro profissional ...
Measure semantics and qualitative semantics for epistemic modals
Measure semantics and qualitative semantics for epistemic modals
In this paper, we explore semantics for comparative epistemic modals that avoid the entailment problems shown by Yalcin (2006, 2009, 2010) to result from Kratzer’s (1991) semantics...

Back to Top