Theory of Computation. General Concepts  Scope of course – Formal languages – Automata theory – Computability – Computational complexity.

Slides:



Advertisements
Similar presentations
CS 345: Chapter 9 Algorithmic Universality and Its Robustness
Advertisements

C O N T E X T - F R E E LANGUAGES ( use a grammar to describe a language) 1.
January 5, 2015CS21 Lecture 11 CS21 Decidability and Tractability Lecture 1 January 5, 2015.
Computability and Complexity 5-1 Classifying Problems Computability and Complexity Andrei Bulatov.
Lexical Analysis III Recognizing Tokens Lecture 4 CS 4318/5331 Apan Qasem Texas State University Spring 2015.
FLAC Lecture 19 Turing Machines and Real Life * Reductions Mihai Budiu March 3, 2000.
Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Fall 2008.
PZ02A - Language translation
CS 330 Programming Languages 09 / 18 / 2007 Instructor: Michael Eckmann.
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 5 Reducibility Contents Undecidable Problems from Language Theory.
Copyright © Cengage Learning. All rights reserved.
Grammars, Languages and Finite-state automata Languages are described by grammars We need an algorithm that takes as input grammar sentence And gives a.
Design and Analysis of Algorithms
By: Er. Sukhwinder kaur.  Computation Computation  Algorithm Algorithm  Objectives Objectives  What do we study in Theory of Computation ? What do.
Introduction to the Theory of Computation
1 Introduction to Automata Theory Reading: Chapter 1.
CS 454 Theory of Computation Sonoma State University, Fall 2012 Instructor: B. (Ravi) Ravikumar Office: 116 I Darwin Hall.
Introduction Chapter 0. Three Central Areas 1.Automata 2.Computability 3.Complexity.
CMPS 3223 Theory of Computation Automata, Computability, & Complexity by Elaine Rich ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Slides provided.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
1 Theory of Computation 計算理論 2 Instructor: 顏嗣鈞 Web: Time: 9:10-12:10 PM, Monday Place: BL 103.
Introduction to the Theory of Computation
1 Formal Languages and Theory of Computation Wen-Hsiang Tsai 蔡文祥 講座教授 2011/9 Taj Mahal in India.
1 An Introduction to Formal Languages and Automata Provided by : Babak Salimi webAdd:
CS/IT 138 THEORY OF COMPUTATION Chapter 1 Introduction to the Theory of Computation.
1 Unit 1: Automata Theory and Formal Languages Readings 1, 2.2, 2.3.
Review Byron Gao. Overview Theory of computation: central areas: Automata, Computability, Complexity Computability: Is the problem solvable? –solvable.
Introduction to the Theory of Computation Fall Semester, School of Information, Renmin University of China.
TextBook Concepts of Programming Languages, Robert W. Sebesta, (10th edition), Addison-Wesley Publishing Company CSCI18 - Concepts of Programming languages.
COP 4620 / 5625 Programming Language Translation / Compiler Writing Fall 2003 Lecture 3, 09/11/2003 Prof. Roy Levow.
Lecture 18. Unsolvability Before the 1930’s, mathematics was not like today. Then people believed that “everything true must be provable”. (More formally,
TRANSITION DIAGRAM BASED LEXICAL ANALYZER and FINITE AUTOMATA Class date : 12 August, 2013 Prepared by : Karimgailiu R Panmei Roll no. : 11CS10020 GROUP.
Overview.  Explores the theoretical foundations of computing  What can and cannot be done by an algorithm  Most of the material predates computers!
CSE 311 Foundations of Computing I Lecture 26 Computability: Turing machines, Undecidability of the Halting Problem Spring
The College of Saint Rose CIS 433 – Programming Languages David Goldschmidt, Ph.D. from Concepts of Programming Languages, 9th edition by Robert W. Sebesta,
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Syntax and Semantics CIS 331 Syntax: the form or structure of the expressions, statements, and program units. Semantics: the meaning of the expressions,
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
1 Language translation Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
1 Theory of Computation 計算理論 2 Instructor: 顏嗣鈞 Web: Time: 9:10-12:10 PM, Monday Place: BL.
1 / 48 Formal a Language Theory and Describing Semantics Principles of Programming Languages 4.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
CSCI 2670 Introduction to Theory of Computing October 13, 2005.
CS 154 Formal Languages and Computability January 28 Class Meeting Department of Computer Science San Jose State University Spring 2016 Instructor: Ron.
Finite-State Machines Fundamental Data Structures and Algorithms Peter Lee March 11, 2003.
The Church-Turing Thesis Chapter Are We Done? FSM  PDA  Turing machine Is this the end of the line? There are still problems we cannot solve:
MA/CSSE 474 Theory of Computation Universal Turing Machine Church-Turing Thesis (Winter 2016, these slides were also used for Day 33)
CS 154 Formal Languages and Computability April 5 Class Meeting Department of Computer Science San Jose State University Spring 2016 Instructor: Ron Mak.
Computation Theory Asia Mahdi. Textbooks Programs, Machines and Computation: An Introduction to the Theory of Computing - Authors: Keith Clark and Don.
Fall 2013 Lecture 27: Turing machines and decidability CSE 311: Foundations of Computing.
Theory of Computation. Introduction to The Course Lectures: Room ( Sun. & Tue.: 8 am – 9:30 am) Instructor: Dr. Ayman Srour (Ph.D. in Computer Science).
Introduction to Automata Theory
Finite-State Machines (FSM) Chuck Cusack Based partly on Chapter 11 of “Discrete Mathematics and its Applications,” 5 th edition, by Kenneth Rosen.
Theory of Computation. Introduction We study this course in order to answer the following questions: What are the fundamental capabilities and limitations.
Sub-fields of computer science. Sub-fields of computer science.
Describing Syntax and Semantics
Formal Foundations-II [Theory of Automata]
Introduction to formal languages and automata
Computable Functions.
Why Study Automata? What the Course is About Administrivia
Introduction to the Theory of Computation
CIS Automata and Formal Languages – Pei Wang
Course 1 Introduction to Formal Languages and Automata Theory (part 1)
Theory of Computation Theory of computation is mainly concerned with the study of how problems can be solved using algorithms.  Therefore, we can infer.
Introduction to Automata Theory
Jaya Krishna, M.Tech, Assistant Professor
Teori Bahasa dan Automata Lecture 1: Course Overview and Introduction
High-Level Programming Language
Lecture One: Automata Theory Amjad Ali
Presentation transcript:

Theory of Computation

General Concepts  Scope of course – Formal languages – Automata theory – Computability – Computational complexity

General Concepts  Formal Languages --- – Definition --- Study of “strings of symbols,” including their descriptions, properties, generations, recognitions, compiling, applications, …

General Concepts  Formal Languages --- – Concepts --- Strings of symbols include those of natural languages, computer languages, discrete signals, …

General Concepts  Formal Languages --- – Concepts --- Results of study of automatic processing of symbolic information Parallel to numerical mathematical processing Similar to the role of set theory in mathematics

General Concepts  Automata Theory ---  Do you know how a vending machine works? Can you design one? Vending machine room seen in Hokkaido, Japan 2004

General Concepts  Automata Theory --- – An example --- How to design a vending machine?  Use a finite automaton!

General Concepts  Automata Theory --- – An example --- Assumptions (for simplicity): – Only 5-krş and 10-krş coins are used. – Only drinks all of 20 krş are sold.

General Concepts Automata Theory --- An example --- Requiring “memory” called “states” for the design. 0 start transition diagram

General Concepts 10 5 is returned as “output” (not shown) 20 “Final state” Automata Theory --- Notes for the last diagram: $0 start “Start state”

General Concepts  Automata Theory --- – Definition --- Study of dynamic behaviors of “discrete- parameter information systems” in form of “abstract computing devices” or “machines.”

General Concepts  Automata Theory --- – Examples of discrete-parameter information systems --- digital systems, nerve systems, languages information transmission systems human-environment interactions, …

General Concepts Automata Theory --- – Three major models of automata --- generator --- with output and without input acceptor --- with input and without output transducer --- both with input and with output generatoracceptortransducer trigger signal Yes or No

General Concepts  Automata Theory --- – Examples --- generator --- – “natural language” grammar (generating “sentences” spoken by people) – reception robot (speaking organized words and sentences) – context-free grammar (generating strings of symbols) Reception robot --- Expo 2005

General Concepts  Automata Theory --- – Examples --- acceptor --- – digital lock (accepting digits) – lexical analyzer (recognizing computer language keywords) – finite automaton (accepting valid strings of symbols) Digital lock

General Concepts  Automata Theory --- – Examples --- transducer --- – Interpreter (translating natural languages) – Compiler (translating high-level languages into machine codes) – Turing machine (transforming strings of symbols)

General Concepts  Computability – Definition : Study of problem solving capabilities of computational models.

General Concepts  Computability --- – Problem types based on resources --- Impossible problems Possible-with-unlimited-resources-but- impossible-with-limited-resources problems Possible-with-limited-resources problems

General Concepts  Computability --- – Problem types based on time --- Undecidable problems Intractable problems Tractable problems

General Concepts  Computability --- – Advantage --- Studies of computability help us not to waste time on “unsolvable problems” already investigated before.

General Concepts  Computational complexity --- – Definition --- Study of “efficiency” of problem solving.

General Concepts  Computational complexity --- – Concepts --- To unify comparison, an abstract model is needed as the machine for executing problem solutions. Usually the most famous “Turing machine” (an automaton) is used.

General Concepts  Computational complexity --- – Concepts --- Turing machine, though simple, has been proved to be able to simulate any problem solving steps (“algorithms”) designed by human beings! Turing machine is the foundation for development of modern computation theory!

Problems Studied in Theory of Computation Essential problems studied --- – “What are the fundamental capabilities and limitations of computers?” What can a computer do at all? --- studied in the domain of Computability! What can a computer do efficiently? --- studied in the domain of Computational complexity!

Problems Studied in Theory of Computation  A basic concept --- – A Turing machine conceptually is no more than a pen and a paper with several reasoning rules! Turing machine

Fields Related to Scope of Theory of Computation FieldsRelated theory Compiling theoryFormal languages Switching circuit theoryAutomata theory Algorithm analysisComputational complexity Natural language processingFormal languages Syntactic pattern recognitionFormal languages Programming languagesFormal languages Artificial intelligenceFormal languages and automata theory Neural networksAutomata theory

Applications of Theory of Computation  Applications --- – Text analysis --- text search text editing – Compiler design lexical analysis parser generation

Applications of Theory of Computation  Applications --- – Language design programming language design document description language design – e.g., HTML, XML, … picture language design – e.g., SVG, VHML, … special language design

Applications of Theory of Computation  Applications --- – Digital system design computer design special digital system design – Protocol modeling and verification – Expert system design – Cryptography …

Applications of Theory of Computation  A specific application --- special digital system design – Mainly based on automata theory --- using finite automata or “sequential machines” (finite automata both with input and with output) – Some specific examples of digital systems --- Elevators, vending machines, traffic signal control systems …

Brief History of Theory of Computation  At beginning of 19th century, mathematicians believe: Axiomatization of mathematic – That is, it is possible to decide the truth of any mathematical statement thru use of inference rules and axiom systems.

Brief History of Theory of Computation  In 1931, Kurt Gödel proposed the incompleteness theorem which says: the truth of certain mathematical statements cannot be proved by the use of mathematical axioms. – That is, some mathematical problems cannot be solved by algorithms.

Brief History of Theory of Computation  From then, the ideal of axiomatization of mathematics was broken. – Then, mathematicians started to think the scope of algorithm capabilities, design theoretical computational machines, & study their capability limitations.

Brief History of Theory of Computation  Many theories were proposed, but the corresponding machines could not be manufactured at that time.

Brief History of Theory of Computation  In 1936, Turing proposed the model of universal algorithm machine, which later was called Turing machine mentioned before.

Brief History of Theory of Computation  Some similar ideas were proposed by other scholars, including Stephen C. Kleene, Alonzo Church, Emil Post, etc., in different forms of models.

Brief History of Theory of Computation  In 1943, neural physiologists Warren S. McCulloch and Walter Pitts developed finite-state systems to simulate neural networks in biological systems.  They are pioneers of automata theory.

Brief History of Theory of Computation  In late 1940’s , Von Neumann proposed the idea of stored program for computer models.

Brief History of Theory of Computation  In 1951, a real computer following the idea of “stored program” was constructed: UNIVAC I, the world's first commercially available computer (manufactured by Eckert- Mauchly Computer Company).

Brief History of Theory of Computation  In late 1950’s, linguist N. Chomsky proposed a mathematical model for grammars of natural languages.  In 1956, he proposed further the concept of context-free grammar, which may be used for defining computer languages.

Brief History of Theory of Computation  In 1956, Kleene proposed the concept of finite automaton for simulating neural networks proposed by McCulloch and Pitts.  He also proposed regular expressions to describe strings of symbols, and proved them equivalent to finite automata.

Brief History of Theory of Computation  In 1959 and 1960, John W. Backus & Peter Naur proposed sequentially a special expression for computer language grammars, called later Backus-Naur form (BNF). – It was used to describe computer language ALGOL-60, leading to development of compiling theory.

Brief History of Theory of Computation  In 1969, Stephen A. Cook found that computation problems may be separated into tractable and intractable ones. – Intractable problems are also called NP-hard problems. – Such problems cannot be solved by computers except very small instances (with only small-sized inputs).