Introduction to formal languages and automata

Slides:



Advertisements
Similar presentations
Formal Languages: main findings so far A problem can be formalised as a formal language A formal language can be defined in various ways, e.g.: the language.
Advertisements

CS 345: Chapter 9 Algorithmic Universality and Its Robustness
C O N T E X T - F R E E LANGUAGES ( use a grammar to describe a language) 1.
The Big Picture Chapter 3. We want to examine a given computational problem and see how difficult it is. Then we need to compare problems Problems appear.
Recap CS605: The Mathematics and Theory of Computer Science.
Computer Science It’s more than programming Eric Lantz.
January 5, 2015CS21 Lecture 11 CS21 Decidability and Tractability Lecture 1 January 5, 2015.
Introduction to Computability Theory
Foundations of (Theoretical) Computer Science Chapter 2 Lecture Notes (Section 2.2: Pushdown Automata) Prof. Karen Daniels, Fall 2009 with acknowledgement.
C SC 473 Automata, Grammars & Languages Automata, Grammars and Languages Discourse 01 Introduction.
Computability to Practical Computing - and - How to Talk to Machines.
Theory of Computation. General Concepts  Scope of course – Formal languages – Automata theory – Computability – Computational complexity.
Grammars, Languages and Finite-state automata Languages are described by grammars We need an algorithm that takes as input grammar sentence And gives a.
Final Exam Review Cummulative Chapters 0, 1, 2, 3, 4, 5 and 7.
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
CMPS 3223 Theory of Computation Automata, Computability, & Complexity by Elaine Rich ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Slides provided.
1 Theory of Computation 計算理論 2 Instructor: 顏嗣鈞 Web: Time: 9:10-12:10 PM, Monday Place: BL 103.
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.
Chapter 1 Introduction.
CENG112: Data Structures 1. Text Book "Data Structures" by Richard F. Gilberg & Behrouz A. Forouzan, 2nd Edn., Thomson Course Technology, 2006, ISBN 13:
Parsing Introduction Syntactic Analysis I. Parsing Introduction 2 The Role of the Parser The Syntactic Analyzer, or Parser, is the heart of the front.
Overview.  Explores the theoretical foundations of computing  What can and cannot be done by an algorithm  Most of the material predates computers!
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
1 Theory of Computation 計算理論 2 Instructor: 顏嗣鈞 Web: Time: 9:10-12:10 PM, Monday Place: BL.
 2005 SDU Lecture13 Reducibility — A methodology for proving un- decidability.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
D E C I D A B I L I T Y 1. 2 Objectives To investigate the power of algorithms to solve problems. To explore the limits of algorithmic solvability. To.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
Foundations of (Theoretical) Computer Science Chapter 2 Lecture Notes (Section 2.2: Pushdown Automata) Prof. Karen Daniels, Fall 2010 with acknowledgement.
Computation Motivating questions: What does “computation” mean? What are the similarities and differences between computation in computers and in natural.
Donghyun (David) Kim Department of Mathematics and Physics North Carolina Central University 1 Chapter 0 Introduction Some slides are in courtesy of Prof.
Lecture 16b Turing Machines Topics: Closure Properties of Context Free Languages Cocke-Younger-Kasimi Parsing Algorithm June 23, 2015 CSCE 355 Foundations.
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 3 The Church-Turing Thesis Contents Turing Machines definitions, examples,
Copyright © Curt Hill Other Automata Pushdown through Turing machines.
Week 14 - Friday.  What did we talk about last time?  Simplifying FSAs  Quotient automata.
Computation Theory Asia Mahdi. Textbooks Programs, Machines and Computation: An Introduction to the Theory of Computing - Authors: Keith Clark and Don.
MA/CSSE 474 Theory of Computation Universal Turing Machine Church-Turing Thesis Delayed due dates for HWs See updated schedule page. No class meeting.
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
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.
Why Study Automata Theory and Formal Languages?
Formal Foundations-II [Theory of Automata]
Why Study Automata? What the Course is About Administrivia
CIS Automata and Formal Languages – Pei Wang
Theory of Computation Theory of computation is mainly concerned with the study of how problems can be solved using algorithms.  Therefore, we can infer.
Pushdown automata Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Automata, Formal Grammars, and Consequences
Automata and Languages What do these have in common?
Modeling Computation:
Introduction to Automata Theory
CSE322 The Chomsky Hierarchy
فصل سوم The Church-Turing Thesis
Jaya Krishna, M.Tech, Assistant Professor
Regular Expressions
CS21 Decidability and Tractability
Decidability and Tractability
Pushdown automata Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Pushdown automata Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Lecture One: Automata Theory Amjad Ali
Pushdown automata Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Sub: Theoretical Foundations of Computer Sciences
CO Games Development 2 Week 21 Turing Machines & Computability
Theoretical Foundations of Computer Sciences
The Chomsky Hierarchy Costas Busch - LSU.
Pushdown automata Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Pushdown automata Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Sofya Raskhodnikova; Intro Theory of Computation
Presentation transcript:

Introduction to formal languages and automata

What the course is about… A Models of computation: What defines a computer and how does it work? What is a computer language? There are automata which are less powerful than our computers – What are they used for? Is there anything more powerful than a computer? B What are the limits of computing? What can we compute in principle? What can we compute in practice? This course is about learning to think abstractly, in a different way than you usually do.

