<p>Another good book on operational semantics is <a href="http://redex.racket-lang.org/sewpr-preface.html"><em>Semantics Engineering with PLT Redex</em></a> by Matthias Felleisen, Robby Findler, and Matthew Flatt. It begins with a textbook treatment of reduction semantics and abstract machines, and also covers using the Redex tool to model the semantics of programming languages.</p>

CC BY-SA 2.5
2011-04-06T12:59:27.127Z
Nice to see another PL person on board.
Dave Clarke
CC BY-SA 2.5
2011-04-06T12:57:52.987Z
2011-04-06T12:57:52.987Z
Sam Tobin-Hochstadt
<p>I don't know of any survey of the semantics of various language features, though
there are many books dealing with the semantics of programming languages. Here are a few of the more comprehensive ones, which also deal with less standard constructs:</p>

<ul>
<li><p><em>Design Concepts in Programming Languages</em> by Franklyn Turbak, David Gifford and Mark Sheldon. A mammoth book full of semantics of many different language constructs. </p></li>
<li><p><em>Concepts, Techniques, and Models of Computer Programming</em> by Peter Van Roy and Seif Haridi. This book focusses mainly on the concepts in terms of the language Oz. Every example in the book runs. At the end of the book there is a chapter or two discussing the formal semantics of the language constructs.</p></li>
</ul>

<p>More classical texts which put more emphasis on the semantic techniques, rather than on the variety of programming language constructs, include:</p>

<ul>
<li><p><em>Types and Programming Languages</em> by Benjamin Pierce. The book on type systems. Mainly focusses on functional language constructs, while increasing the sophistication of the type system. It also covers Featherweight Java, a core calculus of Java.</p></li>
<li><p><em>Transitions and Trees</em> by Hans Huttel. A nice introduction to operational semantics, covering a variety of languages constructs of increasing complexity.</p></li>
<li><p><em>Semantics with Applications</em> by Hanne Riis Nielson and Flemming Nielson. An introduction to various semantics styles, including some non-obvious applications of them. A great read!</p></li>
<li><p><em>The Structure of Typed Programming Languages</em>  by David A Schmidt. A solid foundational book. </p></li>
<li><p><em>Semantics of Programming Languages: Structures and Techniques</em> by Carl A Gunter. Another  solid foundational book. </p></li>
</ul>

<p>Finally, a work-in-progress, generously available for download, <em><a href="http://www.cs.cmu.edu/~rwh/plbook/book.pdf">Practical Foundations for Programming Languages</a></em> by Bob Harper  covers a lot of different programming language features, ensuring that everything is formalised along the way.</p>

<p>I should add that if you ask a more specific question, you'll get a more specific answer.  Many scientific papers are out there giving semantics to various programming language features. If you were interested in a specific feature, then I could dig up a paper or two on that feature.</p>

CC BY-SA 2.5
2011-03-27T18:03:39.607Z
2011-03-29T06:36:33.517Z
2011-03-29T06:36:33.517Z
Dave Clarke
<p>Is there a survey (from paper, book chapter, tutorial, links, ...) of the semantics of various programming language features? I was originally overwhelmed by the features of D in here <a href="http://www.digitalmars.com/d/2.0/comparison.html" rel="nofollow noreferrer">http://www.digitalmars.com/d/2.0/comparison.html</a></p>

<p>I would like to see what I could possibly get from here, although I have asked <a href="https://stackoverflow.com/questions/5439060/is-there-some-nice-description-about-language-features">a similar question on stackoverflow</a> and understand these two sites have different perspectives. </p>

<p>Really appreciate your reply! Thanks to Dave Clarke for <a href="https://cstheory.meta.stackexchange.com/questions/1080/are-my-questions-acceptable-here/1085#1085">his suggestion on meta</a>！</p>

