MA/CSSE 474 Theory of Computation Course Intro. Today's Agenda Student questions Overview of yesterday's proof –I placed online a "straight-line" writeup.

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

Pushdown Automata Chapter 12. Recognizing Context-Free Languages Two notions of recognition: (1) Say yes or no, just like with FSMs (2) Say yes or no,
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Finite Automata Great Theoretical Ideas In Computer Science Anupam Gupta Danny Sleator CS Fall 2010 Lecture 20Oct 28, 2010Carnegie Mellon University.
Introduction to Computability Theory
CPSC 411, Fall 2008: Set 12 1 CPSC 411 Design and Analysis of Algorithms Set 12: Undecidability Prof. Jennifer Welch Fall 2008.
Regular Languages Sequential Machine Theory Prof. K. J. Hintz Department of Electrical and Computer Engineering Lecture 3 Comments, additions and modifications.
FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY
Abstract Data Types (ADT)
CSC 171 – FALL 2004 COMPUTER PROGRAMMING LECTURE 0 ADMINISTRATION.
Normal forms for Context-Free Grammars
Topics Automata Theory Grammars and Languages Complexities
CS 153: Concepts of Compiler Design August 25 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
CSC 8310 Programming Languages Meeting 2 September 2/3, 2014.
Problem of the DAY Create a regular context-free grammar that generates L= {w  {a,b}* : the number of a’s in w is not divisible by 3} Hint: start by designing.
WEEK 1 CS 361: ADVANCED DATA STRUCTURES AND ALGORITHMS Dong Si Dept. of Computer Science 1.
Computer Literacy Chapter 1. IBM 360 ~1970About 2 MB (1/500 GB) memory.
CS 21a: Intro to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
1 Introduction to Automata Theory Reading: Chapter 1.
CS 2104 Prog. Lang. Concepts Dr. Abhik Roychoudhury School of Computing Introduction.
Lecture No.01 Data Structures Dr. Sohail Aslam
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.
CST 229 Introduction to Grammars Dr. Sherry Yang Room 213 (503)
CMPS 3223 Theory of Computation
CS 390 Introduction to Theoretical Computer Science.
CMPS 3223 Theory of Computation Automata, Computability, & Complexity by Elaine Rich ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Slides provided.
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 Chapter 1 Automata: the Methods & the Madness Angkor Wat, Cambodia.
By: Er. Sukhwinder kaur.  What is Automata Theory? What is Automata Theory?  Alphabet and Strings Alphabet and Strings  Empty String Empty String 
1 CSSE 350 Automata, Formal Languages, and Computability.
Introduction to CS Theory Lecture 3 – Regular Languages Piotr Faliszewski
MA/CSSE 474 Theory of Computation DFSM Canonical Form Proof of NDFSM  DFSM ALGORITHM (as much as we have time for) This version includes the "answers"
MA/CSSE 474 Theory of Computation Decision Problems DFSMs.
Languages and Strings Chapter 2. (1) Lexical analysis: Scan the program and break it up into variable names, numbers, etc. (2) Parsing: Create a tree.
Theory of Computation, Feodor F. Dragan, Kent State University 1 TheoryofComputation Spring, 2015 (Feodor F. Dragan) Department of Computer Science Kent.
Why Study the Theory of Computation? Implementations come and go. Chapter 1.
Chapter 3 Part II Describing Syntax and Semantics.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
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.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
CS 203: Introduction to Formal Languages and Automata
Foundations of (Theoretical) Computer Science Chapter 2 Lecture Notes (Section 2.2: Pushdown Automata) Prof. Karen Daniels, Fall 2010 with acknowledgement.
Computability Regular expressions. Languages defined by regular expresses = Regular languages (languages recognized by FSM). Applications. Pumping lemma.
Languages and Strings Chapter 2.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
Overview of the theory of computation Episode 3 0 Turing machines The traditional concepts of computability, decidability and recursive enumerability.
Finite Automata Great Theoretical Ideas In Computer Science Victor Adamchik Danny Sleator CS Spring 2010 Lecture 20Mar 30, 2010Carnegie Mellon.
MA/CSSE 474 Theory of Computation How many regular/non-regular languages are there? Closure properties of Regular Languages (if there is time) Pumping.
Week 14 - Friday.  What did we talk about last time?  Simplifying FSAs  Quotient automata.
MA/CSSE 474 Theory of Computation Decision Problems, Continued DFSMs.
Languages and Strings Chapter 2. (1) Lexical analysis: Scan the program and break it up into variable names, numbers, etc. (2) Parsing: Create a tree.
Introduction to Automata Theory
MA/CSSE 474 Theory of Computation Course Intro More about strings and languages.
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
System Software Unit-1 (Language Processors) A TOY Compiler
CIS Automata and Formal Languages – Pei Wang
Compiler Lecture 1 CS510.
Introduction to Automata Theory
Intro to Theory of Computation
CMPS 3223 Theory of Computation
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
COMPILER CONSTRUCTION
Turing Machines Everything is an Integer
Sofya Raskhodnikova; Intro Theory of Computation
Presentation transcript:

