Skip to main content
Link
Menu
Expand
(external link)
Document
Search
Copy
Copied
Prog Lang
& Computation
Home
Course Materials
Background Reading
Course Notes
Prerequisites
Sets
Functions
Syntax
1. Strings
2. Reading Grammars
3. Writing Grammars
4. LL(1) Grammars
5. Lexer Implementation
6. Parser Implementation
7. Obtaining LL(1)
8. Abstract Syntax Trees
A. LL(1) Calculations
B. Limitations of CFG
Semantics
Denotational Semantics
Induction for Expressions
Operational Semantics
Hoare Logic
Invariants
Computability
Computability and Decidability
Encoding first-order data
While Eats Itself
The Halting Problem
Reductions
Rice's theorem
Slides
1. Program 1
2. Program 2
3. Key Info
4. Strings
5. String Ops
6. BExp Grammar
7. Linguistics
8. Wild Grammars
9. A C Statement
10. Duff's Device
11. Hask Appl
12. CFG Defn
13. Deriv Step Defn
14. Derivability Defn
15. Grammar Designs
16. BExp Alt CFG
17. Nullable(X)
18. First(X)
19. Follow(X)
20. B-Summary
21. Nullable(α)
22. First(α)
23. Table Eg
23. Parsing Table
24. Table Eg Done
25. BExp Alt Table
26. Interpreter Arch
27. Interpreter AST
28. BS Grammar
29. BS Deriv 1
30. BS Deriv 2
31. Lexemes
32. BS Lexical Struct
33. Token Datatype
34. Lexer States
35. Brischeme Grammar
36. Brischeme Table
37. Parsing Helpers
38. BExp 1 Line
39. BS Overlapping
40. BS Factored
41. Stmt Seqs
42. BS CFG
43. A While Loop
44. Loops Compared
45. BS AST Types
46. Assoc Left/Right
47. Precedence
48. Exp LL(1)
49. Exp LL(1) Alt
Assessment Info
Replay
Help Forum
Search Prog Lang & Computation
Slides
8. Wild Grammars
\[ \newcommand{\tr}{\Rightarrow} \newcommand{\trs}{\tr^{\!\ast}} \newcommand{\rlnm}[1]{\mathsf{(#1)}} \newcommand{\rred}[1]{\xrightarrow{#1}} \newcommand{\rreds}[1]{\mathrel{\xrightarrow{#1}\!\!^*}} \newcommand{\cl}{\mathsf{Cl}} \newcommand{\pow}{\mathcal{P}} \newcommand{\matches}{\mathrel{\mathsf{matches}}} \newcommand{\kw}[1]{\mathsf{#1}} \newcommand{\andop}{\mathrel{\&\!\&}} \newcommand{\orop}{\parallel} \newcommand{\ff}{\mathsf{false}} \newcommand{\tt}{\mathsf{true}} \newcommand{\abra}[1]{\langle #1 \rangle} \newcommand{\bnfnt}[1]{\abra{\small \textsf{#1}}} \newcommand{\llbracket}{[\![} \newcommand{\rrbracket}{]\!]} \newcommand{\first}{\mathsf{First}} \newcommand{\nullable}{\mathsf{Nullable}} \newcommand{\follow}{\mathsf{Follow}} \newcommand{\tm}[1]{\mathsf{#1}} \newcommand{\nt}[1]{\mathit{#1}} \newcommand{\Coloneqq}{::=} \newcommand{\abs}[1]{|#1|} \]
Grammar for C at
microsoft.com
Grammar for Java at
oracle.com
Grammar for Haskell at
haskell.org