I'm new to programming languages theory and I'm seeking for a good resource on a resource for formal semantics of programming languages. Specifically looking for structural operational semantics. I got some book recommendations. But I'm looking for a resource in a more introductory level. Especially tutorials, web-site and free book recommendations are welcomed.
-
2$\begingroup$ See cstheory.stackexchange.com/questions/3533/… $\endgroup$– Dave ClarkeCommented Dec 9, 2010 at 7:48
-
$\begingroup$ I was going to post the exact same link, but then noticed that the OP already mentioned that they had book recos, and were looking for other references $\endgroup$– Suresh VenkatCommented Dec 9, 2010 at 8:09
3 Answers
Looking at the operational semantics course at my University gives the following three:
- Andrew Pitts's lecture notes
- Gordon Plotkin's Aarhus notes on structural operational semantics
- Matthew Hennessey's The Semantics of Programming Languages
Ohad.
Structural operational semantics (SOS) is a very general concept. It's essentially just a binary relation on configurations (usually programs plus a context, like state, or available continuations), or, in case of labelled semantics, a ternary relation between configurations, actions (which represent certain minimal contexts) and configurations. The "structural" bit is usually that these relations are defined inductively over the involved syntax (e.g. configurations and actions).
As such, without other requirement, the mathematical entities we consider in SOS are too general to be interesting/tractable in their own right.
SOS becomes interesting and substantial when we look at special cases, e.g. equivalences for timed-calculi, labelled transitions for asynchronous ambient calculus corresponding to reductions, or questions about expressivity of certain (classes of) calculi.
So my recommendation for Mr/Ms Systemsfault is to skip generalities and jump right into specific calculi of interest. General SOS techniques can easily be picked up along the way.
I would recommend reading Chapter 2 in this downloadable book:
Semantics with Applications: A Formal Introduction, Hanne Riis Nielson and Flemming Nielson, Wiley, 1992. http://www.daimi.au.dk/~bra8130/Wiley_book/wiley.html