[ Lectures
| Course Description | Course
Outline | Homework and Project Information | Class Schedule ]
|
Lectures and Other Course Materials(back to top)
|
Course announcements, lecture slides and assignments will be posted on T-Square.
|
CourseDescription (back to top)
|
The objective of this course is to learn the
abstract classes of languages and the computations of their corresponding machines.
Scanners and parsers of compilers will illustrate the practical applications
of these theories. The notions of the Turing machines and decidability will also be discussed. The students will get
- in-depth understanding
of computational powers of regular languages, context-free languages and
Turing machines
- understanding of
practical applications of regular and context-free languages in
compilers
- skills to implement a basic compiler
|
Course
Outline (back to top)
|
Required Textbooks
Bundle ISBN# 1418879746, including
Outline
Theory:
- Regular languages and expressions,
deterministic and non-deterministic finite automata (DFAs and NFAs)
- Context-free
languages and grammars, Chomsky Hierarchy
- Pushdown automata (PDAs)
- Limitations of regular
and context-free languages, pumping lemmas
- Turing machines, decidable and
undecidable problems, the Halting Problem
And applications:
- Scanners and lexical analysis
- Parsers: recursive-descent, top-down and bottom-up parsers
Grading
- Homeworks: 20% (lowest score will be dropped)
- 3 Quizzes: 20% each
- Project : 20%
|
Homework
and Project Information (back to top)
|
Georgia Tech and College of Computing academic Honor Code applies. Homeworks are announced in class and are posted on the class web page. You are allowed to discuss course materials, homework problems, and
assignments in small groups, but limited to discussion of general
ideas only. You must write your solutions completely independently,
and must report the names of your collaborators with whom you discussed
the assignments. Under no circumstances may you copy solutions from any
source, including but not limited to other students solutions, official
solutions distributed in past terms, and solutions from courses taught at
other universities. Violation of these rules may result in disciplinary
actions. Homework solutions should be turned in in class, stapled, before the lecture starts, on a due day. If you are unable to attend a lecture when a homework is due, you can submit a postscript or a PDF file with your solutions to T-Square before the time of the class. No late homeworks will be accepted.The exams are closed book. Cheet sheet(s) may be allowed. The details about the project will be posted later.
|
Class
Schedule (back to top)
|
- In the reading list, L
stands for the textbook by Louden and S for the one by Sipser.
- A tentative
schedule
Week
|
Date
|
Topic
|
Reading
|
1
|
Tuesday, January 8
|
Logistics. Introduction to compiler concepts
|
L1.1-1.5
|
|
Thursday, January 10
|
Regular expressions
|
S1.3
|
2
|
Tuesday, January 15
|
DFA,NFA, equivalence of DFAs and NFAs
|
S1.1,1.2
|
|
Thursday, January 17 |
Closure properties of regular languages |
|
3
|
Tuesday, January 22
|
RegExp=regular
languages
|
|
|
Thursday, January 24
|
Pumping lemma for regular languages
|
S1.4
|
4
|
Tuesday, January 29
|
Using the pumping lemma
|
|
|
Thursday, January 31
|
Review for Quiz 1
|
L2.3
|
5
|
Tuesday, February 5
|
Quiz 1
|
|
|
Thursday, February 7
|
Lexical analysis, Context-free grammar, Ambiguity |
S2.1,2.3,L2.1,2.4-6 |
6
|
Tuesday, February 12
|
Ambiguity
|
|
|
Thursday, February 14
|
Recursive descent parsing
|
L4.1-2
|
7
|
Tuesday, February 19
|
Quiz 1 review.
|
|
|
Thursday, February 21
|
Pushdown Automata. Chomsky normal form. |
S2.1, 2.2 |
8
|
Tuesday, Febraury 26
|
Pumping lemma for CF languages |
S2.3
|
|
Thursday, Febraury 28 |
LL(1) parsing |
L4.2-3
|
9
|
Tuesday, March 5
|
LL(1) parsing; First and follow sets
|
|
|
Thursday, March 7
|
LL(1) parsing cont. |
cont.
|
10
|
Tuesday, March 12
|
Review for Quiz 2 |
|
|
Thursday, March 14
|
Quiz 2
|
|
11
|
Tuesday, March 19
|
Spring Break
|
|
|
Thursday, March 21
|
Spring Break
|
|
12
|
Tuesday, March 26
|
Overview of LL(1)
|
|
|
Thursday, March 28
|
Overview of bottom-up parsing; LR(0)
|
L5.1-2
|
13
|
Tuesday, April 2
|
Quiz 2 review, SLR(1)
|
L5.3
|
|
Thursday, April 4
|
LALR(1), LR(1), Intro to Turing Machines
|
L5.4, S3.1
|
14
|
Tuesday, April 9
|
Turing Machines |
|
|
Thursday, April 11
|
Turing Machines
|
S3
|
15
|
Tuesday, April 16
|
Review for Quiz 3
|
S3
|
|
Thursday, April 18
|
Quiz 3
|
|
16
|
Tuesday, April 23
|
Halting problem, existence of not recognizable languages
|
|
|
Thursday, April 25
|
Exam 3 review
|
|
|
|
Finals Week (but we have no final)
|
|
|