Fall 98, CSE 468: Lectures

The following is the summary of lectures given so far. For each lecture you find the list of topics covered, and the reference material. The numbers indicate sections in Martin's book. The notes contain a detailed list of the topics, and explain the notions which are not explained (or explained differently) in the book.

  1. Wed, Aug 26 Overview of the Syllabus. Contents of the course. Preliminary notions: Basic mathematical objects (sets). [ 1.1, Notes ]
  2. Fri, Aug 28 Preliminary notions: Basic mathematical objects (relations, functions). [ 1.3, 1.4, Notes ]
  3. Mon, Aug 31 Preliminary notions: Classical logic. Principle of mathematical induction. [ 1.2, 2.1, 2.2, Notes ]
  4. Wed, Sep 2 Preliminary notions: Languages. Inductive definitions and Principle of Structural Induction. [ 1.5, 2.4, 2.5, Notes ]
  5. Fri, Sep 4 Regular grammars and languages. Introduction to the problem of language recognition and the concept of Finite Automata. [ 3.1, 3.2, Notes ]
    Mon, Sep 7 Labour Day - No class
  6. Wed, Sep 9 Lecture given by Prof. John Hannan. Formal definition of Finite Automata and correspondence with the regular languages (without proof). [ 3.3 ]
  7. Fri, Sep 11 Lecture given by Prof. John Hannan. Distinguishing one string from another. Lower bound on the number of states of a Finite Automaton recognizing a given language. [ 3.4 ]
    Mon, Sep 14, Wed, Sep 16, and Fri, Sep 18 No classes.
  8. Mon, Sep 21 Construction of FA for the union, intersection and difference of regular languages. [ 3.5 ]
  9. Wed, Sep 23 Nondeterministic Finite Automata. Elimination of Nondeterminism: constructing a FA equivalent to a given NFA. [ 4.1 ]
  10. Fri, Sep 25 Nondeterministic Finite Automata with lambda transitions. Elimination of Nondeterminism: constructing a NFA equivalent to a given NFA-lambda. Construction of a NFA-lambda recognizing a given regular language. Theorem of Kleene (Part I). [ 4.2, 4.3 ]
  11. Mon, Sep 28 Theorem of Kleene (Part II). Construction of a regular expression representing the language recognized by a given FA. [ 4.3 ]
  12. Wed, Sep 30 The indistinguishability relation associated to a language, and the corresponding partition. Deriving a FA from the indistinguishability relation (when the partition is finite). The theorem of Myhill-Nerode. [ 5.1 ]
  13. Fri, Oct 2 Examples of languages which are not regular, and proof of their non-regularity by using Myhill-Nerode. Minimization of FA. [ 5.2 ]
  14. Mon, Oct 5 The pumping lemma for FA. Using the pumping lemma for proving that a language is not regular. Decidable properties for FA. [ 5.3, 5.4 ]
  15. Wed, Oct 7 Uses of Regular Languages in Computer Science. Limitations of Regular Languages. Example of a language which is not regular: the language of balanced parentheses. Expressing the languge of regular parentheses with a grammar. Context-free grammars. Language generated by a context-free grammar. [ 5.5, 6.1, 6.2 ]
  16. Fri, Oct 9 Example of a context free language: numerical expressions. Derivation trees and ambiguity. Elimination of ambiguity from the language of expressions: enforcing precedence and associativity rules on the operators. [ 6.4, 6.5 ]
  17. Mon, Oct 12 Proving equivalence of context-free grammars. Proving non-ambiguity of context-free grammars. Example: proving the non-ambiguity of the grammar for expressions. Converting regular expressions in context-free grammars. [ 6.3, 6.5 ]
  18. Wed, Oct 14 Examples of context-free grammars: the language of palindromes, the language of strings with the same number of a's and b's, the language of strings with different number of a's and b's, the language of non-palindromes. Proof of correctness for some of these grammars. [ 6.1, 6.2 ]
  19. Fri, Oct 16 Simplification of context-free grammars. Reduction to the Chomsky Normal Form. [ 6.6 ]
  20. Mon, Oct 19 Recognition of palindromes by using a FA with the auxilium of a stack. Definition of Pushdown Automata. Configurations and transitions between configurations. Language regognized by a pushdown automaton. [ 7.1, 7.2 ]
  21. Wed, Oct 21 Deterministic Pushdown Automata. Examples of languages recognized by deterministic PDA: {anbn| n>0}; {x in {a,b}*| n_a(x) = n_b(x)}; the language of balanced parentheses. Existence of languages inherently nondeterministic, i.e. recognized by a PDA but not recognized by any deterministic PDA. Example: {xxc| x in {a,b}*}. [ 7.3 ]
  22. Fri, Oct 23 Construction of a (nondeterministic) PDA recognizing the language generated by a given CFG. Parsing: Top-Down parsing. Elimination of non-determinism with the Look-Ahead technique. LL(1) Grammars. [ 7.4, 7.6 ]
  23. Mon, Oct 26 Exercises of preparation for the Midterm Exam.
  24. Wed, Oct 28 Transforming a grammar into a LL(1) grammar. Example: the language of numerical expressions. A top-down parser for the language of numerical expressions. [ 7.6 ]
  25. Fri, Oct 30 A recursive-descent parser for the language of numerical expressions. Bottom-up parsing. Example: a bottom-up paser for the language of numerical expressions (sketch). [ 7.6 ]
  26. Mon, Nov 2 Correspondence between CFG and PDA. The pumping lemma for CFL. Example: using the pumping lemma to prove that the languages L1 = {xx | x in {a,b}*} and L2 = {anbncn | n > 0} are not context-free. [ 7.5, 8.1 ]
  27. Wed, Nov 4 Proof of the pumping lemma for CFL. The class of CFL is not closed wrt the operations of intersection and complement. Example: consider L1 = {anbnck | n, k> 0} and L2 = {akbncn | n, k> 0}: they are both context-free but their intersection is not. The class of CFL is closed wrt the operation of intersection with a Regular language. Decidable properties of CFL: emptyness and finitness. [ 8.2, 8.3 ]
  28. Fri, Nov 6 Examples of constructs, useful in Programming Languages, which cannot be described with context-free formalisms. The Turing Machine. A bit of historical perspective. Turing machines as language acceptors. Example: a Turing machine recognizing the language {xx | x in {a,b}*}. [ 9.1, 9.2 ]
  29. Mon, Nov 9 Example: a Turing machine recognizing the language {xx | x in {a,b}*} (cont.ed). Computing functions on strings and on numbers with Turing machines. [ 9.2, 9.4 ]
  30. Wed, Nov 11 Computable functions. Computability does not depend on the coding. Characteristic function of a set. Decidable sets. Decidability, semidecidability and co-semidecidability. Correspondence between the notion of acceptability and the notion of semidecidability. Decidability of Context-free langauges. [ 9.4 ]
  31. Fri, Nov 13 Multitape TM. Simulating a multitape TM by a standart (unitape) TM. Nondeterministic TM. Simulating a Nondeterministic TM by a standart (deterministic) TM. [ 9.5, 9.6 ]
  32. Mon, Nov 16 Universal TM. Recursive and recursively enumerable languages [ 9.7, 10.1 ]
  33. Wed, Nov 18 Enumerating a language. A language is recursively enumerable if and only if it can be enumerated. Definition of cardinality (or size) of a set. Countable and uncountable sets. [ 10.2, 10.3 ]
  34. Fri, Nov 20 Examples of Countable languages: The set of all strings on {0,1}. The union of a countable series of countable sets. The set of rational numbers. Examples of uncountable sets: The set of real numbers R. The set of all subsets of N, 2N. Cantor's diagonal argument to prove that R and 2N are uncountable. [ 10.3 ]
  35. Mon, Nov 23 Existence of languages which are not RE. Proof: The cardinality of all languages on a given alphabet is strictly greater than the cardinality of all the TM. Example of a language that is not RE: The set NSA. Example of a language that is RE but not Rec: The set SA. Techniques for proving that a set is not RE / not Rec: Diagonal argument, Reduction (of one language to another / of one problem to another). The Halting problem. Proof (by reduction) that the Halting problem is not decidable (i.e. the set H is not Rec) [ 10.4, 12.1, 12.2 ]
  36. Mon, Nov 30 The set Accept_lambda is not recursive. Proof: by reduction to the Halting problem. The theorem of Rice. Examples of non-recursive languages (proof: by using the Theorem of Rice) L1 = {e(M) | L(M) = L0} (for a fixed L0 in RE), L2 = {e(M) | L(M) is finite}, L3 = {e(M) | L(M) is infinite}, L4 = {e(M) | L(M) is a subset of (or equal to) L0}, (for a fixed L0 in RE, different from the set of all strings). Relation between Decidabile (or Solvable) and Recursive, and between Semidecidable and Recursively Enumerable. Example of an unsolvable problems on a different domain: Given a system of Diophantine equations, does an integer solution exist. [ 12.3, 12.4 ]
  37. Wed, Dec 2 The theorem of Rice-Shapiro. Examples of sets not recursively enumerable (proof: by using the Theorem of Rice-Shapiro). Examples of non semidecidable problems in programming languages [ Notes ]
  38. Fri, Dec 4 The Post Correspondence Problem. Unsolvable problems involving Context-free grammars: Disjointness of context-free languages, Ambiguity of context-free grammars, Generation of all strings in the alphabet. Proof: by reduction (using the PCP or the representation of valid computations of a TM). [12.5, 12.6]
  39. Mon, Dec 7 Exercise: A programming language allowing only terminating programs cannot be complete (i.e. cannot be expressive enough to express all computable total functions). Proof: by diagonalization.
    Exercise: the problem "given a number n, does it exist a digit x which occurs at least n times consecutively in the decimal expansion of pi?" is decidable.
    Unrestricted grammars. Example: an unrestricted grammar generating the language {aibici | i >= 0}. [11.1]
  40. Wed, Dec 9 Correspondence between unrestricted grammars and Turing machines. Regular Grammars and Regular Languages. Context-sensitive grammars. The Chomsky hierarchy. [11.2-5]
  41. Fri, Dec 11 Exercises of preparation for the exam.