1 An Introduction to Formal Languages and Automata Provided by : Babak Salimi webAdd:

Slides:



Advertisements
Similar presentations
8/25/2009 Sofya Raskhodnikova Intro to Theory of Computation L ECTURE 1 Theory of Computation Course information Overview of the area Finite Automata Sofya.
Advertisements

THE CHURCH-TURING T H E S I S “ TURING MACHINES” Pages COMPUTABILITY THEORY.
Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Fall 2009.
CS21 Decidability and Tractability
1 CSCI-2400 Models of Computation. 2 Computation CPU memory.
Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Fall 2008.
Fall 2005Costas Busch - RPI1 CSCI-2400 Models of Computation.
Dr. Muhammed Al-Mulhem 1ICS ICS 535 Design and Implementation of Programming Languages Part 1 Computability (Chapter 2) ICS 535 Design and Implementation.
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT Lecture 1 Introduction Jan Maluszynski, IDA, 2007
Quantum Automata Formalism. These are general questions related to complexity of quantum algorithms, combinational and sequential.
CS 490: Automata and Language Theory Daniel Firpo Spring 2003.
CS311 Automata and Complexity Theory. Admistrative Stuff Instructor: Shahab Baqai Room # 428, Ext 4428 Lectures:Mon & Wed 1530 – 1710.
Costas Busch - RPI1 CSCI-2400 Models of Computation.
Fall 2006Costas Busch - RPI1 CSCI-2400 Models of Computation.
Push Down Automata That Flip Their Stacks Presented By, Bhargavi Belathur Ramalingaiah.
Grammars, Languages and Finite-state automata Languages are described by grammars We need an algorithm that takes as input grammar sentence And gives a.
CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.
Design and Analysis of Algorithms
Formal languages and automata theory Andrej Bogdanov The Chinese University of Hong Kong Fall 2011.
1 CSCI 2400 section 3 Models of Computation Instructor: Costas Busch.
CSCI 2670 Introduction to Theory of Computing September 21, 2005.
1 Theory of Computation 計算理論 2 Instructor: 顏嗣鈞 Web: Time: 9:10-12:10 PM, Monday Place: BL 103.
Introduction to the Theory of Computation
CS 390 Introduction to Theoretical Computer Science.
CS490 Presentation: Automata & Language Theory Thong Lam Ran Shi.
Lecture # 1 (Automata Theory)
CSC312 Automata Theory Lecture # 1 Introduction.
CSCI 2670 Introduction to Theory of Computing September 28, 2005.
CS/IT 138 THEORY OF COMPUTATION Chapter 1 Introduction to the Theory of Computation.
AUTOMATA THEORY Reference Introduction to Automata Theory Languages and Computation Hopcraft, Ullman and Motwani.
1 Unit 1: Automata Theory and Formal Languages Readings 1, 2.2, 2.3.
Pushdown Automata CS 130: Theory of Computation HMU textbook, Chap 6.
Pushdown Automata (PDAs)
THE CHURCH-TURING T H E S I S “ TURING MACHINES” Part 1 – Pages COMPUTABILITY THEORY.
CSC312 Automata Theory Lecture # 1 Introduction.
CSC312 Automata Theory Lecture # 1 Introduction.
1 Theory of Computation 計算理論 2 Instructor: 顏嗣鈞 Web: Time: 2:20-5:10 PM, Tuesday Place: BL 112.
1 Theory of Computation 計算理論 2 Instructor: 顏嗣鈞 Web: Time: 9:10-12:10 PM, Monday Place: BL.
Complexity and Computability Theory I Lecture #11 Instructor: Rina Zviel-Girshin Lea Epstein.
Models of Computation. Computation: Computation is a general term for any type of information processing information processing CPU memory.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
UNIT - I Formal Language and Regular Expressions: Languages Definition regular expressions Regular sets identity rules. Finite Automata: DFA NFA NFA with.
CSCI 3130: Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Pushdown.
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 3 The Church-Turing Thesis Contents Turing Machines definitions, examples,
Finite-State Machines Fundamental Data Structures and Algorithms Peter Lee March 11, 2003.
Copyright © Curt Hill Other Automata Pushdown through Turing machines.
Theory of Computation Automata Theory Dr. Ayman Srour.
Theory of Computation Automata Theory Dr. Ayman Srour.
Theory of Computation Automata Theory Dr. Ayman Srour.
Computation Theory Asia Mahdi. Textbooks Programs, Machines and Computation: An Introduction to the Theory of Computing - Authors: Keith Clark and Don.
CSCI 2670 Introduction to Theory of Computing September 22, 2004.
Theory of Computation Automata Theory Dr. Ayman Srour.
Theory of Computation. Introduction We study this course in order to answer the following questions: What are the fundamental capabilities and limitations.
Formal Foundations-II [Theory of Automata]
Introduction to formal languages and automata
CS-300 Theory of Computation 2nd Sem 2017 Lecture 1.
Introduction to the Theory of Computation
Models of Computation.
CIS Automata and Formal Languages – Pei Wang
G. Pullaiah College of Engineering and Technology
Finite State Machines Computer theory covers several types of abstract machines, including Finite State Machines.
فصل سوم The Church-Turing Thesis
CSCI-2400 Models of Computation Costas Busch - RPI.
Context-Free Languages
Pushdown automata a_introduction.htm.
CSCI-2400 Models of Computation.
Lecture One: Automata Theory Amjad Ali
Formal Languages and Automata Theory BODDEDA HARITHA LAKSHMI,
Automata theory and formal languages COS 3112 – AUTOMATA THEORY PRELIM PERIOD WEEK 1 AND 2.
Presentation transcript:

