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 and understand these two sites have different perspectives.

Really appreciate your reply! Thanks to Dave Clarke for his suggestion on meta

  • $\begingroup$ 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. $\endgroup$
    – Uday Reddy
    Commented Mar 7, 2012 at 22:58

2 Answers 2


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 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.


Another good book on operational semantics is Semantics Engineering with PLT Redex 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.

  • 5
    $\begingroup$ Nice to see another PL person on board. $\endgroup$ Commented Apr 6, 2011 at 12:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.