CLASS NOTES
COT 4210
Discrete Structures II
© Dr. David A. Workman
[email protected]
School of Electrical Engineering and Computer Science
University of Central Florida
January 2001
(Revised August 2002)
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
COT 4210
Discrete Structures II
Workman
Introduction to Computation Theory and the Chomsky Hierarchy
Computer science is about the
theory
of computation
and computing devices
, not their
application
.
However, what
has made computer science so important in today’s society is that the computer is the most powerful and most
widely applicable tool mankind has yet devised.
The accomplishments of IBM’s “Deep Blue” against the world
chess master should underscore the power of this tool.
And, it begs the question whether or not the computer will
one day become the “perfect human.”
This is fantasy(?), but it is true that computers help humans “do things more
perfectly” and thus multiply the human intellectual power and potential.
Why study the theory of computation?
What are its benefits?
A theory identifies, encapsulates, abstracts and
generalizes the fundamental concepts, properties and principles governing the behavior of complex systems.
Theories are developed by studying many related examples or observable phenomena and then attempting to build
abstract models that explain the observed characteristics of those examples.
Models of a good theory have
predictive capabilities enabling the theoretician to deduce new properties and behaviors of the system being studied.
Theoretical models also provide a framework for analyzing and understanding completely different systems by
showing that the new system satisfies the axioms and assumptions necessary to apply the theory.
This is conceptual
reuse  reuse at the highest level of abstraction.
Theory, then, is knowledge in its most reusable form.
How can you reuse the theories presented in this course?
This course defines several classes of common and
frequently occurring computational problems together with the algorithms (abstract machine models) necessary to
solve them.
For some of these problems, the theory tells us how to construct the most “efficient” solutions
possible!
1
For other kinds of problems, the theory tells us that a solution of a given type does not exist  so don’t
bother to look.
Some concrete examples are:
•
Construct a program with the fewest number of statements that will recognize all and only valid numeric literals
in Java.
•
Construct a logic circuit with the fewest number of gates that will control a coin changer on a vending machine.
•
Construct an algorithm that will determine whether or not a source file contains syntactically correct Java code.
The algorithm must be O(n) in time complexity, where n is the length of the source file in bytes.
This is the end of the preview.
Sign up
to
access the rest of the document.
 Spring '08
 Staff
 Computer Science, Formal language, Contextfree grammar, regular languages, Chomsky hierarchy

Click to edit the document details