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., Wed. 2:00-3:00pm

 

TA: Guanhao Shen

TA Email: gshen@gatech.edu
TA Office Hours: see TSquare announcement

TA:  Pooja Ghumre
TA Email: poojaghumre@gatech.edu
TA Office Hours: see TSquare announcement

 


 

[ 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)


A language is a certain class of strings that can be recognized by a corresponding machine. The objective of this course is to learn these abstract 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 key objectives of this course are the following:

  • 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;
  • problem solving by combining the two in pattern matching languages

 

Course Outline (back to top)


Required Textbooks

Bundle ISBN# 1418879746, including

 

Outline

  • Lexical analysis, scanners, pattern matching
  • Regular expressions, DFAs, NFAs and automata
  • Limits on regular expressions, pumping lemma
  • Practical parsing, LL and LR parsing
  • Context-free languages, grammars, Chomsky Hierarchy
  • Pushdown automata, deterministic vs. non-deterministic
  • Turing Machines, Decidable vs. Undecidable problems, Halting Problem

 

Grading

  • Homeworks: 25%
  • 3 Quizzes: 20% each
  • Mini-project : 15%

 

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 by Sipser.
  • A very tentative schedule

 

cont.

Week

Date

Topic

Reading

1

Tuesday, January 10

Logistics. Introduction to compiler concepts

  L1.1-1.5

 

Thursday, January 12

Regular expressions

S1.3

2

Tuesday, January 17

DFA,NFA, equivalence of DFAs and NFAs, closure properties of regular languages

S1.1,1.2

 

Thursday, January 19

NO CLASS

 

3

Tuesday, January 24

RegExp=regular languages

 

 

Thursday, January 26

Pumping lemma

S1.4

4

Tuesday, January 31

Lexical analysis; Context-free grammar

L2.3,S2.1

 

Thursday, February 2

Review for Quiz 1

 

5

Tuesday, February 7

Quiz 1

 

 

Thursday, February 9

Context-free grammar, Ambiguity

S2.1,L3.1-4

6

Tuesday, February 14

Chomsky normal form

S2.1

 

Thursday, February 16

Pushdown Automata

S2.2

7

Tuesday, February 21

Quiz 1 review. Non-context-free languages

S2.3

 

Thursday, February 23

Recursive descent parsing

L4.1-2

8

Tuesday, Febraury 28

Left recursion removal, LL(1) parsing

 

 

Thursday, March 1

NO CLASS

 

9

Tuesday, March 6

LL(1) parsing; First and follow sets

L4.2-3

 

Thursday, March 8

LL(1) parsing cont.

 

10

Tuesday, March 13

Review for Quiz 2

 

 

Thursday, March 15

Quiz 2

 

11

Tuesday, March 20

Spring Break

 

 

Thursday, March 22

Spring Break

 

12

Tuesday, March 27

Overview of LL(1)

 

 

Thursday, March 29

Overview of bottom-up parsing; LR(0)

L5.1-2

13

Tuesday, April 3

Quiz 2 review, SLR(1)

L5.3

 

Thursday, April 5

LALR(1), LR(1), Intro to Turing Machines

L5.4, S3.1

14

Tuesday, April 10

Turing Machines  

 

Thursday, April 12

Turing Machines

S3

15

Tuesday, April 17

Review for Quiz 3

S3

 

Thursday, April 19

Quiz 3

 

16

Tuesday, April 24

Turing Machines

 

 

Thursday, April 26

Review

 

 

 

Finals Week (but we have no final)