Theory of computing
Exam, quiz, and group-work questions
The
multiple-choice questions below are intended as a study guide to the factual
content of the course. By sampling the questions, students may learn where they
need to focus their study. Facts are not worth learning in isolation from
concepts and problem-solving methods, but knowledge of facts is necessary to
understand the concepts in the course. Knowledge of facts will emerge from
working with problems and concepts.
See questions on paper, on the following
topics:
·
Logic
·
Sets
·
Relations
·
Functions
·
Inductive proofs
1.
A model abstracts from (a) foundation concepts;
(b) details; (c) utility; (d) simplicity; (e) none of these
2.
Computing is traditionally viewed as
(a) interaction; (b) algebra; (c) intelligence; (d) the
execution of algorithms; (e) what the Internet does
3.
Top-down theoretical results in computer science use
(a) empirical data; (b) testing benchmarks; (c) conjecture and
proof; (d) democratic vote; (e) none of these
Logic
Sets
1.
{1,2,3} È {2,4,5} = (a)
{}; (b) {1,2}; (c) 2; (d) {2}; (e) {1,2,3,4,5}
Relations
1.
A relation on
set A is (a) an element of A; (b) a subset of A; (c) an element of A ´ A; (d) a subset of A
´
A; (e) none of these
Functions
1.
A function f:
{1,2,3} ®
{0,1} is a set of (a) integers; (b) ordered pairs; (c) sets;
(d) relations; (e) none of these
Proofs
1.
A proof that begins by asserting a claim and proceeds
to show that the claim cannot be true is by (a) induction;
(b) construction; (c) contradiction; (d) prevarication;
(e) none of these
2.
A proof that proceeds by showing the existence of
something desired is by (a) induction; (b) construction; (c) contradiction;
(d) prevarication; (e) none of these
3.
A proof that shows that a certain property holds for
all natural numbers is by (a) induction; (b) construction;
(c) contradiction; (d) prevarication; (e) none of these
Data structures
1.
One member of a linked-list node must be a(n)
(a) character; (b) integer; (c) node; (d) reference;
(e) none of these
2.
To access a certain node in a singly-linked list
(a) takes one step; (b) takes two steps; (c) requires that all
its predecessors be visited; (d) requires that all its successors be visited
3.
To add to a stack, we carry out a(n) ______ operation.
(a) dequeue; (b) enqueue; (c) pop; (d) push; (e) traversal
4.
The first-in, first-out structure is the (a) list; (b) array; (c) queue;
(d) stack; (e) tree
5.
A tree has no (a) edges; (b) vertices;
(c) paths; (d) cycles; (e) connectivity
6.
To model a hierarchy, it is most convenient to use a(n)
(a) simple type; (b) array; (c) linked list; (d) binary search
tree; (e) tree
7.
A graph is (a) a set of integers; (b) a set of
vertices; (c) a set of vertices and a set of edges;
(d) a set of edges; (e) a set of paths
Cardinalities
See printed sheet with several questions.
1.
What proof method was used by
Cantor to show that the reals are uncountable? (a) inductive; (b) diagonal;
(c) constructive; (d) immediate; (e) none of these
2.
Which of these sets is
countable? i. strings ii. streams iii natural numbers iv real numbers. (a) i and ii; (b) i
and iii; (c) ii and iii; (d) ii and iv; (e) none of these
3.
The set of strings of length k, over a finite alphabet, for given
constant k, is (a) countably infinite; (b) finite;
(c) uncountable; (d) undecidable; (e) none of these
4.
Two sets have the same cardinality if (a) they are
both finite and have the same element count; (b) neither is strictly
included in the other; (c) a bijection exists between them;
(d) they are both infinite; (e) none of these
5.
Cantor showed that the reals are (a) infinite;
(b) countable; (c) uncountable; (d) dense; (e) none of
these
6.
The natural numbers (a) can be paired up with the
reals; (b) are countable; (c) are uncountable; (d) are as numerous as
any set; (e) none of these
7.
Cantor’s proof about the cardinalities of real and
natural numbers was by (a) induction; (b) diagonalization;
(c) construction; (d) statistical methods; (e) none of these
8.
A diagonal proof is by (a) induction; (b) contradiction;
(c) construction; (d) statistical methods; (e) none of these
9.
S is by convention (a) finite; (b) countable;
(c) uncountable; (d) a sequence; (e) none of these
10.
S* is (a) finite; (b) countable;
(c) uncountable; (d) an alphabet; (e) none of these
11.
S¥ is (a) finite; (b) countable; (c) uncountable;
(d) an alphabet; (e) none of these
12.
S* is (a) a number; (b) a symbol;
(c) an alphabet; (d) a language; (e) none of these
Incompleteness
1.
Gödel’s theorem was proven in the ___ century
(a) 18th; (b) 19th; (c) 20th; (d) 21st; (e) none of
these
2.
A logical system in which no false assertion can be
proven is (a) consistent; (b) complete; (c) ambiguous;
(d) paradoxical; (e) none of these
3.
A logical system in which every true assertion can be
proven is (a) consistent; (b) complete; (c) ambiguous;
(d) paradoxical; (e) none of these
4.
Gödel numbers (a) are cardinalities; (b) are
reals; (c) encode assertions; (d) encode programs; (e) none of
these
5.
Gödel’s incompleteness theorem was proven by
(a) induction; (b) diagonalization; (c) construction;
(d) statistical methods; (e) none of these
Coinduction
1.
Induction is used to define (a) branch control
structures; (b) finite objects; (c) infinite objects; (d) finite
sets; (e) none of these
2.
Coinduction is used to define sets of (a) branch
control structures; (b) finite objects; (c) infinite objects;
(d) finite sets; (e) none of these
3.
A coinductive definition has no (a) base case;
(b) inductive case; (c) endpoint; (d) purpose; (e) none of
these
4.
Coinduction may define sets of (a) numbers;
(b) programs; (c) proofs; (d) strings; (e) streams
5.
The wellfoundedness axiom states that the notion of a
set belonging to itself (a) is well-founded; (b) is meaningless;
(c) is doubtful; (d) is mandatory; (e) none of these
6.
S¥ is a set of (a) numbers; (b) symbols;
(c) strings; (d) streams; (e) none of these
Answers
Cardinalities
1.
b
2.
b
3.
b
4.
c
5.
c
6.
b
7.
b
8.
b
9.
a
10.
b
11.
c
12.
d
1.
c
2.
a
3.
b
4.
c
5.
b
Coinduction
1.
b
2.
c
3.
a
4.
e
5.
b
6.
d
See also
printed sheet with several questions.
1.
Deterministic finite automata
1.
In our discussion of DFAs, d is (a) a function;
(b) an alphabet; (c) a symbol; (d) a string; (e) none
of these
2.
In our discussion of languages, l is (a) a function;
(b) an alphabet; (c) a symbol; (d) a string; (e) none of
these
3.
In our discussion of languages, S is (a) a function; (b) an
alphabet; (c) a symbol; (d) a string; (e) none of these
4.
The reflexive transitive closure of d maps
from (a) states to states; (b) states and symbols to states; (c) states
and strings to states; (d) states and symbols to symbols; (e) none of
these
5.
All ___ languages are regular (a) known; (b) finite;
(c) infinite; (d) recursively definable; (e) none of these
6.
What is the language of this?

