CS 3240: Languages and Computation
Spring 2012
Tue, Thur 4:35 pm - 5:55 pm, Klaus 1456.


 

Instructor: Sasha Boldyreva (sasha AT gatech DOT edu)
Office: 3144 KACB (Klaus)
Office Hours: Tue. 2:00-3:00pm, Th. 1:30-2:30pm

 

TA: Dushmanta Mohapatra

TA Email: dmohapatra3@gatech.edu
TA Office Hours: Wed. 2-3pm, Klaus 2201

TA: Anshuman Goswami
TA Email: anshumang@gatech.edu
TA Office Hours: Monday 2:30-3:30pm, Klaus 2337

 


 

[ 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

 

cont.

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.

 

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)