Sie sind auf Seite 1von 17

Introduction to Formal

Languages and Automata


Description:
The course introduces some fundamental concepts in
automata theory and formal languages including grammar,
finite automaton, regular expression, formal language,
pushdown automaton, and Turing machine. Not only do they
form basic models of computation, they are also the
foundation of many branches of computer science, e.g.
compilers, software engineering, concurrent systems, etc. The
properties of these models will be studied and various rigorous
techniques for analyzing and comparing them will be
discussed, by using both formalism and examples.
Course Objective
The objective of this course is to give
students a broad overview of the
theoretical foundations of Computer
Science, and to prepare students for the
study of topics that depend upon an
understanding of formal languages and
automata.
Prerequisite
The students are expected to have a strong
background in the
• fundamentals of discrete mathematics
(symbolic logic, set, induction, number
theory, summation, series,combinatorics,
graph, recursion, basic proof techniques,
etc.), algorithms and data structures. Some
knowledge of programming languages, and
computer architecture will be helpful.
Professional Information
Upon completing this course the student will have learned,
through appropriate classroom and laboratory experiences, the
following:
• This course will give an introduction to formal
languages and automata theory. automata and
formal languages appear (possibly in various
disguises) in almost every branch of computer
science.

• A formal language is a set of strings where a string


is a finite sequence of symbols. An example of a
formal language is the set of all ``syntactically
correct'' Pascal programs (accepted by a certain
compiler).
• A main problem that we will discuss is how to define an
infinite language in a finite way. A related problem is to
construct an algorithm that can decide whether a string
is in the language or not.
Both problems are of practical importance, for instance
for constructing compilers and design of programming
languages.
• At the end of the course we will introduce basics of the
theory of computability. In particular we show that there
exist uncomputable functions and that some tasks are
unsolvable (i.e. no algorithm exists).
• 2 – Intended Learning Outcomes (ILOs)
Knowledge and Understanding
• A1 Further develop ability to understand, apply and
prove precise mathematical claims using a range of
fundamental definitions from discrete math and formal
languages.
• A2 Demonstrate knowledge and understanding of formal
language and their applications
• A3 Detailed knowledge of foundational results for regular
languages and finite automata.
• A4 Knowledge of foundational results for context-free
languages and pushdown automata..
• A5 Some exposure to Turing machines and concept of
computability.
• A6 Ability to work individually on hard problems.
Skills and Other Attributes
• B1 Systematically apply knowledge of the formal
language and methods of related systems in
the identification and solution of the problems
• B2 Display sound judgment in the evaluation
and selection of methods and tools appropriate
for a given problem.
• B3 Analyzes and evaluate a range of options in
producing a solution to an identified problem.
• B4 Evaluate problems solution results from a
variety of sources
• B5 Critically assess the assumptions and values
of proposed approaches and the relationship
between theory and practice.
Professional Practice Skills
• C1 Systematically apply appropriate methods to
develop an algorithm o appropriate application
• C2 Apply new techniques in the planning and
implementation of the algorithms.
• C3 Knowledge of pushdown automata and the
correspondence theorem for pushdown
automata and context-free languages.
• C4 Ability to apply the Pumping Lemma for
context-free languages to show that a language
is not context-free.
• C5 Ability to apply basic definitions related to
Turing machines.
Required textbook:

• Linz, Peter. An Introduction to Formal


Languages and Automata, 4th Ed.
Sudbury, MA: Jones and Bartlett
Publishers, 2006. The publisher’s web site
for the textbook, which contains a link to
errata for the book,
is:http://www.jbpub.com/catalog/07637379
84/
Evaluation of Student
Performance:
• Student performance will be evaluated by
a combination of examinations, quizzes,
and programming projects.
Examinations:
• There will be one midterm exam and one
final exam. The midterm exam will cover
only material presented; the final exam will
be comprehensive.
Quizzes:
• There will be at least 10 weekly quizzes
during the semester in the section. These
normally will occur during the last ten minutes
in the section.
• If there are 10 + n quizzes, the lowest n quiz
scoresI will be dropped for each student’s. For
example, if we have 12 quizzes during the
semester, the lowest 2 quiz scores for each
student will be dropped.
Projects in section
• One or more programming projects will be
assigned during the semester. For each of the
projects, students usually will write a program to
implement some type of automaton, then
conduct an experiment with the program in order
to be able to draw some conclusions about the
performance of the automaton. The experiment,
its results, and your conclusion must be
presented in a written report. Within your paper
you must appropriately cite any sources you use
other than your own thoughts. The programs
must be written in C or C++.
Grading:

• Midterm exam is worth 30. The final


examination is comprehensive, and is
worth 70 points.
• Recommended Reading List:
• Brookshear, J. Glenn. Formal Languages, Automata and Complexity,
Addison Wesley.
• Cohen, Daniel I. A. Introduction to Computer Theory. 2nd Edition. John
Wiley & Sons, 1997
• Hopcroft, John E. and Ullman, Jeffrey D. Introduction to Automata Theory,
Languages, and Computation, Addison-Wesley, Reading, Massachusetts,
1979.
• Lewis, Harry R. and Christos H. Papadimitriou. Elements of the Theory of
Computation, Second Edition. Prentice-Hall, 1998
• Martin, John C., Introduction to Languages and the Theory of Computation.
Second Edition. McGraw-Hill Co. Inc., NY, 1996
• Rosen, Kenneth H. Discrete Mathematics and its Applications. Third
Edition. McGraw-Hill, N.Y., 1995 (Chapter 10)
• Rich, Elaine,Automata, Computability and Complexity: Theory and
Applications, Pearson Prentice Hall, Upper Saddle River, NJ, 2008
• Savage, John E. Models of Computation. Exploring the Power of
Computing. Addison-Wesley, Reading, MA, 1998
• Sipser, Michael. Introduction to the Theory of Computation, PWS, 1997.
• Sudkamp, Thomas A. Languages and Machines, An Introduction to the
Theory of Computer Science, Second Edition, Addison-Wesley Publishing
Company, 1997.
• Taylor, Gregory R. Models of Computation and Formal Languages. Oxford
University Press, New York, Oxford, 1998 (errata at
www.jcstate.edu/thcomp/ - includes solutions to exercises and several
additions to the book).
• Web resources:
• Notation for the grammar for Java:
• http://cui.unige.ch/db-
research/Enseignement/analyseinfo/JAVA/BNFi
ndex.html
• notation for the grammar for C:
• http://lists.canonical.org/pipermail/kragen-
hacks/1999-October/000201.html
• notation for the grammar for C++:
• http://www.nongnu.org/hcb/
• A virtual Turing machine:
• http://infohost.nmt.edu/~prcm/turing/
• Tentative Class Schedule

• Introduction: Review of material from Discrete Structures
• Chapter 1. Introduction to the Theory of Computation, Mathematical
Induction and Recursive Definitions. Quiz 1, covering Ch. 1.
• Chapter 2: Finite Automata. Quiz 2, covering Ch. 2.
• Chapter 3: Regular Languages and Regular Grammars. Quiz 3,
covering Ch. 3.
• Chapter 4: Properties of Regular Languages. Quiz 4, covering Ch.
4.The Pumping Lemma for regular languages. Exam covering
Chapters 1 – 4.
• Chapter 5. Context-free Languages, Leftmost and rightmost
derivations. Parsing and ambiguity.
• Chapter 6. Simplification of Context-Free Grammars. Quiz 5,
covering Ch. 5., Normal forms.
• Chapter 7: Pushdown Automata Quiz 6, covering Ch. 6.The
relationship of pushdown automata to context-free languages.
• Chapter 8. Properties of Context-free Languages. The Pumping
Lemma for context-free languages. Quiz 7, covering Ch’s 7 & 8.
• Chapter 9. Turing machines.The Church-Turing Thesis.Definition of
a Turing machine.
• Chapter 10. Other Models of Turing Machines. Quiz 8, covering
Ch. 9.Equivalence classes of automata.Universal Turing machine.
• Chapter 11: A Hierarchy of Formal Languages and Automata. Quiz
9, covering Ch. 10.Unrestricted grammars and Turing machines.The
Chomsky hierarchy of formal languages and automata.
• Chapter 12: The Limits of Algorithmic Computation. Quiz 10,
covering Ch. 11. The halting problem and other undecidable
problems.Diagonalization and reducibility.
• Chapter 13: Other models of Computation Quiz 11, covering Ch.
12.Primitive recursive functions, Post systems and Markov
algorithms.
• Chapter 14: An Introduction to Computational Complexity.Turing
machines and complexity.Tractable and Intractable Problems; P and
NP problems. Quiz 12, covering Ch. 14.

Das könnte Ihnen auch gefallen