(a) CF but not regular; (b) 0*1*; (c) 1*0*; (d) (1+0)*
1*(0+1)*; (e) (1+0)1*0(0+1)*
1.
A DFA may be converted to a regular expression using
(a) induction; (b) a construction; (c) contradiction;
(d) compilation; (e) none of these
2.
The operations that form regular expressions are
concatenation, iteration, and (a) selection; (b) inversion;
(c) transposing; (d) negation; (e) none of these
3.
The operations that form regular expressions are
iteration, selection, and (a) concatenation; (b) inversion;
(c) transposition; (d) negation; (e) none of these
4.
The operations
that form regular expressions are concatenation, selection, and (a) iteration;
(b) inversion; (c) transposing; (d) negation; (e) none of
these
5.
A regular expression may be converted to a DFA using
(a) induction; (b) a construction; (c) contradiction;
(d) compilation; (e) none of these
6.
A regular expression (a) is a language; (b) is an
alphabet; (c) defines a language; (d) defines an alphabet;
(e) none of these
7.
The regular-expression meta-symbol ‘+’ stands for
(a) concatenation; (b) selection; (c) iteration;
(d) addition; (e) reversal
8.
The regular-expression meta-symbol ‘*’ stands for
(a) concatenation; (b) selection; (c) iteration;
(d) addition; (e) reversal
9.
The string “1100” is an element of the regular language
defined by (a) 0*1*0*;
(b) 0(0+1)*; (c) 1*0*1; (d) 1*010; (e) none of these
1.
NFAs accept (a) not as many languages as DFAs;
(b) more languages than DFAs; (c) the same languages as DFAs;
(d) CFLs; (e) none of these
2.
An NFA may be converted to a DFA using
(a) induction; (b) a construction; (c) contradiction;
(d) compilation; (e) none of these
3.
NFAs accept what kind of transition not accepted by
DFAs? (a) a;
(b) d;
(c) l;
(d) p;
(e) q
4.
A NFA’s transition function returns (a) a Boolean;
(b) a state; (c) a set of states; (d) an edge; (e) a number
5.
The proof that the concatenation of regular languages
is regular is by construction of a(n)
(a) alphabet; (b) DFA; (c) language; (d) NFA;
(e) program
6.
DFAs recognize ____ languages compared to NFAs
(a) fewer; (b) more; (c) the same; (d) no; (e) all
7.
The proof that for every NFA there is aDFA that
recognizes the same language is by (a) contradiction; (b) induction;
(c) construction; (d) diagonalization; (e) none of these
8.
The subset construction creates a DFA whose states are
(a) Booleans; (b) numbers; (c) strings; (d) sets of NFA
states; (e) none of these
9.
The subset construction shows that every NFA accepts a
(a) string; (b) function; (c) regular language;
(d) context-free language; (e) decidable set
1.
The Pumping Lemma (a) holds that certain languages
are not regular; (b) is used in proofs that certain languages are not
regular; (c) is a corollary to theorems about regular languages;
(d) is a hypothesis; (e) is an open research question
2.
The Pumping Lemma is used to show that a certain
language is (a) regular; (b) finite; (c) infinite; (d) not
regular; (e) none of these
3.
We “pump out” of the possibility that a language is
regular using (a) a regular expression; (b) the idea of a loop on a
DFA; (c) the fact that the language is finite; (d) the idea of a
branch; (e) none of these
4.
To show that a language is not regular we may use (a) the
Pumping Lemma; (b) diagonalization; (c) induction;
(d) construction; (e) NFAs
5.
The Pumping Lemma uses repetition of (a) while
loops; (b) inputs; (c) substrings that return a DFA to the same state;
(d) numbers; (e) none of these
6.
Regular languages are closed under (a) union and
intersection; (b) union but not concatenation; (c) concatenation but
not intersection; (d) concatenation but not reversal; (e) complement
but not union
7.
For any DFA (a) a minimal version does not exist; (b) a minimal version exists
but cannot be computed; (c) an algorithm exists to derive the minimal
version; (d) a variety of designs for a minimal version exist;
(e) minimality is a meaningless concept
8.
DFA minimalization uses ___ states (a) unreachable;
(b) duplicate; (c) distinguishable; (d) indistinguishable;
(e) unique
9.
For any regular language there exists (a) an
optimal DFA; (b) a unique minimal DFA; (c) a unique maximal DFA;
(d) no unique DFA; (e) none of these
1.
DFAs are used to construct (a) symbol tables; (b) lexical
analyzers; (c) parsers; (d) optimizers; (e) code generators
2.
A lexical analyzer recognizes (a) grammar rules;
(b) numbers; (c) tokens; (d) correctness; (e) type errors
3.
An identifier is recognized by a (a) parser; (b) lexical
analyzer; (c) minimizer; (d) subset construction; (e) pumping
lemma
4.
Lexical analysis is done by (a) table lookup;
(b) parsing; (c) a PDA; (d) a DFA; (e) a Turing machine
1
. Deterministic finite automata
1.
A
2.
D
3.
B
4.
C
5.
B
6.
E
1.
B
2.
A
3.
A
4.
A
5.
B
6.
C
7.
B
8.
C
9.
A
1.
C
2.
B
3.
C
4.
C
5.
D
6.
C
7.
C
8.
D
9.
C
1.
B
2.
D
3.
B
4.
A
5.
C
6.
A
7.
C
8.
D
9.
B
1.
B
2.
C
3.
B
4.
D
1. (a)
What is this a diagram of? (b) What language does it accept?.