CC BY-SA 3.0
2012-03-07T22:58:28.017Z
I think this question raises an interesting issue: Is semantics of programming languages still a research area in the lab, or is it ready for the day light? If it is ready for day light, then there should be compendia that state how to describe the semantics of each programming language feature, so that future language designers could go and look them up while designing their languages.

I think it is worth pondering where we want to go from here.
Uday Reddy
<reference-request><pl.programming-languages><survey>
Is there a survey of the semantics of various programming language features?
Tim
# Is there a survey of the semantics of various programming language features?

(Asked by: username_0 on 2011-03-27)

Is there a survey (from paper, book chapter, tutorial, links, ...) of the semantics of various programming language features? I was originally overwhelmed by the features of D in here <http://www.digitalmars.com/d/2.0/comparison.html>

I would like to see what I could possibly get from here, although I have asked [a similar question on stackoverflow](https://stackoverflow.com/questions/5439060/is-there-some-nice-description-about-language-features) and understand these two sites have different perspectives.

Really appreciate your reply! Thanks to Dave Clarke for [his suggestion on meta](https://cstheory.meta.stackexchange.com/questions/1080/are-my-questions-acceptable-here/1085#1085)！

**Tags:** reference-request, pl.programming-languages, survey
> **Comments:**
> **username_1**: I think this question raises an interesting issue: Is semantics of programming languages still a research area in the lab, or is it ready for the day light? If it is ready for day light, then there should be compendia that state how to describe the semantics of each programming language feature, so that future language designers could go and look them up while designing their languages.  I think it is worth pondering where we want to go from here.  

---

## 2 answers

### Answer by username_3 on 2011-03-27. Score: 17 | Accepted answer

I don't know of any survey of the semantics of various language features, though
there are many books dealing with the semantics of programming languages. Here are a few of the more comprehensive ones, which also deal with less standard constructs:

* *Design Concepts in Programming Languages* by Franklyn Turbak, David Gifford and Mark Sheldon. A mammoth book full of semantics of many different language constructs.
* *Concepts, Techniques, and Models of Computer Programming* by Peter Van Roy and Seif Haridi. This book focusses mainly on the concepts in terms of the language Oz. Every example in the book runs. At the end of the book there is a chapter or two discussing the formal semantics of the language constructs.

More classical texts which put more emphasis on the semantic techniques, rather than on the variety of programming language constructs, include:

* *Types and Programming Languages* by Benjamin Pierce. The book on type systems. Mainly focusses on functional language constructs, while increasing the sophistication of the type system. It also covers Featherweight Java, a core calculus of Java.
* *Transitions and Trees* by Hans Huttel. A nice introduction to operational semantics, covering a variety of languages constructs of increasing complexity.
* *Semantics with Applications* by Hanne Riis Nielson and Flemming Nielson. An introduction to various semantics styles, including some non-obvious applications of them. A great read!
* *The Structure of Typed Programming Languages* by David A Schmidt. A solid foundational book.
* *Semantics of Programming Languages: Structures and Techniques* by Carl A Gunter. Another solid foundational book.

Finally, a work-in-progress, generously available for download, *[Practical Foundations for Programming Languages](http://www.cs.cmu.edu/~rwh/plbook/book.pdf)* by Bob Harper covers a lot of different programming language features, ensuring that everything is formalised along the way.

I should add that if you ask a more specific question, you'll get a more specific answer. Many scientific papers are out there giving semantics to various programming language features. If you were interested in a specific feature, then I could dig up a paper or two on that feature.


---

### Answer by username_2 on 2011-04-06. Score: 11

Another good book on operational semantics is [*Semantics Engineering with PLT Redex*](http://redex.racket-lang.org/sewpr-preface.html) by Matthias Felleisen, Robby Findler, and Matthew Flatt. It begins with a textbook treatment of reduction semantics and abstract machines, and also covers using the Redex tool to model the semantics of programming languages.

> **Comments:**
> **username_3**: Nice to see another PL person on board.  

---