1 An Introduction to Formal Languages and Automata Provided by : Babak Salimi webAdd:

2 Textbook: Webadd:

What is automata theory ? Automata theory is the study of abstract computational devices Abstract devices are (simplified) models of real computations Computations happen everywhere: On your laptop, on your cell phone, in nature, … Why do we need abstract models?

A simple computer BATTERY SWITCH input: switch output: light bulb actions: flip switch states: on, off

A simple “computer” BATTERY SWITCH off on start f f input: switch output: light bulb actions: f for “flip switch” states: on, off bulb is on if and only if there was an odd number of flips

Another “computer” BATTERY off start 1 inputs: switches 1 and 2 actions: 1 for “flip switch 1” actions: 2 for “flip switch 2” states: on, off bulb is on if and only if both switches were flipped an odd number of times off on

A design problem Can you design a circuit where the light is on if and only if all the switches were flipped exactly the same number of times? 4 BATTERY ?

A design problem Such devices are difficult to reason about, because they can be designed in an infinite number of ways By representing them as abstract computational devices, or automata, we will learn how to answer such questions

These devices can model many things They can describe the operation of any “small computer”, like the control component of an alarm clock or a microwave They are also used in lexical analyzers to recognize well formed expressions in programming languages: ab1 is a legal name of a variable in C 5u= is not

10 Computation CPU memory Outline of the course contents

11 CPU input output Program memory temporary memory

12 CPU input output Program memory temporary memory compute Example:

13 CPU input output Program memory temporary memory compute

14 CPU input output Program memory temporary memory compute

15 CPU input output Program memory temporary memory compute

16 Automaton CPU input output Program memory temporary memory Automaton

17 Automaton input output temporary memory Automaton state transition

18 Different Kinds of Automata Automata are distinguished by the temporary memory Finite Automata: no temporary memory Pushdown Automata: stack Turing Machines: random access memory

19 input output temporary memory Finite Automaton Example: Elevators, Vending Machines (small computing power) ‏

20 input output Stack Pushdown Automaton Pushdown Automaton Example: Compilers for Programming Languages (medium computing power) ‏ Push, Pop Temp. memory

21 input output Random Access Memory Turing Machine Turing Machine Examples: Any Algorithm (highest computing power) ‏ Temp. memory

22 Finite Automata Pushdown Automata Turing Machine Power of Automata Less powerMore power Solve more computational problems Simple problems More complex problems Hardest problems

23 Turing Machine is the most powerful computational model known Question: Are there computational problems that a Turing Machine cannot solve? Answer: Yes(unsolvable problems) ‏