This is summary of the material to study for the test on November 5.
-
Review all the written homework assignments:
-
Assignment 1.
-
Assignment 2.
-
Assignment 3.
-
Assignment 4.
-
Assignment 5.
-
Assignment 6.
-
Assignment 7.
-
Assignment 8.
-
Review old exams
from previous semesters, but remember, there is now
a different textbook. Certain material emphasized in prior semesters
will not be emphasized this semester, since it is not covered as extensively
in our current textbook. For example, I will not be asking detailed
questions about parsers. Conversely, material emphasized in our current
textbook but not in the previous textbook might be covered more extensively.
-
Let L be
the language of all regular expressions over the alphabet {0,1}.
-
Give a context-free grammar for L that has only
one variable. (This grammar will be ambiguous.)
-
Give an unambiguous context-free grammer for
L such that the parse tree of any regular expression
is consistent with the semantics of that expression.
Your grammar will need more than one variable.
-
I expect you to know about Chomsky normal form grammars.
-
Define Chomsky normal form.
-
Given a context-free grammar, I might ask you to find an equivalent
Chomsky normmal form grammar.
What do you do if the empty string is in the language?
-
Describe a PDA which accepts the language of all palindromes
over the alphabet {0,1}. Your description can be either a transition
table or a diagram.
-
Be familiar with the pumping lemma for context-free languages.
-
Give an accurate statement of the pumping lemma for context-free languages.
-
Sketch the proof of the pumping lemma for context-free languages.
-
Use the pumping lemma directly to prove that
{anbncn}
is not context-free.
-
Use the pumping lemma directly to prove that the language of all doubled
strings over {a,b}, that is, all strings of the form ww where w is any string
over {a,b}, is not context-free.
Some strings in that language.
-
What is the Church-Turing Thesis and why do we care
so much about it?
-
Find a general grammar that generates the language of all doubled strings
over {a,b}, that is, all strings of the form ww where w is any string
over {a,b}.
-
If you are having trouble, look at Hint 1.
-
If that doesn't do it, look at Hint 2 Monday morning.
-
Define:
-
Recursive function.
-
Recursive language.
-
Recursively enumerable language.
-
Reduction.
-
The diagonal language. (Called the diagonalization language
on page 370 of your textbook.)
-
The universal language. (See page 377 of your textbook.)
-
We could say that a machine M writes
a real number x if it runs forever, writing all decimal digits of x.
For example, a computer running this program
writes the number 1/7. (Note that it prints 1.142857142857... without end.)
-
Suppose x is a rational number. Prove that there is a machine that
writes x.
-
Does there exist a machine that writes the square root of 2?
This program is designed for an abstract Pascal machine
that has no limit on the size of integer.
-
Does there exist a machine that writes pi, the well-known
ratio of the circumference of a circle to its diameter?
Hint.
-
Is there a real number that cannot be written by any machine?
Hint.
-
What if we say "binary digits" instead of "decimal digits." How
does this effect things?
-
There will be no questions concerning the class of polynomial time
languages, or the class of non-deterministic polynomial time languages,
on the November 5 test.