Introduction to Formal Languages and Automata Description The

  • Slides: 17
Download presentation
Introduction to Formal Languages and Automata Description: The course introduces some fundamental concepts in

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

Course Objective The objective of this course is to give students a broad overview of 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

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

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

• • 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 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 • A 1

• 2 – Intended Learning Outcomes (ILOs) Knowledge and Understanding • A 1 Further develop ability to understand, apply and prove precise mathematical claims using a range of fundamental definitions from discrete math and formal languages. • A 2 Demonstrate knowledge and understanding of formal language and their applications • A 3 Detailed knowledge of foundational results for regular languages and finite automata. • A 4 Knowledge of foundational results for context-free languages and pushdown automata. . • A 5 Some exposure to Turing machines and concept of computability. • A 6 Ability to work individually on hard problems.

Skills and Other Attributes • B 1 Systematically apply knowledge of the formal language

Skills and Other Attributes • B 1 Systematically apply knowledge of the formal language and methods of related systems in the identification and solution of the problems • B 2 Display sound judgment in the evaluation and selection of methods and tools appropriate for a given problem. • B 3 Analyzes and evaluate a range of options in producing a solution to an identified problem. • B 4 Evaluate problems solution results from a variety of sources • B 5 Critically assess the assumptions and values of proposed approaches and the relationship between theory and practice.

Professional Practice Skills • C 1 Systematically appropriate methods to • • develop an

Professional Practice Skills • C 1 Systematically appropriate methods to • • develop an algorithm o appropriate application C 2 Apply new techniques in the planning and implementation of the algorithms. C 3 Knowledge of pushdown automata and the correspondence theorem for pushdown automata and context-free languages. C 4 Ability to apply the Pumping Lemma for context-free languages to show that a language is not context-free. C 5 Ability to apply basic definitions related to Turing machines.

Required textbook: • Linz, Peter. An Introduction to Formal Languages and Automata, 4 th

Required textbook: • Linz, Peter. An Introduction to Formal Languages and Automata, 4 th 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

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

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 scores. I 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

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

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

• • • Recommended Reading List: Brookshear, J. Glenn. Formal Languages, Automata and Complexity, Addison Wesley. Cohen, Daniel I. A. Introduction to Computer Theory. 2 nd 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. Mc. Graw-Hill Co. Inc. , NY, 1996 Rosen, Kenneth H. Discrete Mathematics and its Applications. Third Edition. Mc. Graw-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.

• Web resources: • Notation for the grammar for Java: • http: //cui. unige. ch/dbresearch/Enseignement/analyseinfo/JAVA/BNFi ndex. html • notation for the grammar for C: • http: //lists. canonical. org/pipermail/kragenhacks/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

• 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

• 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.