Compiler Development (CMPSC 401)
Lexical Analysis Janyl Jumadinova January 29, 2019
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 1 / 40
Compiler Development (CMPSC 401) Lexical Analysis Janyl Jumadinova - - PowerPoint PPT Presentation
Compiler Development (CMPSC 401) Lexical Analysis Janyl Jumadinova January 29, 2019 Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 1 / 40 Automaton and Regular Expressions Deterministic Finite Automata (DFAs),
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 1 / 40
For every RE there is an equivalent NFA For every DFA there is an equivalent RE For every NFA there is an equivalent DFA
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 2 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 3 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 3 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 4 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 5 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 6 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 7 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 8 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 9 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 10 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 11 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 12 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 13 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 14 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 15 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 16 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 17 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 18 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 18 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 18 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 18 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 19 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 20 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 21 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 22 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 23 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 24 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 25 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 26 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 27 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 28 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 29 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 30 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 31 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 32 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 32 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 32 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 33 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 33 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 33 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 34 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 35 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 36 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 37 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 38 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 38 / 40
1 User Code (e.g. import statements), included top of generated Java;
2 Options “Marcos” (named REs); code to be spliced into generated
3 Rule = Pattern + Action. 4 Pattern = Regular Expression. 5 Action = Snippet of Java code (Actions triggered whenever pattern
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 39 / 40
Janyl Jumadinova Compiler Development (CMPSC 401) January 29, 2019 40 / 40