TOC overview The course discusses two very closely related concepts: models of computing and languages. The computing models are simplified as much as possible, so as to reduce them to their most important elements. Some of the models will be more powerful than others. Languages are effectively sets of strings which are built by particular rules, called a grammar. The more complex the grammar, the more complicated the language can be.

Models of computing Finite state machines (automata) Pattern recognition Simple circuits (e.g. elevators, sliding doors) Automata with stack memory (pushdown autom.) Parsing computer languages Automata with limited tape memory Automata with infinite tape memory Called “Turing machines” Most powerful model possible Capable of solving anything that is solvable

Chomsky hierarchy of grammars Regular grammars Context free grammars Context sensitive grammars Unrestricted grammars We’ll define what these mean later, but the important point is that the grammars become more complex as we go down the list, and contain those above it.

Computers recognise languages! Computers can be made to recognize, or accept, the strings of a language. There is a correspondence between the power of the computing model and the complexity of languages that it can recognize! Finite automata only accept regular grammars. Push down automata can also accept context free grammars. Turing machines can accept all grammars. This is why we study both in this course!

The course structure Introduction Regular languages Regular Expressions Finite Automata (finite state machines) Context free languages and pushdown automata Turing Machines Undecidability – Universal Turing Machines

Introduction Computer Science is a cluster of related scientific and engineering disciplines concerned with the study and application of computations Partitioned into two sub-disciplines: Theory of Computation, Theory of Programming.

Introduction(Contd.) The Theory of Computation -understanding the nature of computation, and specifically the inherent possibilities and limitations of efficient computations. The Theory of Programming - concerned with the actual task of implementing computations (i.e., writing computer programs). .

Introduction(Contd.) The Theory of Computation -understanding the nature of computation, and specifically the inherent possibilities and limitations of efficient computations. The Theory of Programming - concerned with the actual task of implementing computations (i.e., writing computer programs). .

Theory of Computation scientific discipline concerned with the study of general properties of computation be it natural, man-made, or imaginary. Most importantly, it aims to understand the nature of efficient computation. Theory of computation is a course of abstractions about what we can compute. sub-divided to complexity theory - computational resources algorithms - the tasks to be solved

Theory of Computation(Contd.) Though this is not a "math" course, it does make significant use of mathematical symbols, abstractions, definitions, theorems, proofs, lemmas, corollaries, logical reasoning, inductive proofs, and the like. Such concepts are difficult, but rewarding.

History of universality In 1500s, the introduction of symbolic formulas and algebraic variables. But the notion of abstract functions in mathematics reached its modern form only near the end of the 1800s Gottfried Leibniz in the 1600s considered the idea of setting up a universal language based on logic that would provide a precise description analogous to a mathematical proof of any fact or process. While Leibniz considered the possibility of checking his descriptions by machine. In the 1830s Charles Babbage and Ada Lovelace noted that a similar approach could be used to specify the mathematical procedure to be followed by a mechanical calculating machine

History of universality(Contd.) Starting in the 1880s attempts to build up both numbers and the operations of arithmetic from logic and set theory in the 1920s work by Moses Schönfinkel on combinators and by Emil Post on string rewriting systems provided fairly concrete examples of this. In 1930 Kurt Gödel used the same basic idea to set up Gödel numbers to encode logical and other procedures as numbers. But in 1935 Alonzo Church constructed a system in lambda calculus that he showed could be made to emulate any other system in lambda calculus in 1936 Alan Turing did the same thing for Turing machines

History of universality(Contd.) Turing’s results were used in the 1940s - notably in the work of Warren McCulloch and Walter Pitts John von Neumann’s by the late 1940s, practical computer engineering had also been led to the idea of storing programs - like data - electronically, and in the 1950s it became widely understood that general-purpose practical computers could be Viewed as universal systems. Many theoretical investigations of universality were made in the 1950s and 1960s, but gradually the emphasis shifted more towards issues of languages and algorithms.

Automaton What can be computed? Consider a very simple model of a problem. A problem is a set of strings (often binary strings) that is to be distinguished. If we have an algorithm to do this, then we have solved the problem. These kinds of problems are called decidable. Consider the set of all syntactic legal Java programs that never go to into an infinite loop on any input. There is no way to solve this problem. This problem is undecidable.

Automaton(Contd.) There are different kinds of machines, each one a little more powerful than the rest. What kinds of sets do different machines recognize? What features can you add to a machine to make it more powerful, which is able to recognize sets that it could not recognize before? Can we measure time and space requirements of a machine as a tradeoff to this power?

Applications Finite state machines are used in string searching algorithms, compiler design, control unit design in computer architecture NP-Complete theory helps us distinguish the tractable from the intractable. In the combinatorics community, and in scientific fields. This collaboration has been extremely beneficial to both the discrete math and theoretical computer science communities, with wealthy exchange of ideas, problems and techniques active research areas like computational number theory, computational algebra and computational group theory.

Applications(Contd.) the convergence analysis of some Monte Carlo algorithms used by statistical physicists, and the growing work on computational biology. Yet another exciting area of collaboration, where foundational work on theoretical computer science side goes hand-in-hand with experimental work in physics, is quantum computing. research area of computational learning - stock-market share values, DNA sequences, neuron recordings of  animals reacting to stimuli, etc., solve computer science problems, as multitudes of autonomous robots, or of independent programs on the Web, have to be programmed to function in adversarial environments.