Exam 1 Topics
1
Topics
n Formal languages (Lecture 2 plus chapters)
n Regular languages n Regular expressions
n DFAs
n Use of regular languages in programming languages
n Context-free languages n Context-free grammars
n Derivation, parse, ambiguity
n Use of CFGs in programming languages
n Expression grammars, precedence, and associativity
Programming Languages CSCI 4430, A. Milanova 2
Topics
n Parsing (Lecture 3 plus chapters)
n LL Parsing (Lectures 3 and 4 plus chapters)
n Recursive-descent parsing, recursive-descent routines
n LL(1) grammars
n LL(1) parsing tables
n FIRST, FOLLOW, PREDICT n LL(1) conflicts
Programming Languages CSCI 4430, A. Milanova 3
Topics
n Logic programming concepts (Lecture 5 plus chapters
n Declarative programming
n Horn clause, resolution principle
n Prolog (Lectures 5, 6, and 7 plus chapters) n Prolog concepts: search tree, rule ordering,
unification, backtracking, backward chaining
n Prolog programming: lists and recursion,
arithmetic, backtracking cut, negation-by-failure,
generate-and-test
Programming Languages CSCI 4430, A. Milanova 4
Topics
n Binding and scoping (Lecture 8 plus reading) n Object lifetime
n Combined view of memory n Stack management
n Scoping (in languages where functions are third- class values)
n Static and dynamic links
n Static (lexical) scoping
n Dynamic scoping
Programming Languages CSCI 4430, A. Milanova 5
Topics
n Attribute grammars n Attributes
n Attribute rules
n Decorated parse trees
n Bottom-up (i.e., S-attributed) grammars
Programming Languages CSCI 4430, A. Milanova 6
Quiz 1
Programming Languages CSCI 4430, A Milanova 7
Quiz 1
Programming Languages CSCI 4430, A Milanova 8
Quiz 1
Programming Languages CSCI 4430, A Milanova 9
Quiz 1
Programming Languages CSCI 4430, A Milanova 10
Quiz 1
Programming Languages CSCI 4430, A Milanova 11
Quiz 2
Programming Languages CSCI 4430, A Milanova 12
Quiz 2
Programming Languages CSCI 4430, A Milanova 13
Quiz 3
Programming Languages CSCI 4430, A Milanova 14
Quiz 3
Programming Languages CSCI 4430, A Milanova 15
Quiz 3
Programming Languages CSCI 4430, A Milanova 16
Spring 16 CSCI 4430, A Milanova 17