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.
-
Wed, Aug 26
Overview of the Syllabus.
Contents of the course.
Preliminary notions: Basic mathematical objects (sets).
[
1.1,
Notes
]
-
Fri, Aug 28
Preliminary notions: Basic mathematical objects (relations, functions).
[
1.3, 1.4,
Notes
]
-
Mon, Aug 31
Preliminary notions: Classical logic. Principle of mathematical induction.
[
1.2, 2.1, 2.2,
Notes
]
-
Wed, Sep 2
Preliminary notions: Languages. Inductive definitions and
Principle of Structural Induction.
[
1.5, 2.4, 2.5,
Notes
]
-
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
-
Wed, Sep 9
Lecture given by Prof. John Hannan.
Formal definition of Finite Automata
and correspondence with the regular languages
(without proof).
[
3.3
]
-
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.
-
Mon, Sep 21
Construction of FA for the union, intersection and difference of
regular languages.
[
3.5
]
-
Wed, Sep 23
Nondeterministic Finite Automata.
Elimination of Nondeterminism: constructing a FA
equivalent to a given NFA.
[
4.1
]
-
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
]
- Mon, Sep 28
Theorem of Kleene (Part II). Construction of
a regular expression representing the language recognized by
a given FA.
[
4.3
]
- 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
]
- 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
]
- 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
]
- 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
]
- 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
]
- 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
]
- 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
]
- Fri, Oct 16
Simplification of context-free grammars.
Reduction to the Chomsky Normal Form.
[
6.6
]
- 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
]
- 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
]
- 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
]
- Mon, Oct 26
Exercises of preparation for the Midterm Exam.
- 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
]
- 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
]
- 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
]
- 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
]
- 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
]
- 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
]
- 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
]
- 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
]
- Mon, Nov 16
Universal TM.
Recursive and recursively enumerable languages
[
9.7, 10.1
]
- 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
]
- 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
]
- 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
]
- 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
]
- 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
]
- 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]
- 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]
- Wed, Dec 9
Correspondence between unrestricted grammars and Turing machines.
Regular Grammars and Regular Languages.
Context-sensitive grammars.
The Chomsky hierarchy.
[11.2-5]
- Fri, Dec 11
Exercises of preparation for the exam.