The Denotational Description of Programming Languages: An IntroductionThis book explains how to formally describe programming languages using the techniques of denotational semantics. The presentation is designed primarily for computer science students rather than for (say) mathematicians. No knowledge of the theory of computation is required, but it would help to have some acquaintance with high level programming languages. The selection of material is based on an undergraduate semantics course taught at Edinburgh University for the last few years. Enough descriptive techniques are covered to handle all of ALGOL 50, PASCAL and other similar languages. Denotational semantics combines a powerful and lucid descriptive notation (due mainly to Strachey) with an elegant and rigorous theory (due to Scott). This book provides an introduction to the descriptive techniques without going into the background mathematics at all. In some ways this is very unsatisfactory; reliable reasoning about semantics (e. g. correctness proofs) cannot be done without knowing the underlying model and so learning semantic notation without its model theory could be argued to be pointless. My own feeling is that there is plenty to be gained from acquiring a purely intuitive understanding of semantic concepts together with manipulative competence in the notation. For these equip one with a powerful conceptua1 framework-a framework enabling one to visualize languages and constructs in an elegant and machine-independent way. Perhaps a good analogy is with calculus: for many practical purposes (e. g. engineering calculations) an intuitive understanding of how to differentiate and integrate is all that is needed. |
What people are saying - Write a review
We haven't found any reviews in the usual places.
Other editions - View all
The Denotational Description of Programming Languages: An Introduction M.J.C. Gordon No preview available - 1979 |
Common terms and phrases
60 and PASCAL actual parameter value ALGOL 60 array assignment block Bool bound buffer variable C[for C[output C[while Edo call by reference call by value cedure clause for procedure closure command components concepts const construct cont continuation semantics coroutine corresponding curry D[proc declaration defined denotational semantics dereferenced described direct semantics discuss domain equations dynamic binding E's value E[read Ec-Co error occurs evaluated executed expressions false otherwise final answer formal parameter formal semantics function value goto Higher order functions identifiers Informal description initialized input integer intuitive isBool isLoc jumpout jumps label little environment M-expressions mathematical means notation output own-variables Peter Mosses plusc proc procedure bodies procedure value programming languages R-value recursive definitions rest semantic clause semantic functions sequence specified standard semantics static syntactic domain syntax tion true typeerror unassigned unbound unbound)-error update valof well-typed