Understanding Formal Languages and Automata Theory
This course delves into abstract models of computers and computation, offering essential concepts and principles for understanding the fundamental nature of the computer field. Exploring topics such as regular expressions, context-free grammars, and automata theory, students gain insights into the practical applications of these theoretical foundations in various systems and problem-solving scenarios. The curriculum covers mathematical knowledge, finite automata, context-free grammars, and modeling transition systems, providing a comprehensive exploration of formal languages and automata theory.
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
Formal Languages and Automata Lecturer Xuandong Li lxd@nju.edu.cn Lei Bu bulei@nju.edu.cn TA Lezhi Ma QQ Group 462565359
This course: A study of abstract models of computers and computation. Why theory, when computer field is so practical? Theory provides concepts and principles, for both hardware and software that help us understand the general nature of the field.
Why Study Automata? A survey of Stanford grads 5 years out asked which of their courses did they use in their job. Basics like intro-programming took the top spots, of course. But among optional courses, formal language and automata stood remarkably high. 3
How Could That Be? Regular expressions are used in many systems. E.g., UNIX a.*b. E.g., DTD s describe XML tags with a RE format like person (name, addr, child*). Finite automata model protocols, electronic circuits. 4
How? (2) Context-free grammars are used to describe the syntax of essentially every programming language. Not to forget their important role in describing natural languages. 5
How? (3) When developing solutions to real problems, we often confront the limitations of what software can do. Undecidable things no program whatever can do it. Intractable things there are programs, but no fast programs. Automata theory gives you the tools. 6
Outline Part 1: Preliminaries Mathematical Knowledge String and Language Part 2: Finite Automata and Regular Expression Context Free Grammar and Pushdown Automata Turing Automata
Part 3 Modeling: Transition System Petri Net Timed and Hybrid Automata Message Sequence Chart Part 4: Tutorials Computability Model Checking Trustworthy Software
Textbook John E. Hopcroft, Rajeev Motwani, Jeffery D.Ullman. Introduction to Automata Theory, Languages, and Computation, 3/E. Pearson Education India, 2008. (The Cinderella Book) Referred Reading Michael Sipser. Introduction to the Theory of Computation, 2nd Edition,Course Technology, 2005. Derick Wood. Theory of Computation. HAPPER & ROW, 1987. Doron Peled. Software Reliability Methods. Springer, 2011 WEB http://cs.nju.edu.cn/bulei/FLA22.html
Grading Assignment 30% Distributed in Class, due in next week. Project 20% Will be announced around middle November Final Exam 50%