^server / courseware / cse5340^   <2004< 2005 >2006>

CSE5340 Programming Language Concepts and Semantics, semester 2, 2005

Not offered in 2005

Week 1
L1 Introduction
L2 Syntax introduction
Week 2
L3 Application of syntax
L4 Recursive-descent parsing
Week 3
L5 ML (SML) (10 lectures)
L6 ML-2
Week 4
L7 ML-3
L8 ML-4
Week 5 (ML exercise 1)
L9 ML-5
L10 ML-6
Week 6
L11 ML-7
L12 ML-8
Week 7 (ML exercise 2)
L13 ML-9
L14 ML-10 ... recursive descent in ML
Week 8
L15 Axiomatic Semantics (5 lectures)
L16 AS-2
Week 9 (exercise 3)
L17 AS-3
L18 AS-4
Week 10 (exercise 4)
L19 AS-5
L20 Operational Semantics (3+3)
Week 11 (exercise 5)
L21 OS-2
L22 OS-3
Week 12
L23 OS-4 implemented in ML (SML)
L24 OS-5
Week 13 (exercise 6, large)
L25 OS-6
L26
CSE5340:
prereqs
reading
handbook
cse3322 
 2005

WWW:
Haskell
SML (NJ)
 FAQ
 interactive
 error msgs

Local
LA
 FP
  λ
   intro
   e.g.
  Haskell
  SML
   SML97
 Prolog
  intro
  e.g.
 Semantics
  e.g.

Summary: The subject takes a practical hands-on approach to programming language semantics where students can explore the concepts through the use of high-level tools based using semantic specification. Main topics are: Distinguishing syntax from semantics. Concrete and abstract syntax. Syntax as a basis for semantics. Outline of the main approaches for giving meaning to programming languages. Fundamental concepts of programming languages and their relation to design decisions. Examples of formal semantic specification for real-world programming languages. Semantic analysis of programming languages. Implementation of programming languages with high-level tools.

Recommended Reading
David A. Watt. Programming Language Syntax and Semantics, Prentice Hall, 1991.
Betrand Meyer. Introduction to the Theory of Programming Languages, Prentice Hall, 1990.
Peter D. Mosses. Action Semantics, CUP, Cambridge, UK, 1992.
 
Prerequisite Knowledge
Proficiency in at least one programming language, knowledge of alternative programming paradigms, such as functional programming (as for example given in CSE3322), logic programming (as for example given in CSE2393) or concurrent programming paradigms (as for example given in CSE4333). While any knowledge of alternative programming paradigms is advantegous, basic knowledge of functional programming (as given in CSE3322) is particularly important.
A solid understanding of recursion. At least 12 points of Computer Science-oriented mathematics (for example, MAT1841+MAT1830 or MAT1811+1812). Fundamentals of first-order predicate logic (for example from CSE2303). Understanding of the notion of a proof, induction.


Lloyd Allison & Bernd Meyer.
© June 2005, School of Computer Science and Software Engineering, Monash University, Australia 3800.
Created with "vi (Linux & Solaris)",   charset=iso-8859-1.   www.csse.monash.edu.au/courseware/cse5340/2005/index.html  Last modified Thursday, 09-Jun-2005 11:37:57 ESTDownloaded Tuesday, 24-Nov-2009 20:19:06 GMT.