## Programming Language Semantics (1995)

Venue: | In CRC Handbook of Computer Science |

Citations: | 11 - 0 self |

### BibTeX

@INPROCEEDINGS{Schmidt95programminglanguage,

author = {David A. Schmidt},

title = {Programming Language Semantics},

booktitle = {In CRC Handbook of Computer Science},

year = {1995},

pages = {28--1},

publisher = {CRC Press}

}

### OpenURL

### Abstract

interpretation provides the theory that allows a compiler writer to prove the correctness of compilers. Finally, axiomatic semantics is a long-standing fundamental technique for validating the correctness of computer code. Recent emphasis on large-scale and safety-critical systems has again placed the spotlight on this technique. Current research on data type theory [5] suggests that a marriage between the techniques of data-type checking and axiomatic semantics is not far in the future. 4 Research Issues in Semantics The techniques in this chapter have proved highly successful for defining, improving, and implementing traditional, sequential programming languages. But new language paradigms present new challenges to the semantics methods. In the functional programming paradigm, a higher-order functional language can use functions as arguments to other functions. This makes the language's domains more complex than those in Figure 2. Denotational semantics can be used to understand the...

### Citations

1902 | Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints - Cousot, Cousot - 1977 |

1571 | The Definition of Standard ML
- Milner, Harper
- 1990
(Show Context)
Citation Context ...used language which has been given a standardized denotational semantics [31]. 15 Another notable example is the formalization of the complete Standard ML language in structural operational semantics =-=[20]-=-. Perhaps the most significant application of semantics definitions has been to rapid prototyping--- the synthesis of an implementation for a newly defined language. Some prototyping systems are SIS [... |

1410 | A Discipline of Programming - Dijkstra - 1976 |

1376 | An axiomatic basis for computer programming - Hoare - 1969 |

1288 | A Structural Approach to Operational Semantics - Plotkin - 1981 |

468 | The Science of programming - Gries - 1981 |

326 |
Denotational Semantics: A Methodology For Language Development
- Schmidt
- 1986
(Show Context)
Citation Context ...ircular definition stands for the least fixed point. This is called fixed-point semantics. We have omitted many technical details regarding fixed-point semantics; these are available in several texts =-=[12, 32, 36, 39]-=-. 2.5 Action Semantics One disadvantage of denotational semantics is its dependence on functions to describe all forms of computation. As a result, the denotational semantics of a large language is of... |

302 | Natural semantics - Kahn - 1987 |

240 |
The Formal Semantics of Programming Languages
- Winskel
- 1993
(Show Context)
Citation Context ...ircular definition stands for the least fixed point. This is called fixed-point semantics. We have omitted many technical details regarding fixed-point semantics; these are available in several texts =-=[12, 32, 36, 39]-=-. 2.5 Action Semantics One disadvantage of denotational semantics is its dependence on functions to describe all forms of computation. As a result, the denotational semantics of a large language is of... |

193 | Full abstraction for PCF
- Abramsky, Jagadeesan, et al.
(Show Context)
Citation Context ...anings of E 1 and E 2 are combined compositionally by plus. Here is the denotational semantics of our example program: E [[(1 + 2) + (4 + 5)]] = plus(E [[1 + 2]]; E [[4 + 5]]) = plus(plus(E [[1]]; E [=-=[2]-=-]); plus(E [[4]]; E [[5]])) = plus(3; 9) = 12 One might read the above as follows: the meaning of (1 + 2) + (4 + 5) equals the meanings of 1 + 2 and 4 + 5 added together. Since the meaning of 1 + 2 is... |

172 | The semantics of programming languages - Tennent - 1997 |

148 | Action semantics - Mosses - 1992 |

143 |
Semantics of programming languages
- Gunter
- 1992
(Show Context)
Citation Context ...ircular definition stands for the least fixed point. This is called fixed-point semantics. We have omitted many technical details regarding fixed-point semantics; these are available in several texts =-=[12, 32, 36, 39]-=-. 2.5 Action Semantics One disadvantage of denotational semantics is its dependence on functions to describe all forms of computation. As a result, the denotational semantics of a large language is of... |

133 | Semantics with Applications: A Formal Introduction
- Nielson, Nielson
- 1992
(Show Context)
Citation Context ...utation runs. Therefore, one shows (i) P holds after zero computation steps, that is, at the outset, and (ii) if P holds after n computation steps, it holds after n + 1 steps. See Nielson and Nielson =-=[27]-=- for examples. 1.2 Denotational Semantics A drawback of operational semantics is the emphasis it places upon state sequences. For the arithmetic language, we were distracted by questions regarding ord... |

117 |
editors. Abstract Interpretation of Declarative Languages. Computers and their Applications. Ellis Horwood
- Abramsky, Hankin
- 1987
(Show Context)
Citation Context ... the 4 meanings of E 1 and E 2 are combined compositionally by plus. Here is the denotational semantics of our example program: E [[(1 + 2) + (4 + 5)]] = plus(E [[1 + 2]]; E [[4 + 5]]) = plus(plus(E [=-=[1]-=-]; E [[2]]); plus(E [[4]]; E [[5]])) = plus(3; 9) = 12 One might read the above as follows: the meaning of (1 + 2) + (4 + 5) equals the meanings of 1 + 2 and 4 + 5 added together. Since the meaning of... |

94 | Software Development: A Rigorous Approach - JONES - 1980 |

73 | The Semantics of Programming Languages: An Elementary Introduction using Structural Operational Semantics - Hennessy - 1990 |

73 | An Axiomatic Definition of the Programming Language PASCAL - Hoare, Wirth - 1973 |

69 |
Program Flow Analysis, Theory and Applications, chapter 4, Flow Analysis and Optimization of LISP-like Structures
- Jones, Muchnick
- 1983
(Show Context)
Citation Context ...zed. A major success of formal semantics is the analysis and synthesis of data-flow analysis and typeinference algorithms from semantics definitions. This subject area, called abstract interpretation =-=[1, 6, 25]-=-, supplies precise techniques for analyzing semantics definitions, extracting properties from the definitions, applying the properties to data flow and type inference, and proving the soundness of the... |

58 |
Programming Language Syntax and Semantics
- Watt
- 1991
(Show Context)
Citation Context ...on steps (e.g., find and update); and (iii) combinators connect operators together seamlessly and pass values implicitly. Lack of space prevents a closer examination of action semantics, but see Watt =-=[38]-=- for an introduction. 2.6 The Natural Semantics of the Language We can compare the denotational semantics of the imperative language with a natural semantics formulation. The semantics of several cons... |

55 | Formal Syntax and Semantics of Programming Languages: A Laboratory-Based Approach - Slonneger, Kurtz - 1995 |

53 |
Realistic Compiler Generation
- Lee
- 1989
(Show Context)
Citation Context ..., such as whether the definition is strongly typed, block structured, or single threaded. ffl The semantics definition can be used as input to a compiler back-end generating tool, such as SIS or MESS =-=[19, 22]-=-. In this way, the semantics definition is also the implementation of the back end of the language's compiler. 1 Programming language syntax was studied intensively in the 1960's and 1970's, and prese... |

46 | Revised3 Report on the Algorithmic Language Scheme
- Rees, Clinger
- 1986
(Show Context)
Citation Context ...[9]. The semantics definition was then prototyped using Mosses's SIS compiler generating system [22]. Scheme is another widely-used language which has been given a standardized denotational semantics =-=[31]-=-. 15 Another notable example is the formalization of the complete Standard ML language in structural operational semantics [20]. Perhaps the most significant application of semantics definitions has b... |

44 |
editors, Theoretical Aspects of ObjectOriented Programming: Types, Semantics, and Language Design
- Gunter, Mitchell
- 1994
(Show Context)
Citation Context ...hods. Carelessly defined coercions lead to unsound programs, so denotational and natural 16 semantics have been used to formalize domain hierarchies and safe coercions for the inheritance hierarchies =-=[13]-=-. Yet another challenging topic is parallelism and communication as it arises in the distributed programming paradigm. Here, multiple processes run in parallel and synchronize through communication. S... |

43 | Ten years of Hoare’s logic: A survey—Part I - Apt - 1981 |

43 | The structure of Typed Programming Languages - Schmidt - 1994 |

35 |
Denotational Semantics
- Stoy
- 1977
(Show Context)
Citation Context |

33 | Actress: An Action Semantics Directed Compiler Generator
- Brown, Moura, et al.
- 1992
(Show Context)
Citation Context ...nd E 2 are combined compositionally by plus. Here is the denotational semantics of our example program: E [[(1 + 2) + (4 + 5)]] = plus(E [[1 + 2]]; E [[4 + 5]]) = plus(plus(E [[1]]; E [[2]]); plus(E [=-=[4]-=-]; E [[5]])) = plus(3; 9) = 12 One might read the above as follows: the meaning of (1 + 2) + (4 + 5) equals the meanings of 1 + 2 and 4 + 5 added together. Since the meaning of 1 + 2 is 3, and the mea... |

29 |
Two-level semantics and code generation
- Nielson, Nielson
- 1988
(Show Context)
Citation Context ... the most significant application of semantics definitions has been to rapid prototyping--- the synthesis of an implementation for a newly defined language. Some prototyping systems are SIS [22], PSI =-=[26]-=-, MESS [19], Actress [4], and Typol [7]. The first two process denotational semantics, the second two process action semantics, and the last handles natural semantics. SIS and Typol are interpreter ge... |

29 |
Fully Abstract Models of Programming Languages
- Stoughton
- 1988
(Show Context)
Citation Context ...cs. Adequacy is a form of inverse: if P [[P ]](v) = v 0 , and v 0 is a primitive value (e.g., an integer or boolean), then (P; v) ) v 0 . There is a stronger form of adequacy, called full abstraction =-=[35]-=-, which has proved difficult to achieve for realistic languages, although recent progress has been made [2]. 5 Defining Terms Action semantics: A variation of denotational semantics where low-level de... |

