Attribution Non-Commercial (BY-NC)

31 tayangan

Attribution Non-Commercial (BY-NC)

- Final Thesis1
- Compiler Construction
- swa-sen
- Moore and Mearly Machine
- FSM DRAM
- L10 Sets.pdf
- COMPILER - Editorial - CodeChef Discuss
- 14823_02. Chapter 3 - Lexical Analysis
- Concatenate in Excel
- Finite State Machines introduction
- Cdc
- 355mt1f16sol.pdf
- Set Theory
- Hw2
- Lecture 4
- 9781783282951_Android_SQLite_Essentials_Sample_Chapter
- Compiler Design Lab Manual.pdf
- Cs6660 2m Rejinpaul IV
- MySQL Proxy
- Manual

Anda di halaman 1dari 23

David Keil

Theory of computing

3/11

Topic 2:

1. 2. 3. 4. 4 5. Deterministic finite automata Regular languages and regular expressions Nondeterministic finite automata Proving a language is not regular Other topics Reading: H-M-U, Ch. 2-4

David Keil Theory of Computing 3/11 1

Objectives

2a. To recognize and construct finite automata with given behavioral features 2b. To convert between regular expressions and finite automata 2c. To use non-diagonal proof by contradiction, e.g., the Pumping Lemma 2d. 2d To use constructive proof to show expressiveness 2e. To perform simple lexical analysis (opt)

David Keil Theory of Computing 3/11 2

David Keil

Theory of computing

3/11

A transition system is a labeled digraph, where vertices denote state (memory), edges denote transitions and labels d d ii dl b l 1-state example: 2-state example:

1 0

DFA differs from random-access machine (RAM) model, in which state is a value assignment to a set of variables

David Keil Theory of Computing 3/11 3

Transition systems

Components: Alphabet (set of symbols) State set (a state can be anything) Transition function or relation (rules for going from one state to another) Corresponds to a graph, labeled with symbols that trigger transitions DFA has finite set of states, unique destination for any transition

David Keil Theory of Computing 3/11 4

David Keil

Theory of computing

3/11

(a) (b) (c) (d)

0, 1 0, 1

0, 1

0, 1

3/11 5

David Keil

Theory of Computing

A graph G = (V, E) is a set of vertices and a set of ordered pairs of vertices E i a relation on V is l ti If edges are labeled with symbols, and each edge from vertex u labeled with symbol a goes to a unique vertex v then the labeled graph denotes a transition function :VV

David Keil Theory of Computing 3/11 6

David Keil

Theory of computing

3/11

Definition: DFA

A DFA is a 5-tuple Q, , , q0, F where Q is a set of states i a finite alphabet is fi i l h b : Q Q is a state-transition function q0 Q is the starting state F is the set of accepting states W can also define * : Q * Q , the We l d fi h reflexive transitive closure of , which tells what state yields for a string

David Keil Theory of Computing 3/11 7

A relation or function may be applied over and over; for example, f (f (f (x))) The reflexive transitive closure of a function or relation is the set of values that can be obtained by applying the function over and over in this way. E Example: th reflexive transitive closure of l the fl i t iti l f the addition operation on natural numbers is the natural numbers

David Keil Theory of Computing 3/11 8

David Keil

Theory of computing

3/11

Language of a DFA

