Lei Bu [email protected] Preliminary Introduction to the Theory of Computation.

10
Lei Bu [email protected] Preliminary Introduction to the Theory of Computation

Transcript of Lei Bu [email protected] Preliminary Introduction to the Theory of Computation.

Page 1: Lei Bu bulei@nju.edu.cn Preliminary Introduction to the Theory of Computation.

Lei Bu

[email protected]

Preliminary Introduction to the Theory of Computation

Page 2: Lei Bu bulei@nju.edu.cn Preliminary Introduction to the Theory of Computation.

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

Page 3: Lei Bu bulei@nju.edu.cn Preliminary Introduction to the Theory of Computation.

3

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.

Page 4: Lei Bu bulei@nju.edu.cn Preliminary Introduction to the Theory of Computation.

4

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.

Page 5: Lei Bu bulei@nju.edu.cn Preliminary Introduction to the Theory of Computation.

5

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.

Page 6: Lei Bu bulei@nju.edu.cn Preliminary Introduction to the Theory of Computation.

6

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.

Page 7: Lei Bu bulei@nju.edu.cn Preliminary Introduction to the Theory of Computation.

Outline

Part 1: Preliminaries Mathematical Knowledge String and Language

Part 2: Finite Automata and Regular Expression

Context Free Grammar and Pushdown Automata

Turing Automata

Page 8: Lei Bu bulei@nju.edu.cn Preliminary Introduction to the Theory of Computation.

Part 3 Modeling: Transition System Petri Net Timed and Hybrid Automata Message Sequence Chart

Part 4: Tutorials Computability Model Checking Trustworthy Software

Page 9: Lei Bu bulei@nju.edu.cn Preliminary Introduction to the Theory of Computation.

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/PTC15.html

Page 10: Lei Bu bulei@nju.edu.cn Preliminary Introduction to the Theory of Computation.

Grading

Assignment 30% Distributed in Class, due in next week.

Final Exam 70%