26 |
Executable specification of static semantics
- Despeyroux
- 1984
(Show Context)
Citation Context ...antics definitions has been to rapid prototyping--- the synthesis of an implementation for a newly defined language. Some prototyping systems are SIS [22], PSI [26], MESS [19], Actress [4], and Typol =-=[7]-=-. The first two process denotational semantics, the second two process action semantics, and the last handles natural semantics. SIS and Typol are interpreter generators, that is, they interpret a sou... |

23 | Correspondence between operational and denotational semantics: the full abstraction problem for PCF” in handbook of logic in computer science
- Ong
- 1995
(Show Context)
Citation Context ... concepts of soundness and completeness to relate a logic's proof system to its interpretation, and in semantics there are similar notions of soundness and adequacy to relate one semantics to another =-=[12, 28]-=-. A standard example is proving the soundness of a structural operational semantics to a denotational semantics: for program, P, and input, v, (P; v) ) v 0 in the operational semantics implies P [[P ]... |

7 | Program Derivation - Dromey - 1989 |

6 |
Compiler generation using denotational semantics
- Mosses
(Show Context)
Citation Context ..., such as whether the definition is strongly typed, block structured, or single threaded. ffl The semantics definition can be used as input to a compiler back-end generating tool, such as SIS or MESS =-=[19, 22]-=-. In this way, the semantics definition is also the implementation of the back end of the language's compiler. 1 Programming language syntax was studied intensively in the 1960's and 1970's, and prese... |

