A formal approach to the teaching of programming language concepts
Andrew Kitchen · ACM SIGPLAN Notices · 1998
While the power of formal semantics is well recognized, it is not usually considered a teaching tool. This paper describes the use of denotational semantics in a course on programming language design for beginning graduate students. The course introduces the semantic and implementation issues underlying such concepts as naming, block structure, scope rules, parameter passing, flow control, and exception handling. The approach taken is to specify the semantics of these mechanisms, using a simplified form of denotational semantics, and use these descriptions as the basis for discussion. Implementations are developed from the specifications, and are available to students for experimentation.