Open Access
Programming Language Semantics.
David A. Schmidt
- 01 Jan 2014
27
TL;DR: In this paper, the semantics of a programming language is formalized using a formal semantics definition, and the semantics definition can be used as input to a compiler front-end generating tool, such as YACC.
read more
Abstract: A programming language possesses syntax and semantics. Syntax refers to the spelling of the language’s programs, and semantics refers to the meanings of the programs. A language’s syntax is formalized by a grammar or syntax chart; such formalizations are found in the back of language manuals. A language’s semantics should be formalized, too, and this is the topic of this chapter. Before we begin, we might ask, “What do we gain by formalizing the semantics of a programming language?” Consider the related question, “What was gained when language syntax was formalized with BNF?” • A language’s syntax definition standardizes the official syntax. This is crucial to users, who require a guide to writing syntactically correct programs, and to implementors, who must write a correct parser for the language’s compiler. • The syntax definition permits a formal analysis of its properties, such as whether the definition is LL(k), LR(k), or ambiguous. • The syntax definition can be used as input to a compiler front-end generating tool, such as YACC; it becomes, in effect, the implementation. We derive similar benefits from a formal semantics definition: • The semantics definition standardizes the official semanticsof the language. This is crucial to users, who require a guide to understanding the programs that they write, and to implementors, who must write a correct code generator for the language’s compiler. • The semantics definition permits a formal analysis of its properties, such as whether the definition is strongly typed, block structured, uses single-threaded data structures, is parallelizable, etc. • The semantics definition can be used as input to a compiler back-end generating tool [26, 31]; it becomes, in effect, the implementation. Programming-language syntax was studied intensively in the 1960’s and 1970’s, and programming language semantics is undergoing similar intensive study. Unlike the acceptance of BNF as the standard for syntax definition, it is unlikely that a single definition method will take hold for semantics—semantics is harder to formalize than syntax, and it has a wider variety of applications. Semantics-definition methods fall roughly into three groups:
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
The Logic Programming Paradigm
Krzysztof R. Apt,Victor W. Marek,Mirek Truszczynski,David S. Warren +3 more
- 01 Jan 1999
TL;DR: The assertion language used in the framework has been designed with the aim of being useful in all the contexts mentioned above, and depart from previous proposals in allowing more general properties to be expressed.
On formal and cognitive semantics for semantic computing
TL;DR: A set of novel formal semantics, such as deductive semantics, concept-algebra-based semantics, and visual semantics, is introduced that forms a theoretical and cognitive foundation for semantic computing.
68
Horn Logic Denotations and Their Applications
Gopal Gupta
- 01 Jan 1999
TL;DR: This paper proposes to use Horn Logic (and eventually Constraint Logic) instead of the λ-calculus to express denotational semantics, which leads to many practical applications, most notably to automatic program verification and automatic generation of compilers from semantics specifications.
46
Eff directly in OCaml
Oleg Kiselyov,KC Sivaramakrishnan +1 more
- 31 Dec 2018
TL;DR: The language Eff as mentioned in this paper is an OCaml-like language serving as a prototype implementation of algebraic effects, intended for experimentation with algebraic effect on a large scale, and it has been used for the embedding of Eff into OCamL. The embedding is systematic, lightweight, performant and supports even higher-order, dynamic effects with their polymorphism.
29
•Dissertation
STAIRS - Understanding and Developing Specifications Expressed as UML Interaction Diagrams
Ragnhild Kobro Runde
- 01 Jan 2007
TL;DR: STAIRS addresses the challenges of harmonizing intuition and formal reasoning by providing a precise understanding of the partial nature of interactions, and of how this kind of incomplete specifications may be consistently refined into more complete specifications.
References
Communicating sequential processes
TL;DR: It is suggested that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method.
•Book
Communication and Concurrency
Robin Milner
- 01 Jan 1989
TL;DR: This chapter discusses Bisimulation and Observation Equivalence as a Modelling Communication, a Programming Language, and its application to Equational laws.
9K
Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints
Patrick Cousot,Radhia Cousot +1 more
- 01 Jan 1977
TL;DR: In this paper, the abstract interpretation of programs is used to describe computations in another universe of abstract objects, so that the results of abstract execution give some information on the actual computations.
•Book
The Lambda Calculus. Its Syntax and Semantics
Henk Barendregt
- 30 Apr 2012
TL;DR: In this article, the Lambda-Calculus has been studied as a theory of composition and reduction, and the theory of reduction has been used to construct models of Lambda Theories.
2.9K