MA/CSSE 474 Theory of Computation Course Intro

Today's Agenda Student questions Overview of yesterday's proof –I placed online a "straight-line" writeup of the proof in detail, without the "here is how a proof works" commentary that was in the slides. See Session 1 resources on sched. page Introductions and Course overview Languages and Strings (if time) Operations on Languages

Overview of yesterday's proof S = L(M), language accepted by M T = {w ∊ {0,1}* : w does not have 11 as substring} Show that S = T. i.e., S ⊆ T and T ⊆ F S ⊆ T: i.e. if wS, then wT –By induction on |w|, showed If δ(q0, w) = q0, w has no 11 and does not end in 1. If δ(q0, w) = q1, w has no 11 and ends in 1. T ⊆ S: i.e. if wT, then wS. –We show the contrapositive: if w ∉ S, then w ∉ T. If w ∉ S then δ(q0, w) = q2 (the only non-accepting state). Show by induction that if δ(q0, w) = q2, then w contains 11. In the definition of M, I replaced A, B, C by q0, q1, q2. See Day 1 slides

Introductions Roll Call –If I mispronounce your name, or you want to be called by a nickname or different name than the Registrar lists for you, let me know. –I have had most of you in class, but for some of you it has been a long time. Graders: Maisey Tucker, Devon Timaeus, Jonathan Taylor Instructor: Claude Anderson: F-210, x8331 Random Note: I often put more on my PowerPoint slides for a day than I expect we can actually cover that day, "just in case".

Instructor Professional Background Formal Education: –BS Caltech, Mathematics 1975 –Ph.D. Illinois, Mathematics 1981 –MS Indiana, Computer Science 1987 Teaching: –TA at Illinois, Indiana , –Wilkes College (now Wilkes University) –RHIT 1988 – 2022? Major Consulting Gigs: –Pennsylvania Funeral Directors Assn –Navistar International –Beckman Coulter –ANGEL Learning Theory of Computation history

Textbook Recent (as ToC books go) Thorough Literate Large (and larger!) Theory and Applications We’ll focus more on theory; applications there for you to see

Online Materials Locations –On the Schedule page – public stuff Reading, HW, topics, resources, Suggestion: bookmark schedule page –On Moodle – personal stuff surveys, solutions, grades –On piazza.com: Discussion forums and announcements –Many things are under construction and subject to change, especially the course schedule.

My most time-consuming courses (for students) This is my perception, not a scientific study! 220 (object-oriented) 473 (design and analysis of algorithms) 120 (intro to software development) 290 (web programming) 304 (PLC) 404 (Compilers) 474 (Theory of Computation) 230 (Data Structures & Algorithms)

What we will focus on in 474 Definitions Theorems Examples Proofs A few applications, but mostly theory

Questions about course policies and procedures? From Syllabus? Schedule page? Said in class? Anything else? Why is attendance not mentioned in the syllabus? When do I plan to be in my office and available for you?

Why you should go to faculty candidate talks! Learn things you might not hear form current faculty Help us evaluate candidate Help candidate evaluate Rose-Hulman The new faculty members are your future (even if you are a senior) –And we are desperate! Greg Wilkin, O159, Wednesday 4:20 DISTRIBUTED SYSTEMS COMMUNICATION AND OVERCOMING THE IMPOSSIBLE IN COMPLEX EVENT PROCESSING

Grateful Acknowledgement Many of the PowerPoint slides that I will use were produced by Elaine Rich, in conjunction with her textbook. I will modify some of them. I will create some new ones.

Why Study the Theory of Computation? Why not just write programs? Implementations come and go. We want to address larger issues, such as –What is computable? –What is tractable?

IBM 7090 Programming in the 1950’s ENTRY SXA 4,RETURN LDQ X FMP A FAD B XCA FMP X FAD C STO RESULT RETURN TRA 0 A BSS 1 B BSS 1 C BSS 1 X BSS 1 TEMP BSS 1 STORE BSS 1 END