2. What
are nondeterministic automata good for?
3. Design
a finite automaton that recognizes the language (01 | 100)*(0 | 1*).
4. Use
the Pumping Lemma to show that the language consisting of strings in which the
number of 0s is greater than the number of 1s is not regular.
5. Using
diagrams, construct DFAs that recognize the following languages. Supply also in proper notation, one element
of d
for each.
(a) Binary numerals divisible by 4
(b) Real numbers (i.e., with an optional decimal point
6. What
proof method is used when Pumping Lemma is used?
7. Defend
or refute: “Nondeterministic automata are of great practical use.” Give
examples
8. Design
a finite automaton that recognizes the language (01 | 100)*(0 | 1*)
9. Use
the Pumping Lemma to show that the language consisting of strings in which the
number of 0s is greater than the number of 1s is not regular.
10. Using
both a tuple and a diagram, define a finite automaton that recognizes the
language (01)*.
11. Explain
why a finite automaton does or does not correspond to a graph.
12. Design
a finite automaton that recognizes the language
(0* + 1)0.
13. Use
the Pumping Lemma to show that the language consisting of strings that are
palindromes is not regular.
14. How
are nondeterministic finite automata useful?
15. Diagram an NFA that recognizes (01)*(0 + 11)
16. Using
both a tuple and a diagram, define a finite automaton that recognizes the
language
a. (00 + 1)*2
b. (0* + 1)0
c. 01*0
d. of Java relational operators
(==,
>=, <=, <, >, !=)
17. Given d of {
… }, what state does DFA M = áQ, S,
d, q0, Fñ
go into on input 101?
18. What is the union of the following languages?
L1 = {0, 00, 000}, L2 = {00, 01, 10, 11 }
19. What is the intersection of the languages listed in
the previous problem?
20. What is the intersection of the language whose elements
begin with 0 and the language (0+1)1*?
21. What does an edge in a DFA’s diagram represent?
Explain in one sentence.
22. Draw a DFA or NFA that recognizes
(1
+ 00*) (01*)*
23. Using
both a tuple and a diagram, define an automaton that recognizes the
language (0* + 1)0
24. Write
a regular expression for strings that have an odd number of zeroes.
25. Design
a finite automaton that accepts words that do not end with “01”.
26. Design
a finite automaton that recognizes the language (01 | 10) (0 | 1)*,
showing your work.
27. Use
the Pumping Lemma to show that the language 0n12n
(strings with a certain number of 0’s followed by twice as many 1’s) is not
regular. Include a restatement of the Pumping Lemma.
28. Convert
the following NFA to a DFA.

29. Use
the Pumping Lemma to show that the language consisting of strings that are
palindromes is not regular.
30. What
is an application of DFAs in program compilation?
31. Cohen:
pp. 49-50, #2-18
pp. 71-75, #1-19
p. 145, #14
pp. 185-186, #1-19
p. 203, #1-19
32. (a) Construct an NFA that recognizes strings that start and
end with 1 and have an even number of bits.
(b) Write a regular expression for this language.
33. Design
a nondeterministic finite automaton that recognizes the language (0* + 1)* 0.
34. Write
a regular expression and design a corresponding NFA that accepts strings whose
third-last symbol is 1.
35. Show
a regular expression and an NFA
for the language of all strings over {0,1} that contain a 00.
36. Describe
in plain English the language associated with the regular expression
(0 + 11)*
37. Convert
to a DFA and give regular expression:

38. Show
by the Pumping Lemma that 0n10n
is not regular.
39. Let A be a DFA and q a particular state of A,
s.t. d(q, a) = q for all inputs a. Prove
by induction on the length of the input that for all input strings w, d*(q,w) = q. (Hopcroft et
al., p. 54)
See
printed sheet with several questions.
1.
Pushdown automata
(a) accept the decidable languages; (b) accept the context-free
languages; (c) have finite storage; (d) are less expressive than
DFAs; (e) none of these
2.
The context-free
languages are recognized by (a) their alphabets; (b) finite automata;
(c) pushdown automata; (d) a Turing machines;
(e) random-access machines
3.
A pushdown automaton may
have (a) more states than a finite automaton; (b) random-access
memory; (c) an infinite alphabet; (d) a stack; (e) faster
transitions
4.
A pushdown automaton has
(a) a finite number of configurations; (b) fewer configurations than
a DFA; (c) an infinite number of configurations; (d) a queue;
(e) a tape
5.
In PDAs, d is (a) a state; (b) a set of states; (c) a relation;
(d) a function; (e) a stack alphabet
6.
In PDAs, S is (a) a state; (b) a set of states;
(c) a relation; (d) a function; (e) an alphabet
7.
In PDAs, Q
is (a) a state; (b) a set of states; (c) a relation;
(d) a function; (e) a stack alphabet
8.
In PDAs, G is (a) a state; (b) a set of states;
(c) a relation; (d) a function; (e) a stack alphabet
9.
In PDAs, q0 is (a) a state;
(b) a set of states; (c) a relation; (d) a function;
(e) a stack alphabet
10. DFAs are _____ PDAs (a) as expressive as; (b) less
expressive than; (c) more expressive than; (d) more complex than;
(e) less complex than
11. What does a PDA have that a DFA does not? (a) states; (b) input
alphabet; (c) tape; (d) stack alphabet; (e) all of these
12. The standard proof that all RLs are CF is by
(a) induction; (b) construction; (c) contradiction;
(d) diagonalization; (e) introspection
13. All regular languages are (a) finite;
(b) context free; (c) infinite; (d) all of these; (e) none
of these
14. The greater expressive power of PDAs compared to DFAs
is due to (a) the set of states; (b) recursive productions; (c) the
stack; (d) nondeterminism; (e) none of these
1. Context-free
languages are (a) a subset of regular languages; (b) a superset of
regular languages; (c) a superset of decidable languages;
(d) accepted by DFAs; (e) none of these
2. A CF grammar generates a language (a) requiring
a Turing machine to accept it; (b) accepted by a DFA; (c) accepted by
a PDA; (d) that is uncountable; (e) none of these
3. The
set of all nested sequences of balanced parentheses is (a) a string;
(b) a regular expression; (c) a regular language; (d) a
context-free language; (e) a finite language
4. A
context-free language is characterized by a set of _______ rules (a) regular; (b) regular and
irregular; (c) an infinite number of; (d) alphabets as; (e) terminal
and nonterminal
5. An
element of a context-free grammar that requires definition in terms of other
elements is (a) a leaf; (b) a terminal; (c) a regular
expression; (d) a nonterminal; (e) a production
6. Recursiveness
is often found in (a) productions in a context-free grammar;
(b) regular expressions; (c) pushdown automata; (d) DFAs;
(e) none of these
7. PDAs
___ CFGs (a) can be constructed from; (b) are the same thing as;
(c) have little relationship with; (d) generate; (e) accept
8. PDAs
___ CFLs (a) can be constructed from; (b) are the same thing as;
(c) have little relationship with; (d) generate; (e) accept
1. Derivations
apply (a) regular expressions; (b) CFG production rules;
(c) proof rules; (d) definitions of DFAs; (e) none of these
2. The
standard proof that all CFGs generate CFLs is by (a) induction; (b) construction;
(c) contradiction; (d) diagonalization; (e) introspection
3. The
standard proof that any CFL can generated by some CFG is by (a) induction;
(b) construction; (c) contradiction; (d) diagonalization;
(e) introspection
4. The
start symbol in a CFG (a) is a terminal; (b) is on the left side
of a production rule; (c) is on the right side of a production rule;
(d) is a production rule; (e) none of these
5. A
parse tree is yielded by (a) a grammer; (b) an input string;
(c) a PDA; (d) a CF grammar and an input string; (e) a regular
expression and an input string
6. A
derivation begins with (a) a parse tree; (b) a string; (c) a
production rule; (d) a terminal; (e) a PDA
7. A
derivation yields (a) a parse tree; (b) a grammar; (c) a
production rule; (d) a terminal; (e) a PDA
1. A
proof that a language is not context free is often by (a) induction;
(b) construction; (c) contradiction; (d) diagonalization; (e) the
Pumping Lemma for CFLs
2. If
S
is an alphabet and S is a start
symbol, then { w Î S*
| S Þ*G
w } is (a) a DFA; (b) a PDA; (c) the language generated
by a CF grammar; (d) the language generated by a regular expression;
(e) undecidable
3. The
set of languages defined by CF grammars is (a) the set of regular
languages; (b) finite; (c) the set of PDA-recognized languages;
(d) the set of decidable languages; (e) null
4. A
___ may be constructed from any PDA (a) DFA; (b) NFA; (c) CFG;
(d) regular expression; (e) none of these
1.
B
2.
C
3.
D
4.
C
5.
C
6.
E
7.
B
8.
E
9.
A
10.
B
11.
D
12.
B
13.
B
14.
C
1. B
2. C
3. D
4. E
5. D
6. A
7. A
8. E
1.
B
2.
B
3.
B
4.
B
5.
B
6.
C
7.
A
1.
E
2.
C
3.
C
4.
C
1. Explain the relationship between a language and a
pushdown automaton.
2. Explain why all finite languages are context free.
3.
Explain what is meant by
(" L Í S*) Regular(L) Þ Context-Free(L),
and why it is true.
4.
What operations can a PDA perform that a DFA cannot?
5.
Write a derivation tree for
S ® Xa | aX | SX
X ® aY | Ya
Y ® ab | ba | l | YY
and each of the following strings:
(a) abbb; (b) aaba; (c) abab; (d) baab; (e) baaab
6. List differences and similarities between the DFA and
the PDA models of computation. Give an example of how a stack is needed to
recognize a non-regular language such as the one in HW3, #3.
7. (a) In plain terms, state what language is generated
by the CFG
S ® 0 X 0 | 1 X 1
X
® 0 | XX
(b) Perform a derivation using a 7- or 8-character string that you know is in
the language and that is formed using all the productions.
8. Write a context-free grammar to specify the language
consisting of all bit strings that have twice as many 0’s as 1’s.
9. Write a derivation tree for the string 10001, given
the following:
S
® 0X0 | 1X1
X
® 0 | 1 | l
10. Define a CF grammar for the
following,and explain your design briefly:
(a) { x | n0(x) = n1(x)
} (equal 0’s and 1’s)
(b) Palindromes
(c) Balanced parentheses
(not only ((())) but also ()(()())
etc)
(d) 0n12n
(e) {xx | x Î å}
11. Given the following:
S
® 1X
| 1S
X® 0 | 0X
(a) What is the above 2-line entity
called?
(b) What do these entities define in
general?
(c)What are the components of the above entity called and how many are there?
(d) What particular set of (b) does the entity define, precisely?
(e) Write a derivation tree to show that 1100 is in the set defined by the
entity.
12. Prove by construction of a
CFG that if L1, L2 Î CFL, then (L1 È L2) is CF. Discuss.
13. RPN
challenges :
a. Write a CF grammar for the set of all Reverse Polish Notation expressions.
b.
Define a PDA that accepts RPN expressions.
c. Is RPN a regular
language? If so, write a regular expression for it; otherwise show that it is not regular.
d.
Design a finite or pushdown transducer
(PDT) that evaluates RPN expressions (OK for output to be in unary notation). A
PDT is a PDA that also outputs a string at each transition:
d : Q ´ Sin ´ G È {l} ® Q ´ G È {l} ´ Sout.
1. The
Turing machine model is said to capture (a) regular languages;
(b) interaction; (c) efficient computation; (d) algorithmic
computation; (e) all of these
2. A
TM is distinguished from DFAs and PDAs by (a) a set of states; (b) a
stack; (c)
3. A
TM has ____ memory (a) random-access; (b) limited; (c) unbounded;
(d) stack; (e) queue
4. A
TM (a) lacks an alphabet; (b) has tape instead of states;
(c) can compute any mathematical function; (d) stores data on a tape;
(e) none of these
5.
Each computation step on a TM may (a) read many
symbols; (b) make several transitions; (c) move the tape head left or
right; (d) push the stack; (e) none of these
6.
When does a TM halt? (a) at end of input; (b) when
it enters an accept or reject state; (c) in finite time; (d) never;
(e) none of these
7.
A TM configuration is determined by (a) most
recent input; (b) most recent state; (c) tape contents; (d) state
and tape symbol under head; (e) state and tape contents
8.
A TM computation is a sequence of (a) tape
symbols; (b) states; (c) configurations; (d) transition function
values; (e) none of these
9.
A TM that halts on all inputs (a) does not exist;
(b) computes a partial function; (c) computes a total function; (d)
terminates early; (e) none of these
10.
A nonstandard variant of the TM has ___ tape(s)
(a) no; (b) one; (c) two; (d) infinite; (e) none of
these
11.
A ____ TM simulates any TM (a) universal;
(b) halting; (c) PDA; (d) one-tape; (e) none of these
12.
The universal TM corresponds to (a) a PDA; (b) a stored-program computer; (c) a general-purpose DFA;
(d) all TMs; (e) none of these
1. Any
computable function can be computed on some (a) DFA; (b) NFA;
(c) PDA; (d) Turing machine; (e) none of these
2.
Decision problems are equivalent to functions that
return (a) natural numbers; (b) strings; (c) truth values;
(d) Turing machines; (e) none of these
3.
Every regular language is (a) finite;
(b) uncountable; (c) TM-decidable; (d) undecidable;
(e) none of these
4.
Every context-free language is (a) finite;
(b) uncountable; (c) TM-decidable; (d) undecidable;
(e) none of these
1. The
Halting Problem involves (a) testing a TM to see if it halts; (b) determining
from the structure of the TM whether it halts; (c) determining how to
change the transition function of a TM to cause it to halt; (d) determing
what inputs halt a TM; (e) none of these
2. The
standard proof that the Halting Problem is undecidable is by
(a) induction; (b) indirection; (c) contradiction;
(d) indirection; (e) none of these
3.
Turing reducibility means (a) two models of
computation are equivalent; (b) one model of computation is more
expressive; (c) problem B is undecidable if problem A is
undecidable and reducible to B; (d) problem B is undecidable
if problem A is undecidable and B is reducible to A;
(e) none of these
4.
The Halting Problem is (a) decidable; (b) an example
of a language that no TM accepts; (c) a m-recursive function;
(d) a machine; (e) none of these
5.
Which is decidable? (a) DFA A accepts the
language generated by regular expression E; (b) TM M halts
on blank input; (c) TM M accepts the language generated by regular
expression E; (d) program P in the S language says “arf” on
input “meow”; (e) all of these
1.
A recursively enumerable set
is (a) a m-recursive function; (b) DFA recognizable; (c) TM
recognizable, but no TM necessarily halts to reject non-members of the r.e.
set; (d) accepted by a PDA; (e) none of these
2.
A semi-decidable language is (a) regular;
(b) context-free; (c) recursive; (d) recursively enumerable;
(e) none of these
3.
Some undecidable languages are (a) regular;
(b) context-free; (c) recursive; (d) recursively enumerable;
(e) none of these
4.
Not all non-elements of a semi-decidable language are
___ by a recognizer TM (a) accepted; (b) rejected; (c) generated;
(d) output; (e) none of these
5.
If both a language and
its complement are recursively enumerable, then the language is (a) regular;
(b) decidable; (c) context-free; (d) empty; (e) universal
6.
Unrestricted grammars generate languages accepted by
(a) Turing machines; (b) linear bounded automata; (c) DFAs;
(d) PDAs; (e) random access machines
1.
The Church-Turing thesis associates the TM with (a) regular
languages; (b) parsing; (c) lexical analysis; (d) algorithms;
(e) interaction
2.
The Church-Turing Thesis refers to (a) a formalization
of an intuitive notion; (b) a theorem; (c) provable;
(d) disprovable; (e) a paper written at Harvard
3.
According to the Chomsky hierarchy (a) RL Ì CFL; (b) CFL Ì RL; (c) HALT is decidable;
(d) DFAs accept all recursive sets; (e) PDAs can decide the Halting
Problem
4.
TMs (a) are
interactive; (b) always halt; (c) perform input alternating
with output; (d) mimic Internet servers; (e) mimic command-line
environments
1.
D
2.
D
3.
C
4.
D
5.
C
6.
B
7.
D
8.
C
9.
C
10.
D
11.
A
12.
B
13.
9. D
10. C
11. C
12. C
1. B
2. C
3. C
4. B
5. A
1. C
2. D
3. D
4. B
5. B
6. B
1. D
2. A
3. A
4. E
1. How
does a TM differ from a PDA in its input, output, and storage?
2. What
three actions are specified by the TM’s transition function?
3. Explain
why any language recognized by a DFA must also be recognized by some TM.
4.
Compare and
contrast the diagonal proofs by Cantor (cardinality of reals is greater than
that of natural numbers) and Turing (some problems are uncomputable). What
basic proof method do they share?
5. What
is the term for the relationship of problem A
to problem B, when we can show that a
solution to problem B would provide
us with a way to solve problem A?
6. What
is the term for the relationship of problem A
to HALT, when we can show that a solution
to problem A would provide us with a
way to solve HALT? What can we say
about A?
7. Suppose
it were proven that problem P1 is undecidable. How might this
fact be used to show that problem P2 is undecidable?
8. Write
(as a diagram or table) the definition of a Turing machine that will add a
binary numeral to a unary numeral (tally, i.e., 11=2, 111=3, etc.), yielding
binary output. Document by describing the purpose of each loop. As test
results, include JFLAP traces of a few test inputs.
9. Briefly
explain why no TM can solve the halting problem
10. Briefly
explain why no TM can solve the problem of whether a given TM halts on blank
input
11. Briefly
explain why no TM can solve the problem of whether a given TM halts on blank
input
12. Suppose
that if you had a solution to problem P,
you could use it to construct a solution to problem Q. Also suppose that you know that problem Q is undecidable.
(a) What can you say about problem P?
(b) What is the relationship between P and Q called?
(c) Give an example of the above as discussed in this course.
(d) Briefly explain why no TM can solve the problem of whether a given TM
recognizes the language ____
(e) What TMs solve semidecidable problems?
1. TM Construction
Write (as a diagram or table) the definition of the following Turing
machine corresponding to your group number. Document by describing the purpose
of each loop. If you use JFLAP, include as test results JFLAP traces of a few
test inputs.
1. add a binary numeral to a unary numeral (tally, i.e., 11=2, 111=3, etc.),
yielding binary output. Use '+' to separate the two parts of the input. For
input 100+11 (4+3), output should be 111 (7).
2. Binary to twos-complement converter
3. unary to binary converter
4. Unary to unary adder
5. unary to unary subtracter
6. logical OR for two 1-bit inputs
7. logical
8. logical OR for multiple-bit input
9. logical
10. count 0's in input, display as unary numeral
2.
Discuss how
Rice’s theorem is valid with respect to two models of algorithmic computation.
Why is it valid under both models?
3. Prove,
by referring to a well-known theorem, that
{P | P is the code of a program whose first
output is “meow” on input “arf” }
is undecidable.
1. Random-access machines and the S language
1. TM-computable
functions are the same as those computable on a (a) DFA; (b) PDA; (c) random-access
machine; (d) control device; (e) none of these
2. The S
language implements which model?
(a) DFA; (b) PDA; (c)
3. Unlike
TMs, random-access machines have
(a) tape; (b) stack; (c) queue; (d) addressable
storage; (e) hard disk
4. The
S language outputs (a) natural numbers;
(b) real numbers; (c) symbols; (d) strings; (e) none of
these
5. In
the S language, input (a) occurs many times
during a computation; (b) is the values of X variables at the start of computation; (c) is of string
form; (d) may follow output; (e) none of these
6. The
7. A
universal program in the S language
(a) compiles to byte code; (b) is an interpreter as seen on a
browser; (c) accepts encodings of other S language programs as inputs; (d) is a
Turing machine; (e) solves even undecidable problems
1. The
set of TM-computable functions is the same as the set of (a) those
computable on a DFA; (b) those computable on a PDA; (c) m-recursive
functions; (d) control device; (e) none of these
2. Recursively
definable functions are equivalent to ___ as a model of computation
(a) DFAs; (b) PDAs; (c) TMs; (d) all of these;
(e) none of these
3. The
___ function is not a basic primitive
recursive function (a) factorial; (b) zero; (c) successor;
(d) projection; (e) predecessor
4. One
computable operation on primitive recursive functions is (a) inverse;
(b) search; (c) composition; (d) integration; (e) none of
these
5. Obtaining
a function by primitive recursion is a way to show that the function is
(a) continuous; (b) a predicate; (c) computable;
(d) uncomputable; (e) none of these
6. The
result of minimalization of a primitive recursive function is
(a) primitive recursive; (b) computable; (c) minimal;
(d) undecidable; (e) none of these
1. The
observation that Turing machines and S language
programs compute the same functions corresponds most strongly to (a) Cantor’s proof;
(b) Gödel’s theorem; (c) the Church-Turing thesis; (d) Rice’s
theorem; (e) none of these
2. The
proof that any S language
program computes a Turing-computable function is (a) diagonal; (b) by
construction; (c) by contradiction; (d) inductive; (e) none of
these
3. The
proof that any Turing machine computes an S language computable function is (a) diagonal; (b) by construction;
(c) by contradiction; (d) inductive; (e) none of these
1. Random-access machines and the S language
1. C
2. C
3. D
4. A
5. B
6. C
7. C
1. C
2. C
3. A
4. C
5. C
6. B
1. C
2. B
3. B
1. Write
a program in the S language that takes two inputs and outputs
the difference; if the second number is greater, output zero.
2. How
is the S language similar to two languages, very
different from each other, that you have studied in computer science?
3. Write
an S -language program that takes three inputs, a,
b, c, and outputs a ´
b ¸
c. You may use macros for variable assignment, unconditional jump, jump
on zero, addition, and subtraction.
4. State
the relationship between primitive recursion, algorithmic computability, and
the
5. Use
the computability of addtion to show that multiplication is S –computable.
6. Use
the computability of decrementing to show that subtraction is S –computable.
7. Use
the computability of multiplication to show that finding the smallest x
such that x3 is odd is
S –computable.
8. Show
by construction, with respect to the
9. Explain
why we can say the same as the previous question says with respect to the model
of computation provided by recursive function theory.
10. Distinguish
primitive recursion from m-recursion.
11. Distinguish
primitive recursion from composition.
12. What
statement in the S language enables looping and how?
13. Explain
the notion of composition in
recursive function theory.
1.
Write a program in the S language that
a)
takes the input x
and outputs 1 if.x = 0, otherwise outputs 0.
b) takes
the input x and
outputs 1 if.x > 0,
otherwise outputs 0.
c) takes
inputs x1, x2, and outputs 1 if.x1 ³ x2 , otherwise outputs 0.
d) takes
two inputs (x1, x2)
and outputs.( x1 - x2).
e)
takes two inputs (x1,
x2) and outputs.( x1 x2) (multiplication).
f) takes
two inputs (x1, x2) and outputs.(x1
/ x2) (division).Very briefly distinguish the
1. The
Von Neumann architecture is associated with (a) algorithms;
(b) interaction; (c) parallelism; (d) serial computing;
(e) multi-core computing
2. Algorithms
(a) compute functions; (b) provide services; (c) accomplish
missions in multi-agent systems; (d) may execute indefinitely;
(e) none of these
1. Persistent
Turing machines are said to model (a) sequential interaction;
(b) multi-stream interaction; (c) parallel computation;
(d) distributed computing; (e) none of these
2. Sequential
interaction is associated with (a) providing a service;
(b) non-termination; (c) dynamic input during computation;
(d) persistence of state; (e) all of these
3. Finite
transducers extend (a) DFAs; (b) PDAs; (c) TMs; (d) RAMs;
(e) none of these
4. A
Mealy machine has a (a) regular language; (b) stream language;
(c) finite language; (d) context-free language; (e) decidable
language
5.
Interactive observable behavior is
associated with (a) natural numbers; (b) strings; (c) sets of
strings; (d) sets of streams; (e) none of these
6. The persistent Turing machine is a model of (a) table lookup; (b) algorithmic
computing; (c) sequential interaction; (d) multi-stream interaction;
(e) adaptation
7. It
is claimed in the course material that the persistent
Turing machine is ____ the Turing machine (a) less expressive than;
(b) as expressive as; (c) more expressive than; (d) more
efficient than; (e) less efficient than
8. It
is claimed in the course material that the persistent
Turing machine is ____ the random-access machine (a) less
expressive than; (b) as expressive as; (c) more expressive than;
(d) more efficient than; (e) less efficient than
9. The
persistent Turing machine augments the Turing machine
with (a) algorithmic computational power; (b) storage that
lasts between I/O steps; (c) more states; (d) more operations;
(e) none of these
10. Finite transducers (a) compute the same
functions as DFAs; (b) compute the same functions as TMs; (c) have
stream I/O behavior; (d) have finite input and output; (e) none of
these
11. A
feature of algorithmic computation is (a) alternation of input and output;
(b) processing before input; (c) output before processing; (d) input,
then processing, then output; (e) none of these
12. A
feature of algorithmic computation is finite (a) input; (b) output;
(c) processing; (d) input, output, and processing; (e) none of
these
13. Reactive
systems (a) compute functions; (b) provide services;
(c) accomplish multi-agent missions; (d) execute only finitely;
(e) none of these
14. I/O
in reactive systems is (a) static; (b) dynamic; (c) finite;
(d) constrained; (e) none of these
15. Interaction
is distinguished from algorithmic computation by the presence of
(a) finite input; (b) persistent state; (c) input;
(d) processing; (e) none of these
16. A
mutual causal effect between two agents occurs in all (a) interaction;
(b) algorithms; (c) communication; (d) computing; (e) none
of these
17. Synchrony
entails (a) communication; (b) taking turns; (c) input;
(d) autonomy; (e) none of these
18. Stream
I/O characterizes (a) interaction; (b) algorithms; (c) functions;
(d) O(1) processes; (e) none of these
19. Persistent
state stores (a) parameters; (b) loop invariants; (c) memory of
past interactions; (d) algorithmic computation; (e) none of
these
20. The
form of input/output in interactive computation is (a) static;
(b) finite; (c) streams; (d) strings; (e) none of
these
21. A service is characteristic of
(a) an algorithm; (b) an interactive process;
(c) a multi-agent system; (d) a parallel system; (e) none
of these
22. UML
is required to specify (a) functional problems; (b) services;
(c) algorithms; (d) algorithmic inputs; (e) none of these
23. Mutual
causality characterizes (a) algorithms; (b) only directly-interacting
entities; (c) all interacting entities; (d) functions; (e) none
of these
1. Interaction
may be sequential or (a) algorithmic; (b) O(n); (c) multi-stream; (d) data-driven; (e) none of
these
2. A
mission is characteristic of
(a) an algorithm; (b) an interactive process; (c) a multi-agent
system; (d) a parallel system; (e) none of these
3. Indirect
interaction requires (a) mutual causality between entities that do not
interact directly; (b) message passing; (c) synchrony;
(d) static I/O; (e) none of these
4. Stigmergy
is (a) algorithmic computing; (b) direct interaction; (c) indirect
interaction; (d) multi-stream interaction; (e) none of these
1. Serial
computing is the same as (a) concurrency; (b) parallelism;
(c) distributed computing; (d) single-core; (e) none of
these
2. Parallel
computing is a kind of (a) concurrency; (b) Von Neumann architecture;
(c) serial paradigm; (d) single-core computing; (e) none of
these
3. A
thread simulates (a) ownership of all resources; (b) ownership of a
CPU; (c) ownership of data; (d) an array; (e) none of these
4. PRAM
is (a) a model of serial computing; (b) a kind of memory; (c) a
model of parallel computing; (d) a greedy algorithm; (e) none of
these
5. Process
algebras assume communication by (a) packet; (b) indirect
interaction; (c) bus; (d) message passing; (e) none of these
6. PRAM
assumes that memory is (a) all distributed; (b) shared;
(c) infinite; (d) magnetic; (e) none of these
7. Concurrent
write is as opposed to ___ write (a) serial; (b) automatic;
(c) shared; (d) exclusive; (e) none of these
8. The
standard model for parallel computing is (a) CRCW; (b)
9. SIMD
assumes that all CPUS execute ___ instructions (a) the same;
(b) different; (c) pipelined; (d) cached; (e) none of
these
10. SIMD
assumes that all CPUS operate on ___ data (a) the same; (b) different;
(c) pipelined; (d) cached; (e) none of these
11. A
distributed algorithm runs on (a) a single processor; (b) a
parallel-processing system; (c) multiple independent processors;
(d) web pages; (e) none of these
1. D
2. A
1. A
2. E
3. A
4. B
5. D
6. C
7. C
8. C
9. B
10. C
11. D
12. D
13. B
14. B
15. B
16. A
17. B
18. A
19. C
20. C
21. B
22. B
23. C
1. C
2. C
3. A
4. C
1. D
2. A
3. B
4. C
5. D
6. B
7. D
8. C
9. A
10. B
11. C
1. Is interaction more powerful than algorithms? Give
reasons why and why not.
2. What is a cellular
automaton? Relate this to human biology.
3. Describe the inputs,
outputs, and connectivity of a neuron. How does a neural net learn?
4. Describe a controversy
relating to the modeling of interactive computation.
5. Describe the case presented
in class that the Persistent Turing machine is a more expressive model of computation
than the Turing machine.
6. Describe an interactive
model of computation (better, two such models).
7. What is a transducer, and
what sort of behavior is associated with one?
8. Draw a transducer that
always outputs a 1 on input 0, and a 0 on input 1.
9. Define the following and relate to parallel or
distributed computing:
a. Java threads
b. CRCW
c. SIMD
d. Cellular automata
e. Neural networks
f.
Sensor networks
g. Mesh architecture
h. PRAM
i.
Cache coherency
10. For the terms below, (a) give a definition; (b) give
examples of models; (c) distinguish from the other terms in the list; (d)
describe the role of synchrony/asynchrony if it applies
a. concurrency
b. parallelism
c. distributed processing
d. sequential interaction
e. multi-stream interaction
f.
algorithm
execution
g. coordination
1. What
is the term for computation in which more than one computing entity executes at
the same time? Give some general subcategories of this kind of computation.
2. Distinguish
the Persistent Turing Machine from the Turing Machine and from finite
transducers.
1. What
is the connection among languages, models of computation, and decision
problems?
2. Why
are Cantor’s Godel’s, and Turing’s proofs similar? Begin by stating briefly the
assertions proven by these proofs. Refer to proof methods.
3. Give
at least two examples from this course of proofs by
(a) diagonalization
(b) construction
4. What
were some of the different meanings of d in our classroom?
5. In
the language theory we used, as applied to different automata models,
distinguish Æ,
l,
and b/
(a.k.a. ‘#’).
1. Describe and compare the
following languages, with reference to automata discussed in this course
(a) {0m1n | m ¹ n}
(b) { P | P is the code for an S -language
program that halts }
(b) 11*(0|11)*
(c) {xx | x ÎS*}
2. Explain
how your research project will relate to one or more of the core topics of the
course, including specifics.
3. Describe
the model of computation that would correspond best to the work you did in your
research project. If your research project was itself about a model of
computation, say so and relate it to at least one other model.
4. What
are the common elements among the transition-system-based models that we
discussed?
5. Suppose
you wished to show that there is no one-to-one correspondence between
two sets of sequences observable in some computational or mathematical context.
What approach would you use? Give an example.
6. (a)
What is this? (b) Characterize its observable behavior.

7. What
does this say?

8. Distinguish
among l,
Æ,
and b/, as used in the course.
9. Distinguish
among S,
S*,
and S¥
as used in the course, with examples.
10. What
computational issues arise in speech recognition?
11. Would
you use formal proof, simple counter-example, or evidence to
argue for the following? Explain.
a. the Church-Turing thesis
b. cellular automata are computationally
equivalent to Turing machines
c. a given language is not regular
d. Kleene’s theorem
e. a given DFA does not accept the language
defined by a given regular expression
f. neural nets are computationally equivalent to
Persistent Turing machines
12. Which
of the following are sets, sequences, languages, or sets of languages?
(The categories may be overlapping) Give examples of each.
a. all CFLs
b. an alphabet
c. all Z accepted by a particular DFA M
d. a single item accepted by a particular DFA M
13. Give
an examples of each of the following and relate it to some model of
computation:
a. a finite sequence of symbols
b. a finite sequence of (input, output) pairs
c. a finite set of finite sequences
d. a set of sets of finite sequences
e. an infinite set of finite sequences
f. an infinite sequence
g. an infinite set of infinite sequences
14. The
following list of concepts relate to three major topics discussed in the
course. Arrange the terms into a three-column table and explain it:
regular expression
pushdown automaton
Turing machine
context-free language
recursive set
deterministic finite automaton
computable problem
regular language
context-free grammar
15. Which is, or is representable by, a (set, graph, language,
function, sequence)? Explain in one or two sentences.
a. a DFA
b. a finite transducer
c. what is computed by a DFA
d. what is accepted by a DFA
e. a PDA
f. what is computed by a PDA
g. what is accepted by a PDA
h. what is computed by a TM
i. what is accepted by a DFA
16. Which of the following halt (a)lways, (s)ometimes, or
(n)ever? For each category (a, s, n) state the general reason for
halting, sometimes halting, or never halting.
___ C++ programs
___ S-language programs
___ DFAs
___ PDAs
___ TMs
___ Transducers
___ Window 2000 GUI
17. State and explain the relationship among transducers,
Turing machines, and at least one of the following:
a.
Expert systems
b.
Cellular automata
c.
Video games
d.
Neural nets
e.
Voice-recognition systems
f.
Learning systems
g.
Compilers
18. Relate the computational power of the S language to the power of
DFAs and of Turing machines.
19. Name two ways in which a finite transducer differs from a
DFA, PDA, or TM.
20. What is the range of
d, for Turing machines?
What does this allow TMs to do that PDAs can’t do?
21. Does a transducer compute an algorithm? Why or why not?
22. What models of computation that we have discussed would be
model a learning agent and why?
23. What data structure does a PDA have that DFA lacks? Briefly explain.
24. In the context of this course, what does
d
: Q ´ G ® Q
´ G
È {L, R}
mean and what model uses it?
25. In the context of this course, what does
d
: Q ´ S
® Q
mean and what model uses it?
26. Why do you think that the following would not be considered
sufficient as an entry in a bibliographic reference list following a journal
paper?
http://www.cs.bu.edu/~anson/res/rl/nsf2002.pdf
27. What is this?
S
® SS | a | l
28. What sort of device accepts a language that can be
described by a grammar that consists of productions?
29. What sort of device accepts a language that can be
described by an expression that uses the +, *, and concatenation operators?
30. What is a regular expression and what sort of model of
computation is associated with it?
31. In a cellular automaton, what sort of rules apply?
32. What model of computation is considered equivalent in
expressiveness to a programming language such as C++?
33. In terms of discrete-mathematics categories such as sets,
sequences, functions, and languages, discuss the formal aspect of
transition-system-based models of computation (the classes of automata
discussed in our seminar). You may do this by specifying an instance of each
model as a tuple, M = á…ñ,
saying what set, sequence, function, or language each member of
the tuple stands for, and saying what sort of set, sequence, function, or
language is accepted or computed by the automaton.
34. Categorize the model below and specify what happens at each
step of the two computations that occur on inputs of baaa and aaba,
along with the results of these computations.
35. What language is accepted by this:

36. What is this and what model of computation corresponds to
it?
S
® SS
S
® a
S
® l
37. In the context of this course, what does
d
: Q ´ S
® Q
mean and what model uses it?
38. What two models that we discussed correspond to the notion
of algorithmic computability? Describe them in one or two sentences.
39. What famous open question is equivalent to the question of
whether the Satisfiability problem is tractable? What does “tractable” mean?
What topic in the course plan are we talking about here?
40. Give
language-related examples showing contexts in which l (empty string),
{} (null set), and b/ or #
(blank symbol) are used in this course, showing that they differ.
41. Explain what is meant by
("
L Í S*)
Regular(L) Þ Context-free(L),
and why it is true.
42. If language L is accepted by a Turing machine, then
is it necessarily context free? Explain the relationship between CFLs and
recursive sets, referring to the respective models of computation.
43. Relate the notions of interaction, Turing machines, and parallel computation.
44. How is artificial intelligence said to relate to models of
computation?
45. Comment on the assertion that intelligence is a process of
search.
46. In each category below, (a)ll halt, (s)ome, or (n)one. For
each, choose a, s, or n. State the general reason why all
halt, some halt, or none halt; this may relate to input, output, or
computation.
a. C++ programs d. PDAs
b. S-language programs e. TMs
c. DFAs f.
Transducers
47. In terms of discrete-mathematics categories such as sets,
sequences, functions, and languages, discuss the formal aspect of transition-system-based
models of computation (the main classes of automata discussed in our seminar).
You may do this by specifying an instance of each model as a tuple, M = á…ñ,
saying what set, sequence, function, or language each member of
the tuple stands for, and saying what sort of set, sequence, function, or
language is accepted or computed by the automaton. Use one of the
machines from your answers in part A as an example, if you wish.
48. Discuss at least one of the following from a computational
point of view and explain its relationship to DFAs, PDAs, transducers, or
Turing machines:
1. Expert systems
2. Cellular automata
3. Video games
4. Neural nets
5. Voice-recognition systems
6. Learning systems
7. Perceptrons
8. Persistent Turing machines
9. Compilers