Maharishi University of Management
Computer Science
COMP 505: Advanced Programming Languages
Important Points for the midterm
Introduction to Syntax and Semantics
Difference between Syntax and Semantics
Contextual constraints
Difference between
Operational semantics
Denotational semantics
Axiomatic semantics
Context Free Grammars
Syntax Trees
Ambiguity
Precedence
Formal Syntax
Parsing
Regular Expressions
BNF, EBNF
Functional Programming Concepts
Basics of ML:
Lists and Tuples
fn, op, fun, val
(T) Difference between
Expressions
Commands
Definitions
(T) Constructive vs. Destructive environments in ML
Type Declarations
Pattern Matching
Type definition
Polymorphism
(T) Eager vs. Lazy evaluation
Higher Order Functions
Higher Order Functions (in Watt[1], pp 237-241)
(T) Curried and Uncurried Functions
(T) Composing operator
(T) Partial application
(T) Closures
(T) True vs. Ad-hoc polymorphism
Notation
All topics as explained in the readings,
except for those marked with (T), as explained
in the Tapes.