Programming in the 1970’s (IBM 360) //MYJOB JOB (COMPRESS), 'VOLKER BANDKE',CLASS=P,COND=(0,NE) //BACKUP EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=MY.IMPORTNT.PDS //SYSUT2 DD DISP=(,CATLG), DSN=MY.IMPORTNT.PDS.BACKUP, // UNIT=3350,VOL=SER=DISK01, // DCB=MY.IMPORTNT.PDS, SPACE=(CYL,(10,10,20)) //COMPRESS EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //MYPDS DD DISP=OLD,DSN=*.BACKUP.SYSUT1 //SYSIN DD * COPY INDD=MYPDS,OUTDD=MYPDS //DELETE2 EXEC PGM=IEFBR14 //BACKPDS DD DISP=(OLD,DELETE,DELETE), DSN=MY.IMPORTNT.PDS.BACKUP

Programming in the New Millennium public static TreeMap create() throws IOException { Integer freq; String word; TreeMap result = new TreeMap (); JFileChooser c = new JFileChooser(); int retval = c.showOpenDialog(null); if (retval == JFileChooser.APPROVE_ OPTION) { Scanner s = new Scanner(c.getSelectedFile()); while(s.hasNext()) { word = s.next().toLowerCase(); freq = result.get(word); result.put(word, (freq == null ? 1 : freq + 1)); } return result; } Find the frequency of each word in a text file chosen by the user.

Timeless Abstractions Mathematical properties of problems and algorithms Do not depend on technology or programming style The basic principles remain the same: –What can be computed, and what cannot? –What are reasonable mathematical models of computation?

More Detailed Questions Does a computational solution to the problem exist? –Without regard to limitations of processor speed or memory size. –If not, is there a restricted but useful variation of the problem for which a solution does exist? If a solution exists, can it be implemented using some fixed amount of memory? If a solution exists, how efficient is it? –More specifically, how do its time and space requirements grow as the size of the problem grows? Are there groups of problems that are equivalent in the sense that if there is an efficient solution to one member of the group there is an efficient solution to all the others?

Applications of the Theory Finite State Machines (FSMs) for parity checkers, vending machines, communication protocols, and building security devices. Interactive games as nondeterministic FSMs. Programming languages, compilers, and context-free grammars. Natural languages are mostly context-free. Speech understanding systems use probabilistic FSMs. Computational biology: DNA and proteins are strings. The undecidability of a simple security model. Artificial intelligence: the undecidability of first-order logic.

Languages and Strings

(1) Lexical analysis: Scan the program and break it up into variable names, numbers, operators, punctuation, etc. (2) Parsing: Create a tree that corresponds to the sequence of operations that should be executed, e.g., / (3) Optimization: Realize that we can skip the first assignment since the value is never used, and that we can pre-compute the arithmetic expression, since it contains only constants. (4) Termination: Decide whether the program is guaranteed to halt. (5) Interpretation: Figure out what (if anything) useful it does. Some Language-related Problems int alpha, beta; alpha = 3; beta = (2 + 5) / 10;

A Framework for Analyzing Problems We need a single framework in which we can analyze a very diverse set of problems. The framework we will use is Language Recognition Most interesting problems can be restated as language recognition problems.

A string is a finite sequence (possibly empty) of symbols from some finite alphabet .  is the empty string (some books/papers use instead)  * is the set of all possible strings over an alphabet  Counting: |s| is the number of symbols in s. |  | = 0| | = 7 # c (s) is the number of times that c occurs in s. # a ( abbaaa ) = 4. Recap - Strings

More Functions on Strings Concatenation: st is the concatenation of s and t. If x = good and y = bye, then xy = goodbye. Note that |xy| = |x| + |y|.  is the identity for concatenation of strings. So:  x (x  =  x = x). Concatenation is associative. So:  s, t, w ((st)w = s(tw)).

More Functions on Strings Replication: For each string w and each natural number i, the string w i is: w 0 = , w i+1 = w i w Examples: a 3 = aaa ( bye ) 2 = byebye a 0 b 3 = bbb Reverse: For each string w, w R is defined as: if |w| = 0 then w R = w =  if |w|  1 then:  a   (  u   * (w = ua)). So define w R = a u R.

Concatenation and Reverse of Strings Theorem: If w and x are strings, then (w x) R = x R w R. Example: ( nametag ) R = ( tag ) R ( name ) R = gateman Do the proof on the board