1 / 12

4b Lexical analysis Finite Automata

4b Lexical analysis Finite Automata. FA also called Finite State Machine (FSM) Abstract model of a computing entity. Decides whether to accept or reject a string. Every RE can be represented as a FA and vice versa Two types of FAs:

janlong
Download Presentation

4b Lexical analysis Finite Automata

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 4bLexical analysis Finite Automata

  2. FA also called Finite State Machine (FSM) Abstract model of a computing entity. Decides whether to accept or reject a string. Every RE can be represented as a FA and vice versa Two types of FAs: Non-deterministic (NFA): more than one action for same input symbol Deterministic (DFA): at most one action for a given input symbol Example: how do we write a program to recognize the Java keyword “int”? n t i q2 q1 q0 q3 Finite Automata (FA)

  3. REs are a declarative way to describe the tokens Describes what is a token, but not how to recognize the token FAs are used to describe how the token is recognized FAs are easy to simulate in a programs A 1-1 correspondence between FAs & REs A scanner generator (e.g., lex) bridges the gap between regular expressions and FAs. String stream scanner program Finiteautomaton Regularexpression Scanner generator Tokens RE and Finite State Automaton (FA)

  4. a a b b q2 q1 q0 q3 b Transition Diagram • FA can be represented using transition diagram • A transition diagram has: • States represented by circles; • An Alphabet (Σ) represented by labels on edges; • Transitions represented by labeled directed edges between states. The label is the input symbol; • One Start State shown as having an arrow head; • One or more Final State(s) represented by double circles. • Example transition diagram to recognize (a|b)*abb

  5. a a* a+ (a|b)* a a a, b start start start start 1 0 1 0 0 a a start a 0 0 b Simple examples of FA

  6. Define input alphabet and initial state Draw the transition diagram Check Do all states have out-going arcs labeled with all the input symbols (DFA) Any missing final states? Any duplicate states? Can all strings in the language can be accepted? Are any strings not in the language accepted? Optionally name the states Defining a DFA/NFA

  7. Construct a DFA accepting a language L over the alphabet {0, 1} where L is set of strings with any number of 0s followed by any number of 1s Regular expression: 0*1*  = {0, 1} Draw initial state of the transition diagram Example of constructing a FA Start

  8. Draft the transition diagram 0 1 0 0 1 1 Start 0 1 Start 1 Example of constructing a FA • Is 111 accepted? • Leftmost state has missed an arc for input 1

  9. 0 1 0 1 Start 1 Example of constructing a FA • Is 00 accepted? • The leftmost two states are also final states • First state from the left:  is also accepted • Second state from the left:strings with “0”s only are also accepted

  10. Check that they are correct All strings in the language can be accepted , the empty string, is accepted strings with 0s/1s only are accepted No strings not in language are accepted Naming all the states 0 0 1 1 1 1 Start Start Example of constructing a FA • The leftmost two states are duplicate • their arcs point to the same states with same symbols q0 q1

  11. a a b b q2 q1 q0 q3 b Transition table • A transition table is a good way to implement a FSA • One row for each state, S • One column for each symbol, A • Cell (S,A) is set of states can reachable from S on input A • NFAs have at least one cell with more than one state • DFAs have a singe state in every cell (a|b)*abb

  12. RE Thompson construction NFA Subset construction DFA Minimization Minimized DFA DFA simulation Scanner generator Program DFA to program • NFA is more concise but not as easy to implement; • DFAs easily simulated via algorithm • Every NFA can be converted to an equivalent DFA • What does equivalent mean? • There are general algorithms to ‘minimize’ a DFA • Minimal in what sense? • There are systems to convert REs to programs using a minimal DFA to recognize strings defined by the RE • Learn more in 451 (automata theory) and 431 (Compiler design)

More Related