For DFA M, the language of M, L(M) = { x * | (*(q0, x) = q) (q' F) } where * i th set of all strings over h is the t f ll t i , and for string x, *(q0, x) is the state reached after repeated applications of to states and to elements of x Example: L(M) for M below is all bit p ( ) strings that have a '1' followed by 0 or more '0's. 1 0 a b

David Keil Theory of Computing 3/11 9

Example DFA

This DFA accepts strings that start with any number of 1s (possibly none), followed by a 0, followed by any number of (10)s, followed by any number of 0s y y Some elements of its language: 0, 10, 00, 100, 110, 010, 1010, 10100

David Keil Theory of Computing 3/11 10

David Keil

Theory of computing

3/11

Regular languages

Language: a set of sequences over a finite alphabet of symbols Regular language: a language whose elements are all recognized by some DFA The following decision problems are equivalent: Is sequence x in regular language L? Is x accepted by a DFA A, where L(A) = L? Let RL be the set of regular languages

David Keil Theory of Computing 3/11 11

Proof by construction: For a finite language L, construct a DFA whose t h transition paths form the tree iti th f th t corresponding to all the strings in L Each vertex has up to || out-transitions Edges corresponding to the last l t symbol of a word in b l f di L go to accepting states

David Keil Theory of Computing 3/11 12

David Keil

Theory of computing

3/11

Any RL may be specified by a regular expression using any combination of these operations: Concatenation Selection ( |, +, ) Iteration (*) (binds to immediate preceding symbol) Examples (what are their DFAs?): (01)* : all strings that repeat the string 01, zero or more times 01* | 10* : all strings that either consist of a 0 followed by zero or more 1s, or consist of a 1 followed by zero or more 0s

David Keil Theory of Computing 3/11 13

Operators on languages

L1 L2 (concatenation) is the language consisting of strings that are a string in L1 followed by one in L2 L1 | L2 (union) is the language consisting of strings that are either in L1 or L2 L* (Kleene star) is the language consisting of strings that are sequences of strings in L g q g L1 L2 (intersection) is the language consisting of strings that are in both L1 and L2

David Keil Theory of Computing 3/11 14

David Keil

Theory of computing

3/11

Complement of a language

Complement of L is all strings not in L Examples: Complement of * is , complement of 0* is (0+1)* 1 (0+1)* Theorem: The complement of a regular language is regular. Proof: Construct a DFA that accepts all inputs not in L starting with a DFA that recognizes L, L; make all accepting states be non-accepting, all non-accepting states accepting

David Keil Theory of Computing 3/11 15

DFA RE

Cases: Sequence of states with transitions: Concatenate REs (E1E2) C t t RE Branch from one state to two or more others: E1 + E2 + + En Loop (transition from one state to the same or a preceding state): Star the RE for the path from destination of transition to its origin (E*)

David Keil

Theory of Computing

3/11

16

David Keil

Theory of computing

3/11

Observation: Any state q of a DFA M may be associated with a regular expression that denotes the paths that take M from start state to q L(q0) = L(q1) = 00* L(q2) = 1(01)* L(q3) = 11(01)* Reg. expr. for this DFA is L(q1) L(q3)

David Keil Theory of Computing 3/11 17

Theorem: For any RL L, there exists a unique* DFA M s.t. L(M) = L and M has no more states than any other DFA M where M L(M) = L (Myhill-Nerode) There exists an algorithm that reduces a DFA to its minimal version The algorithm p g proceeds by finding y g indistinguishable states and merging them

____ *

Theory of Computing 3/11 18

David Keil

David Keil

Theory of computing

3/11

Minimization example

In the DFA above, states q1 and q2 are indistinguishable The DFA below is minimal for the same language

David Keil

Theory of Computing

3/11

19

We use structural induction on the size of input strings to show that a given DFA accepts only a g g certain language * Example: M (right) accepts L = 101 0 a b Base case: 1 L(M) Induction: From accept state b, adding a 0 keeps string in L, whereas adding a 1 triggers rejection General form of assertion to be proven: (x s.t. |x| = n) x L x L(M) (x s.t. |x| = n + 1) x L x L(M)

David Keil Theory of Computing 3/11 20

David Keil

Theory of computing

3/11

Language specification: n1(x) = 1 Regular expression: 0*10* DFA DFA: Proof of correctness: Base: L(A), because left state rejects 1 L(A), because middle state accepts Induction: 1 takes accepted string to reject state; 0 takes any string to same state

David Keil Theory of Computing 3/11 21

Definition: NFA A = Q, , , q0, F , s.t. : Q 2Q permits transitions to any of several states from a given state on a given symbol, and may have -transitions (transitions without input) At transition from q t q'' on a, with iti f to ith q, q' Q, a , denotes that the NFA can go from q to q' on a

David Keil Theory of Computing 3/11 22

David Keil

Theory of computing

3/11

Problem: Some REs are hard to convert to DFAs, e g DFAs e.g., L = (0 1)*1 NFA solution:

David Keil

Theory of Computing

3/11

23

-transitions

We may consider any state q to have a language, i.e., L(q) = {x * | *(q, x) F} Now, if q has a transition to r, then L(r) L(q), because any string can take M from r to the same states as from q Let -closure(q) = {q} -closure({r | r (q, )}) Solves problem of hard to convert REs, e.g., (00)* | (0 | 1)*

David Keil

Theory of Computing

3/11

24

David Keil

Theory of computing

3/11

Theorem: Every regular language is recognized by some NFA Proof: A DFA is by definition an NFA without nondeterministic transitions

David Keil

Theory of Computing

3/11

25

RE NFA

Theorem: For any regular expression, an NFA may be constructed that recognizes the same language Proof (by construction): for concatenated parts of RE, a sequence of states for +, a fork f * a t for *, transition to first state in starred iti t fi t t t i t d part of RE Example: (0 | 1)* 1 (strings that end in 1)

David Keil Theory of Computing 3/11 26

David Keil

Theory of computing

3/11

RENFA example

RE: (0 | 1)*1 (strings that end 1) NFA:

DFA:

David Keil

Theory of Computing

3/11

27

To construct a DFA M = Q, , , q0, F from an NFA M = Q, , , q0, F, let Q = 2Q (set of all subsets of Q). Then d i from b merging all states with h derive by i ll ih -transitions between them and let (q, a) = Ur q { (r, a) } (the state of M that is the set of all states of M to which there is a transition on a from a state in q) F is the set of states of M that contain some state in F q0 = {q0}

Theory of Computing 3/11 28

David Keil

David Keil

Theory of computing

3/11

The DFA has states that are sets of NFA states, states because the NFA transition function is from states to sets of states -transitions mean that states involved in them are in effect equivalent, so they merge in the DFA M (q, a) of DFA M is the set of states the NFA M can go to from some state that is in q of DFA M.

David Keil Theory of Computing 3/11 29

NFA M = Q, , , q0, F, L(M) = 0+1+

David Keil

Theory of Computing

3/11

30

David Keil

Theory of computing

3/11

NFA M = Q, , , q0, F

David Keil

Theory of Computing

3/11

31

Every NFA can be converted to a DFA, and every DFA is an NFA This means that NFAs have the same computational power as DFAs (recognize the same languages) So the following are equivalent: - Some NFA recognizes language L - Some DFA recognizes L - L is regular - L is generated by a regular expression

David Keil Theory of Computing 3/11 32

David Keil

Theory of computing

3/11

Application of NFAs

For languages L1 and L2, the concatenation L1L2 is {xz | x L1, z L2} Theorem: (L1, L2 RL ) (L1L2 RL) Proof: DFAs M1 and M2 may be concatenated using -transitions as follows: Thi NFA recognizes the l This i h languages of M1 f and M2, concatenated, L(M1) L(M2)

David Keil Theory of Computing 3/11 33

Theorem: For two regular languages, L1 and L2 a. L1 L2 is regular (concatenation) b. b (L1 | L2) is regular (union) c. (L1)* is regular (Kleene star) Proof of (b) and (c):

M1

David Keil

Theory of computing

3/11

Thm: For any DFA, there is an NFA with only one accept state that recognizes the same language Proof: Construct the NFA from the DFA, keeping one accept state qacc and such that each other acceptance state becomes a reject state, and has a transition to qacc

David Keil Theory of Computing 3/11 35

Theorem: If L is regular, then reverse of L, LR (set of elements of L each spelled backwards), backwards) is regular Proof: Construct an NFA that accepts LR: 1. start with a one-accept-state DFA that recognizes L 2. reverse the directions of all transitions 3. swap accepting and starting states 4. new start state is a new state with transitions to each old accept state

David Keil Theory of Computing 3/11 36

David Keil

Theory of computing

3/11

Lemma: A property of infinite regular languages L:

(x L) (x = uvw) s.t. ( k N) uvkw L, |v| > 0 I.e., any string in the language can be expressed as the concatenation of three strings, the middle of which can be pumped any number of times without leaving the language P f of thi lemma uses Pigeonhole Principle Proof f this l Pi h l Pi i l This lemma is used to show that certain languages are not regular

David Keil Theory of Computing 3/11 37

1. Consider RL L and DFA M, s.t. L = L(M), M = Q, , , q0, F , and L is infinite ,| | 2. Then for some x in L, |x| > |Q| 3. So when M inputs x, M has to pass through some state q more than once

4. Hence there exists n0 |Q| s.t. if *(q0 , u) = q, *(q, w) = qF, uvw L, |v| > 0, and |uvw| n0, then uvkw L for any k N.

David Keil Theory of Computing 3/11 38

David Keil

Theory of computing

3/11

Theorem: If L = 0n1n then L RL Proof: By Pumping Lemma, if L is regular then ( x L) ( u, v, w) s.t. (uvw = x |v| > 0 (k) uvkw L) Cases: If v were all 0s then we could pump it with a large enough k so that there are more 0s than 1s so v is not all 0s; similarly v cant be all 1s If v is 0s and 1s, then pumping even once produces a string not in L Hence no v can exist that satisfies the Pumping Lemma Therefore L is not regular

David Keil Theory of Computing 3/11 39

5. Other topics

A foundation for lexical analysis

Lexical analysis (tokenization) is a y ( ) precondition for parsing To recognize identifiers, numerals, operators, etc., implement a DFA in code State is an integer variable, is a switch statement Upon recognizing a lexeme, return its lexical class and restart DFA with next character in source code

David Keil Theory of Computing 3/11 40

David Keil

Theory of computing

3/11

Lexical analyzers

Compiler translates from higher-level language to assembler or machine language Lexical analysis - Finds tokens, indivisible items of code - Tokens are formed by simple rules - Examples: literals, operators, keywords, delimiters, identifiers - Lexer arranges tokens as an ordered list Parsing applies grammar rules to build tokens into a structure

David Keil Theory of Computing 3/11 41

ID = (_ | letter) (letter | digit | _)* DFA has accepting state for letter or underscore, or for y , , g same followed by letter, underscore, or digit Pseudocode:

i 0, q 0 if next char is letter or underscore q1 ii+1 else q2 while next character is letter, underscore, or digit ii+1 return (q = 1)

Theory of Computing 3/11

David Keil

42

David Keil

Theory of computing

3/11

The lexical analysis of a program separates it into atoms or lexemes that cannot be further broken down, such as delimiters, keywords, identifiers, operators, etc. In lexer.cpp and lexer.c, these categories are values of the enumerated type lex_categories:

enum lex_categories { tkNone, tkError, tkID,tkNum, tkString, tkCharLit, tkHdrFName, tkLBrace, tkRBrace, tkLParen,tkRParen, tkLBracket, tkRBracket, tkExtractor, tkInserter, tkSemi, tkComma, tkColon, tkPeriod, tkAddop, tkAsgnop, tkMulop, tkNot, tkOr, tkAnd, tkRelop, tkScope, tkIncOp, tkPound, tkAmpersand, tkRelop tkScope tkIncOp tkPound tkAmpersand tkLess, tkGrtr, tkInclude, tkInt, tkCase, tkChar, tkFloat, tkIf, tkSwitch, tkWhile, tkFor, tkDo, tkStruct, tkClass, tkElse, tkPublic, tkPrivate, tkEnum, tkConst, tkReturn, tkStatic, tkMain, tkVoid, tkCout, tkCin }; David Keil Theory of Computing 3/11 43

Finite transducers

A finite-state transducer may have output symbols as part of its labels FTs are called Mealy and Moore machines On a given input, an FST will output a string of the same length Hence it is not an accepter, but performs transduction from one string to another t d ti f ti t th See topic 6 (Interaction)

David Keil Theory of Computing 3/11 44

David Keil

Theory of computing

3/11

References

Daniel I. I. Cohen. Introduction to Computer Theory, 2nd ed. Wiley, 1997. J. Hopcroft, R. Motwani, J. Ullman. Introduction to Automata Theory, Languages, and Computation, 3rd Ed. Addison-Wesley, 2007. See also JFLAP manual.

David Keil

Theory of Computing

3/11

45

- Final Thesis1Diunggah olehdurvasikiran
- Compiler ConstructionDiunggah olehbilo044
- swa-senDiunggah olehhedwinet
- Moore and Mearly MachineDiunggah olehJibran Elahi
- FSM DRAMDiunggah olehjochenp
- COMPILER - Editorial - CodeChef DiscussDiunggah olehKrutarth Patel
- 14823_02. Chapter 3 - Lexical AnalysisDiunggah olehKislay Singh
- CdcDiunggah olehNishaan Nishaan
- L10 Sets.pdfDiunggah olehJulia Gonzalez
- Concatenate in ExcelDiunggah olehanthony_obiora
- 355mt1f16sol.pdfDiunggah olehCameron Harman
- Hw2Diunggah olehboyangz14
- Set TheoryDiunggah olehprashullp
- Finite State Machines introductionDiunggah olehPratap Kumar Das
- Lecture 4Diunggah olehNeelam Singh
- 9781783282951_Android_SQLite_Essentials_Sample_ChapterDiunggah olehPackt Publishing
- Compiler Design Lab Manual.pdfDiunggah olehTapan Jain
- Cs6660 2m Rejinpaul IVDiunggah olehNagavendran
- MySQL ProxyDiunggah olehOleksiy Kovyrin
- ManualDiunggah olehNikiJerry
- Lecture 21Diunggah olehRamya
- Cpp InternalsDiunggah olehseshavps
- SP-ch1Diunggah olehjigneshbalol29
- cse-lab-manual-of-cd-new.pdfDiunggah olehcompiler&automata
- Lab1Diunggah olehDalma Béla
- AutomatedGenerationOfAutomatedModelsFromIsa5-2Diunggah olehRafael Toledo
- Hw 1 SolutionsDiunggah olehMd Johirul Islam
- Sbo401 Ds Tdp Ext Cust EnDiunggah olehGuilherme C P
- Methods of Behavioral ModelingDiunggah olehFinnz
- oops.PRsolutions.inDiunggah olehmariyanna

- kautex-K3DDiunggah olehAmitava Datta
- Chapter-3-Periodic-Table.pptDiunggah olehanwarhs62
- Broadband SPICE Model GeneratorDiunggah olehKyusang Park
- VendingDiunggah olehWe Loving Each Other
- Siemens-HedrichDiunggah olehpabloalienado
- 2.Override Processing in T24Diunggah olehbobby brigante
- be_6000Diunggah olehaccardi86
- Fujitsu_Lot 4_Service Now Professional ServiceDiunggah olehkiskri
- WFA - 3 - WFA ConceptsDiunggah olehhsnel
- RFP_AynahDiunggah olehKartik Venkatraman
- UDMDiunggah olehdce_40
- 4.1.1.9 Lab - Mapping the Internet.pdfDiunggah olehJay T Fernandez
- Calibration of Mechanical Sieve ShakerDiunggah olehSomyotWiwatpatanapong
- Aerogard Tropical Strength Personal InsectDiunggah olehdavmac79
- Detailedsylabus.blogspot.in-kerala Psc Lecturer in Information Technology Polytechnics Full SyllabusDiunggah olehJustin Mathew
- Realibility 36 (OREDA)Diunggah olehfryderyc
- Chapter 9Diunggah olehAtiqah Nadirah
- En CatalogueDiunggah olehsnf
- DET-773Diunggah olehAli Ahmad
- How to Stop the Avid Application Manager From Launching at Startup - Mac and Windows — Pro Tools ExpDiunggah olehJJBM
- Glacial geological studies of surge-type glaciers in IcelandDiunggah olehvanhoesenj
- ece423_labreport3.pdfDiunggah olehLea Dominique Mangubat Fariola
- Divex Capability BrochureDiunggah olehPaulo Costa Silva
- Offline Signature Identification and VerificationDiunggah olehVihang Eth
- SABP-A-033.pdfDiunggah olehWalid Megahed
- Drill Tool Dynamometer (1)Diunggah olehVeerendra Sahu
- A Simple Classification Approach to Build a BathtubDiunggah olehJohn R Walsh
- Shannons Information TheoryDiunggah olehgirlbinodss
- CameronDiunggah olehSpthefania Diaz
- Me2353 Finite Element Analysis 16 MarksDiunggah olehEkantha Moorthy