1 |
Type theory
- Cardelli
- 1996
(Show Context)
Citation Context ...e combined compositionally by plus. Here is the denotational semantics of our example program: E [[(1 + 2) + (4 + 5)]] = plus(E [[1 + 2]]; E [[4 + 5]]) = plus(plus(E [[1]]; E [[2]]); plus(E [[4]]; E [=-=[5]-=-])) = plus(3; 9) = 12 One might read the above as follows: the meaning of (1 + 2) + (4 + 5) equals the meanings of 1 + 2 and 4 + 5 added together. Since the meaning of 1 + 2 is 3, and the meaning of 4... |

1 |
On the formal description of Ada
- Donzeau-Gouge
- 1980
(Show Context)
Citation Context ...s of Semantics Increasingly, language designers are using semantics definitions to formalize their creations. An early example was the formalization of a large subset of Ada in denotational semantics =-=[9]-=-. The semantics definition was then prototyped using Mosses's SIS compiler generating system [22]. Scheme is another widely-used language which has been given a standardized denotational semantics [31... |

1 | Programming from specifications, 2d - Morgan - 1994 |

1 |
Formal models/calculi of programming languages
- Pierce
- 1996
(Show Context)
Citation Context ...ite f = a:e, that is, we write the argument to the function to the right of the equals sign. This is called lambda notation, and stems from the lambda calculus, an elegant formal system for functions =-=[29]-=-. The notation f = a:e emphasizes that (i) the function a:e is a value in its own right, and (ii) the function's name is f . Second, it is common to revise a function that takes multiple arguments, e.... |