CS 10: Problem solving via Object Oriented Programming Winter 2017
|
|
- Sharyl Nash
- 5 years ago
- Views:
Transcription
1 CS : Problem solving via Object Oriented Programming Winter 27 Tim Pierson 26 (255) Sudikoff Day 9 PaHern Matching
2 Agenda. Regular expressions 2. Finite automata 3. ValidaSng input 4. Modeling a complex system 2
3 SomeSmes it is useful to be able to detect or require paherns addresses follow a pahern: mailbox@domain.tld example: tjp@cs.dartmouth.edu We can specify a pahern or rules for addresses: <characters>.<com edu org > One or more characters Followed One or more characters Followed by. Followed by one of a set predefined of values 3
4 Regular expressions (RegEx) are a common way of looking for paherns in Strings Regular expressions (regex) Most programming languages have support for regex Can be really complex and messy, but there are basic paherns Opera2on Meaning Example Character Match a character next a matches a 4
5 Regular expressions (RegEx) are a common way of looking for paherns in Strings Regular expressions (regex) Most programming languages have support for regex Can be really complex and messy, but there are basic paherns Opera2on Meaning Example Character Match a character next a matches a ConcatenaSon: One acer the other cat matches c then a then t R R 2 5
6 Regular expressions (RegEx) are a common way of looking for paherns in Strings Regular expressions (regex) Most programming languages have support for regex Can be really complex and messy, but there are basic paherns Opera2on Meaning Example Character Match a character next a matches a ConcatenaSon: One acer the other cat matches c then a then t R R 2 AlternaSve: R R 2 One or the other a e i o u matches any vowel 6
7 Regular expressions (RegEx) are a common way of looking for paherns in Strings Regular expressions (regex) Most programming languages have support for regex Can be really complex and messy, but there are basic paherns Opera2on Meaning Example Character Match a character next a matches a ConcatenaSon: One acer the other cat matches c then a then t R R 2 AlternaSve: R R 2 One or the other a e i o u matches any vowel Grouping: (R) Establishes order; allows reference/extracson c(a o)t matches cat or cot 7
8 Regular expressions (RegEx) are a common way of looking for paherns in Strings Regular expressions (regex) Most programming languages have support for regex Can be really complex and messy, but there are basic paherns Opera2on Meaning Example Character Match a character next a matches a ConcatenaSon: One acer the other cat matches c then a then t R R 2 AlternaSve: R R 2 One or the other a e i o u matches any vowel Grouping: (R) Character classes [c - c 2 ] and [^c - c 2 ] Establishes order; allows reference/extracson AlternaSve characters and excluded characters c(a o)t matches cat or cot [a- c] matches a or b or c, while [^a- c] matches any but abc 8
9 Regular expressions (RegEx) are a common way of looking for paherns in Strings Regular expressions (regex) Most programming languages have support for regex Can be really complex and messy, but there are basic paherns Opera2on Meaning Example Character Match a character next a matches a ConcatenaSon: One acer the other cat matches c then a then t R R 2 AlternaSve: R R 2 One or the other a e i o u matches any vowel Grouping: (R) Character classes [c - c 2 ] and [^c - c 2 ] Establishes order; allows reference/extracson AlternaSve characters and excluded characters c(a o)t matches cat or cot [a- c] matches a or b or c, while [^a- c] matches any but abc RepeSSon: R* Matches or more Smes ca*t matches ct, cat, caat 9
10 Regular expressions (RegEx) are a common way of looking for paherns in Strings Regular expressions (regex) Most programming languages have support for regex Can be really complex and messy, but there are basic paherns Opera2on Meaning Example Character Match a character next a matches a ConcatenaSon: One acer the other cat matches c then a then t R R 2 AlternaSve: R R 2 One or the other a e i o u matches any vowel Grouping: (R) Character classes [c - c 2 ] and [^c - c 2 ] Establishes order; allows reference/extracson AlternaSve characters and excluded characters c(a o)t matches cat or cot [a- c] matches a or b or c, while [^a- c] matches any but abc RepeSSon: R* Matches or more Smes ca*t matches ct, cat, caat Non- zero repesson: R+ Matches or more Smes ca+t matches cat or caat or caaat, but not ct
11 We can use RegEx to see if an address is valid addresses follow a pahern: mailbox@domain.tld example: tjp@cs.dartmouth.edu We can specify a pahern or rules for addresses: <characters>.<com edu org > As a simple RegEx: [a- z]+@[a- z.]* [a- z]+. (com edu org ) Check: tjp@cs.dartmouth.edu - - valid Blob.x - - invalid
12 A Graph can implement a RegEx addresses follow a pahern: mailbox@domain.tld example: tjp@cs.dartmouth.edu com a- a- z. edu We can specify a pahern or rules for addresses: <characters>.<com edu org > A Graph can represent the pahern for addresses Sample addresses can be easily verified if in correct form 2 org...
13 Key points. We can define a set of rules that must be followed 2. We can represent those rules with a graph 3
14 Agenda. Regular expressions 2. Finite automata 3. ValidaSng input 4. Modeling a complex system 4
15 Finite Automata (FA) can be used for many problems, two uses are common Common Finite Automata use cases. ValidaSng input 2. Tracking the state of a system, changing state as a response to events 5
16 We can model States as versces and TransiSons as edges in a directed graph Finite Automata valida2ng input A States as versces TransiSon from A to B if input, else C Edges as transisons C B,, Stay in C regardless if given or Edges can loop back to same vertex Set of labels called alphabet Double circle indicates valid end states What does this do? Accepts any input starsng with 6
17 Agenda. Regular expressions 2. Finite automata 3. ValidaSng input 4. Modeling a complex system 7
18 Assume leaves represent valid end states Can loop back to root from leaf Invalid if input ends and not at end state Extension of Huffman, go back to root acer finding leaf Finite Automata can validate input Finite Automata valida2ng input Input a Result c a b
19 Assume leaves represent valid end states Can loop back to root from leaf Invalid if input ends and not at end state Extension of Huffman, go back to root acer finding leaf Finite Automata can validate input Finite Automata valida2ng input Input Result a b c a b
20 Assume leaves represent valid end states Can loop back to root from leaf Invalid if input ends and not at end state Extension of Huffman, go back to root acer finding leaf Finite Automata can validate input Finite Automata valida2ng input c Input Result a b c a b
21 Assume leaves represent valid end states Can loop back to root from leaf Invalid if input ends and not at end state Extension of Huffman, go back to root acer finding leaf Finite Automata can validate input Finite Automata valida2ng input c Input Result a b c invalid a b
22 Assume leaves represent valid end states Can loop back to root from leaf Invalid if input ends and not at end state Extension of Huffman, go back to root acer finding leaf Finite Automata can validate input Finite Automata valida2ng input c Input Result a b c Invalid acca a b
23 Finite Automata come in two flavors, DeterminisSc and NondeterminisSc A Determinis2c Finite Automaton (DFA) B C,, Nondeterminis2c Finite Automaton (NFA) A B May have,, or more choices for transison from each state, Exactly one choice for each possible input No ambiguity These both do the same thing 23
24 With DFAs we have to specify each State transison, with NFAs we do not NFA valida2ng input c o t Valid inputs: cot or cat a t All else invalid There are,, or more choices for each leher
25 With NFAs we can have, or more choices for each input NFA valida2ng input c o a t coat or cot t c o a t coat or cot c o t
26 SomeSmes we cannot map from a State a single next State NFAs can have mul2ple next States A, B E Key Input Paths A {B,C} A {B} C D 26
27 SomeSmes we cannot map from a State a single next State NFAs can have mul2ple next States A, B E Key Input Paths A {B,C} A {B} B {A} B {E} C D 27
28 SomeSmes we cannot map from a State a single next State NFAs can have mul2ple next States A C, B D E Key Input Paths A {B,C} A {B} B {A} B {E} C {} C {D} 28
29 SomeSmes we cannot map from a State a single next State NFAs can have mul2ple next States A C,, B D E Key Input Paths A {B,C} A {B} B {A} B {E} C {} C {D} D {B,D} D {} 29
30 SomeSmes we cannot map from a State a single next State NFAs can have mul2ple next States A C,, B D E Key Input Paths A {B,C} A {B} B {A} B {E} C {} C {D} D {B,D} D {} E {} E {} 3
31 In that case, must keep track of all possible States NFAs can have mul2ple next States Input Possible States A, B E {A}, C D 3
32 In that case, must keep track of all possible States NFAs can have mul2ple next States Input Possible States A, B E {A} {B,C}, C D 32
33 In that case, must keep track of all possible States NFAs can have mul2ple next States Input Possible States A, B E {A} {B,C}, {E,D} C D 33
34 In that case, must keep track of all possible States NFAs can have mul2ple next States Input Possible States A, B E {A} {B,C}, {E,D} {B,D} C D 34
35 In that case, must keep track of all possible States NFAs can have mul2ple next States Input Possible States A, B E {A} {B,C}, {E,D} {B,D} C D 35
36 In that case, must keep track of all possible States NFAs can have mul2ple next States Input Possible States A, B E {A} {B,C}, {E,D} {B,D} C D 36
37 What does this NFA do?, A B C, E, D 37
38 Agenda. Regular expressions 2. Finite automata 3. ValidaSng input 4. Modeling a complex system 38
39 Finite Automata are also used to track the State of a system as event occur Sensors detect arrival and departure of cars in spaces Image: Fybr.com 39
40 Finite Automata are also used to track the State of a system as event occur Parking meters detect payments and payment expira2ons Image: Fybr.com 4
41 Combine data for all spaces on a block to show drivers where they can find parking Fisherman s Wharf in San Francisco, CA Green < 75% occupied, yellow = 75-9% occupied, red > 9% occupied Image: sfpark.org 4
42 CombinaSon of occupancy and payments leads to four states for each space Simplified automobile parking Payment status Vacant Not Paid Vacant Not paid Paid Vacant Paid Occupancy Occupied Occupied Not paid Occupied Paid 42
43 Occupancy and payment events can occur and change the state of the space Simplified automobile parking Payment status Vacant Not Paid Vacant Not paid Paid Vacant Paid Occupancy event raised by sensor: Vehicle arrives Vehicle departs Occupancy Occupied Occupied Not paid Occupied Paid Payment events raised by parking meter: Payment made Time expires Events cause the system to transi2on between states 43
44 The parking space could be modeled with a complicated if- then structure Simplified automobile parking Payment status Vacant Not Paid Vacant Not paid Paid Vacant Paid Occupancy Occupied Occupied Not paid Occupied Paid void handleevent(event e) { if (event== Payment ) { if (occupancy== Occupied && payment== Not Paid ) { //add Sme on meter elseif (occupancy= Occupied && payment== Paid ) { //increment Sme on meter 44
45 The parking space could be modeled more simply with a Finite Automata Simplified automobile parking Meter paid Vacant, Not Paid Payment expired Sensor detects vehicle arrival Sensor detects vehicle departure Payment expired Occupied, Not Paid Meter paid Vacant, Paid Sensor detects vehicle departure Sensor detects vehicle arrival Occupied, Paid 45
46 The parking space could be modeled more simply with a Finite Automata Simplified automobile parking Meter paid Vacant, Not Paid Payment expired Sensor detects vehicle arrival Sensor detects vehicle departure Payment expired Occupied, Not Paid Meter paid Sensor probably missed vehicle arrival, go figure out why! Vacant, Paid Sensor detects vehicle departure Sensor detects vehicle arrival Occupied, Paid 46
47 Code review DFA.java Store start as String Store ends as a Set (could be mulsple ends) Constructor Takes set of States (with and Ends labeled) and transisons (A,B, means from A go to B if given ) Track start and end versces Track transisons as Map (state- > Map(character, next state)) match with current = start For each input Ensure transison to next state is valid Move to next state Return final state 47
48 Code review NFA.java Store start as String Store ends as a Set (could be mulsple ends) TransiSons now store list of possible states Constructor Takes set of States (with and Ends labeled) and transisons (A,B, means from A go to B if given ) Track start and end versces TransacSons: Map (state- > Map(character, List(String))) match with currentstates = start (could be mulsple valid current states!) For each input Check possible next states from all valid current states 48
Behaviour Diagrams UML
Behaviour Diagrams UML Behaviour Diagrams Structure Diagrams are used to describe the static composition of components (i.e., constraints on what intstances may exist at run-time). Interaction Diagrams
More informationCS 432 Fall Mike Lam, Professor. Finite Automata Conversions and Lexing
CS 432 Fall 2017 Mike Lam, Professor Finite Automata Conversions and Lexing Finite Automata Key result: all of the following have the same expressive power (i.e., they all describe regular languages):
More informationCSE450. Translation of Programming Languages. Lecture 20: Automata and Regular Expressions
CSE45 Translation of Programming Languages Lecture 2: Automata and Regular Expressions Finite Automata Regular Expression = Specification Finite Automata = Implementation A finite automaton consists of:
More informationLast lecture CMSC330. This lecture. Finite Automata: States. Finite Automata. Implementing Regular Expressions. Languages. Regular expressions
Last lecture CMSC330 Finite Automata Languages Sets of strings Operations on languages Regular expressions Constants Operators Precedence 1 2 Finite automata States Transitions Examples Types This lecture
More informationMidterm I (Solutions) CS164, Spring 2002
Midterm I (Solutions) CS164, Spring 2002 February 28, 2002 Please read all instructions (including these) carefully. There are 9 pages in this exam and 5 questions, each with multiple parts. Some questions
More informationFinite automata. We have looked at using Lex to build a scanner on the basis of regular expressions.
Finite automata We have looked at using Lex to build a scanner on the basis of regular expressions. Now we begin to consider the results from automata theory that make Lex possible. Recall: An alphabet
More informationR10 SET a) Construct a DFA that accepts an identifier of a C programming language. b) Differentiate between NFA and DFA?
R1 SET - 1 1. a) Construct a DFA that accepts an identifier of a C programming language. b) Differentiate between NFA and DFA? 2. a) Design a DFA that accepts the language over = {, 1} of all strings that
More informationStructure of Programming Languages Lecture 3
Structure of Programming Languages Lecture 3 CSCI 6636 4536 Spring 2017 CSCI 6636 4536 Lecture 3... 1/25 Spring 2017 1 / 25 Outline 1 Finite Languages Deterministic Finite State Machines Lexical Analysis
More informationJNTUWORLD. Code No: R
Code No: R09220504 R09 SET-1 B.Tech II Year - II Semester Examinations, April-May, 2012 FORMAL LANGUAGES AND AUTOMATA THEORY (Computer Science and Engineering) Time: 3 hours Max. Marks: 75 Answer any five
More informationMIT Specifying Languages with Regular Expressions and Context-Free Grammars. Martin Rinard Massachusetts Institute of Technology
MIT 6.035 Specifying Languages with Regular essions and Context-Free Grammars Martin Rinard Massachusetts Institute of Technology Language Definition Problem How to precisely define language Layered structure
More informationMIT Specifying Languages with Regular Expressions and Context-Free Grammars
MIT 6.035 Specifying Languages with Regular essions and Context-Free Grammars Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology Language Definition Problem How to precisely
More informationRegular Languages and Regular Expressions
Regular Languages and Regular Expressions According to our definition, a language is regular if there exists a finite state automaton that accepts it. Therefore every regular language can be described
More informationLexical Analysis. Implementation: Finite Automata
Lexical Analysis Implementation: Finite Automata Outline Specifying lexical structure using regular expressions Finite automata Deterministic Finite Automata (DFAs) Non-deterministic Finite Automata (NFAs)
More informationCSE450. Translation of Programming Languages. Automata, Simple Language Design Principles
CSE45 Translation of Programming Languages Automata, Simple Language Design Principles Finite Automata State Graphs A state: The start state: An accepting state: A transition: a A Simple Example A finite
More informationAnswer All Questions. All Questions Carry Equal Marks. Time: 20 Min. Marks: 10.
Code No: 134BD Set No. 1 JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY HYDERABAD B.Tech. II Year II Sem., I Mid-Term Examinations, February - 2018 FORMAL LANGUAGES AND AUTOMATA THEORY Objective Exam Name:
More informationLexical Analysis. COMP 524, Spring 2014 Bryan Ward
Lexical Analysis COMP 524, Spring 2014 Bryan Ward Based in part on slides and notes by J. Erickson, S. Krishnan, B. Brandenburg, S. Olivier, A. Block and others The Big Picture Character Stream Scanner
More informationCS 403 Compiler Construction Lecture 3 Lexical Analysis [Based on Chapter 1, 2, 3 of Aho2]
CS 403 Compiler Construction Lecture 3 Lexical Analysis [Based on Chapter 1, 2, 3 of Aho2] 1 What is Lexical Analysis? First step of a compiler. Reads/scans/identify the characters in the program and groups
More informationCS2 Practical 2 CS2Ah
CS2 Practical 2 Finite automata This practical is based on material in the language processing thread. The practical is made up of two parts. Part A consists of four paper and pencil exercises, designed
More informationImplementation of Lexical Analysis
Implementation of Lexical Analysis Lecture 4 (Modified by Professor Vijay Ganesh) Tips on Building Large Systems KISS (Keep It Simple, Stupid!) Don t optimize prematurely Design systems that can be tested
More informationCS 310: State Transition Diagrams
CS 30: State Transition Diagrams Stefan D. Bruda Winter 207 STATE TRANSITION DIAGRAMS Finite directed graph Edges (transitions) labeled with symbols from an alphabet Nodes (states) labeled only for convenience
More informationScanning. COMP 520: Compiler Design (4 credits) Professor Laurie Hendren.
COMP 520 Winter 2016 Scanning COMP 520: Compiler Design (4 credits) Professor Laurie Hendren hendren@cs.mcgill.ca Scanning (1) COMP 520 Winter 2016 Scanning (2) Readings Crafting a Compiler: Chapter 2,
More informationConcepts Introduced in Chapter 3. Lexical Analysis. Lexical Analysis Terms. Attributes for Tokens
Concepts Introduced in Chapter 3 Lexical Analysis Regular Expressions (REs) Nondeterministic Finite Automata (NFA) Converting an RE to an NFA Deterministic Finite Automatic (DFA) Lexical Analysis Why separate
More informationAutomating Construction of Lexers
Automating Construction of Lexers Regular Expression to Programs Not all regular expressions are simple. How can we write a lexer for (a*b aaa)? Tokenizing aaaab Vs aaaaaa Regular Expression Finite state
More informationNon-deterministic Finite Automata (NFA)
Non-deterministic Finite Automata (NFA) CAN have transitions on the same input to different states Can include a ε or λ transition (i.e. move to new state without reading input) Often easier to design
More informationCMSC330 Spring 2015 Midterm #1 9:30am/11:00am/12:30pm
CMSC330 Spring 2015 Midterm #1 9:30am/11:00am/12:30pm Name: Discussion Time (circle one): 10am 11am 12pm 1pm 2pm 3pm Discussion TA (circle one): Amelia Casey Chris Mike Elizabeth Eric Tommy Instructions
More informationFormal Definition of Computation. Formal Definition of Computation p.1/28
Formal Definition of Computation Formal Definition of Computation p.1/28 Computation model The model of computation considered so far is the work performed by a finite automaton Formal Definition of Computation
More informationChapter Seven: Regular Expressions
Chapter Seven: Regular Expressions Regular Expressions We have seen that DFAs and NFAs have equal definitional power. It turns out that regular expressions also have exactly that same definitional power:
More informationlec3:nondeterministic finite state automata
lec3:nondeterministic finite state automata 1 1.introduction Nondeterminism is a useful concept that has great impact on the theory of computation. When the machine is in a given state and reads the next
More informationImplementation of Lexical Analysis. Lecture 4
Implementation of Lexical Analysis Lecture 4 1 Tips on Building Large Systems KISS (Keep It Simple, Stupid!) Don t optimize prematurely Design systems that can be tested It is easier to modify a working
More informationOptimizing Finite Automata
Optimizing Finite Automata We can improve the DFA created by MakeDeterministic. Sometimes a DFA will have more states than necessary. For every DFA there is a unique smallest equivalent DFA (fewest states
More informationComputer Science Department Carlos III University of Madrid Leganés (Spain) David Griol Barres
Computer Science Department Carlos III University of Madrid Leganés (Spain) David Griol Barres dgriol@inf.uc3m.es Introduction: Definitions Lexical analysis or scanning: To read from left-to-right a source
More informationAutomata & languages. A primer on the Theory of Computation. The imitation game (2014) Benedict Cumberbatch Alan Turing ( ) Laurent Vanbever
Automata & languages A primer on the Theory of Computation The imitation game (24) Benedict Cumberbatch Alan Turing (92-954) Laurent Vanbever www.vanbever.eu ETH Zürich (D-ITET) September, 2 27 Brief CV
More informationCS 122/132 Midterm Exam Winter 2003
Date: 24-Feb-2003 Time: 7:00 pm - 9:00 pm Permitted Aids: None CS 122/132 Midterm Exam Winter 2003 Printed Last Initials: ID: Signature: Please check off your PRActicum section from the list below: Arnie
More informationImplementation of Lexical Analysis
Implementation of Lexical Analysis Outline Specifying lexical structure using regular expressions Finite automata Deterministic Finite Automata (DFAs) Non-deterministic Finite Automata (NFAs) Implementation
More informationMidterm I - Solution CS164, Spring 2014
164sp14 Midterm 1 - Solution Midterm I - Solution CS164, Spring 2014 March 3, 2014 Please read all instructions (including these) carefully. This is a closed-book exam. You are allowed a one-page handwritten
More informationImplementation of Lexical Analysis
Implementation of Lexical Analysis Outline Specifying lexical structure using regular expressions Finite automata Deterministic Finite Automata (DFAs) Non-deterministic Finite Automata (NFAs) Implementation
More informationCSE Lecture 4: Scanning and parsing 28 Jan Nate Nystrom University of Texas at Arlington
CSE 5317 Lecture 4: Scanning and parsing 28 Jan 2010 Nate Nystrom University of Texas at Arlington Administrivia hcp://groups.google.com/group/uta- cse- 3302 I will add you to the group soon TA Derek White
More information6 NFA and Regular Expressions
Formal Language and Automata Theory: CS21004 6 NFA and Regular Expressions 6.1 Nondeterministic Finite Automata A nondeterministic finite automata (NFA) is a 5-tuple where 1. is a finite set of states
More informationWeek 2: Syntax Specification, Grammars
CS320 Principles of Programming Languages Week 2: Syntax Specification, Grammars Jingke Li Portland State University Fall 2017 PSU CS320 Fall 17 Week 2: Syntax Specification, Grammars 1/ 62 Words and Sentences
More informationCS 164 Programming Languages and Compilers Handout 9. Midterm I Solution
Midterm I Solution Please read all instructions (including these) carefully. There are 5 questions on the exam, some with multiple parts. You have 1 hour and 20 minutes to work on the exam. The exam is
More informationLexical Analyzer Scanner
Lexical Analyzer Scanner ASU Textbook Chapter 3.1, 3.3, 3.4, 3.6, 3.7, 3.5 Tsan-sheng Hsu tshsu@iis.sinica.edu.tw http://www.iis.sinica.edu.tw/~tshsu 1 Main tasks Read the input characters and produce
More informationDavid Griol Barres Computer Science Department Carlos III University of Madrid Leganés (Spain)
David Griol Barres dgriol@inf.uc3m.es Computer Science Department Carlos III University of Madrid Leganés (Spain) OUTLINE Introduction: Definitions The role of the Lexical Analyzer Scanner Implementation
More informationCompiler Design. 2. Regular Expressions & Finite State Automata (FSA) Kanat Bolazar January 21, 2010
Compiler Design. Regular Expressions & Finite State Automata (FSA) Kanat Bolazar January 1, 010 Contents In these slides we will see 1.Introduction, Concepts and Notations.Regular Expressions, Regular
More informationSystems Programming/ C and UNIX
Systems Programming/ C and UNIX December 7-10, 2017 1/17 December 7-10, 2017 1 / 17 Outline 1 2 Using find 2/17 December 7-10, 2017 2 / 17 String Pattern Matching Tools Regular Expressions Simple Examples
More informationLecture 3 Regular Expressions and Automata
Lecture 3 Regular Expressions and Automata CS 6320 Fall 2018 @ Dan I. Moldovan, Human Language Technology Research Institute, The University of Texas at Dallas 78 Outline Regular Expressions Finite State
More information1. (10 points) Draw the state diagram of the DFA that recognizes the language over Σ = {0, 1}
CSE 5 Homework 2 Due: Monday October 6, 27 Instructions Upload a single file to Gradescope for each group. should be on each page of the submission. All group members names and PIDs Your assignments in
More informationCMSC330 Spring 2018 Midterm 2 9:30am/ 11:00am/ 3:30pm
CMSC330 Spring 2018 Midterm 2 9:30am/ 11:00am/ 3:30pm Name (PRINT YOUR NAME as it appears on gradescope ): SOLUTION Discussion Time (circle one) 10am 11am 12pm 1pm 2pm 3pm Instructions Do not start this
More informationFigure 2.1: Role of Lexical Analyzer
Chapter 2 Lexical Analysis Lexical analysis or scanning is the process which reads the stream of characters making up the source program from left-to-right and groups them into tokens. The lexical analyzer
More informationQUESTION BANK. Formal Languages and Automata Theory(10CS56)
QUESTION BANK Formal Languages and Automata Theory(10CS56) Chapter 1 1. Define the following terms & explain with examples. i) Grammar ii) Language 2. Mention the difference between DFA, NFA and εnfa.
More informationCS 536 Introduction to Programming Languages and Compilers Charles N. Fischer Lecture 3
CS 536 Introduction to Programming Languages and Compilers Charles N. Fischer Lecture 3 CS 536 Spring 2015 1 Scanning A scanner transforms a character stream into a token stream. A scanner is sometimes
More informationCS415 Compilers. Lexical Analysis
CS415 Compilers Lexical Analysis These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University Lecture 7 1 Announcements First project and second homework
More informationCMSC330 Spring 2015 Midterm #1 9:30am/11:00am/12:30pm
CMSC330 Spring 2015 Midterm #1 9:30am/11:00am/12:30pm Name: Discussion Time (circle one): 10am 11am 12pm 1pm 2pm 3pm Discussion TA (circle one): Amelia Casey Chris Mike Elizabeth Eric Tommy Instructions
More informationTrees : Part 1. Section 4.1. Theory and Terminology. A Tree? A Tree? Theory and Terminology. Theory and Terminology
Trees : Part Section. () (2) Preorder, Postorder and Levelorder Traversals Definition: A tree is a connected graph with no cycles Consequences: Between any two vertices, there is exactly one unique path
More informationFormal Languages and Compilers Lecture IV: Regular Languages and Finite. Finite Automata
Formal Languages and Compilers Lecture IV: Regular Languages and Finite Automata Free University of Bozen-Bolzano Faculty of Computer Science POS Building, Room: 2.03 artale@inf.unibz.it http://www.inf.unibz.it/
More informationFormal Languages and Compilers Lecture VI: Lexical Analysis
Formal Languages and Compilers Lecture VI: Lexical Analysis Free University of Bozen-Bolzano Faculty of Computer Science POS Building, Room: 2.03 artale@inf.unibz.it http://www.inf.unibz.it/ artale/ Formal
More informationCMSC330 Fall 2014 Midterm 1 Solution
CMSC330 Fall 2014 Midterm 1 Solution 1. (8 pts) Programming languages (PL) et al. For the following multiple choice questions, circle the letter(s) on the right corresponding to the best answer(s) to each
More informationCSCE 314 Programming Languages
CSCE 314 Programming Languages Syntactic Analysis Dr. Hyunyoung Lee 1 What Is a Programming Language? Language = syntax + semantics The syntax of a language is concerned with the form of a program: how
More informationCMSC330 Fall 2014 Midterm 1 Grading
CMSC330 Fall 2014 Midterm 1 Grading 1. (8 pts) Programming languages (PL) et al. For the following multiple choice questions, circle the letter(s) on the right corresponding to the best answer(s) to each
More informationCS164: Midterm I. Fall 2003
CS164: Midterm I Fall 2003 Please read all instructions (including these) carefully. Write your name, login, and circle the time of your section. Read each question carefully and think about what s being
More information2/18/14. Uses for Discrete Math in Computer Science. What is discrete? Why Study Discrete Math? Sets and Functions (Rosen, Sections 2.1,2.2, 2.
Why Study Discrete Math? Sets and Functions (Rosen, Sections 2.1,2.2, 2.3) TOPICS Discrete math Set Definition Set Operations Tuples Digital computers are based on discrete units of data (bits). Therefore,
More informationCT32 COMPUTER NETWORKS DEC 2015
Q.2 a. Using the principle of mathematical induction, prove that (10 (2n-1) +1) is divisible by 11 for all n N (8) Let P(n): (10 (2n-1) +1) is divisible by 11 For n = 1, the given expression becomes (10
More informationCMSC 330, Fall 2018 Midterm 2
CMSC 330, Fall 2018 Midterm 2 Name Teaching Assistant Kameron Aaron Danny Chris Michael P. Justin Cameron B. Derek Kyle Hasan Shriraj Cameron M. Alex Michael S. Pei-Jo Instructions Do not start this exam
More informationMonday, August 26, 13. Scanners
Scanners Scanners Sometimes called lexers Recall: scanners break input stream up into a set of tokens Identifiers, reserved words, literals, etc. What do we need to know? How do we define tokens? How can
More informationTheoretical Part. Chapter one:- - What are the Phases of compiler? Answer:
Theoretical Part Chapter one:- - What are the Phases of compiler? Six phases Scanner Parser Semantic Analyzer Source code optimizer Code generator Target Code Optimizer Three auxiliary components Literal
More informationWednesday, September 3, 14. Scanners
Scanners Scanners Sometimes called lexers Recall: scanners break input stream up into a set of tokens Identifiers, reserved words, literals, etc. What do we need to know? How do we define tokens? How can
More informationCSE 105 THEORY OF COMPUTATION
CSE 105 THEORY OF COMPUTATION Spring 2018 http://cseweb.ucsd.edu/classes/sp18/cse105-ab/ Today's learning goals Sipser Section 2.2 Define push-down automata informally and formally Trace the computation
More informationCSCI 2132 Software Development. Lecture 7: Wildcards and Regular Expressions
CSCI 2132 Software Development Lecture 7: Wildcards and Regular Expressions Instructor: Vlado Keselj Faculty of Computer Science Dalhousie University 20-Sep-2017 (7) CSCI 2132 1 Previous Lecture Pipes
More information14.1 Encoding for different models of computation
Lecture 14 Decidable languages In the previous lecture we discussed some examples of encoding schemes, through which various objects can be represented by strings over a given alphabet. We will begin this
More informationCSEP 501 Compilers. Languages, Automata, Regular Expressions & Scanners Hal Perkins Winter /8/ Hal Perkins & UW CSE B-1
CSEP 501 Compilers Languages, Automata, Regular Expressions & Scanners Hal Perkins Winter 2008 1/8/2008 2002-08 Hal Perkins & UW CSE B-1 Agenda Basic concepts of formal grammars (review) Regular expressions
More informationCS5371 Theory of Computation. Lecture 8: Automata Theory VI (PDA, PDA = CFG)
CS5371 Theory of Computation Lecture 8: Automata Theory VI (PDA, PDA = CFG) Objectives Introduce Pushdown Automaton (PDA) Show that PDA = CFG In terms of descriptive power Pushdown Automaton (PDA) Roughly
More informationScanners. Xiaokang Qiu Purdue University. August 24, ECE 468 Adapted from Kulkarni 2012
Scanners Xiaokang Qiu Purdue University ECE 468 Adapted from Kulkarni 2012 August 24, 2016 Scanners Sometimes called lexers Recall: scanners break input stream up into a set of tokens Identifiers, reserved
More information2010: Compilers REVIEW: REGULAR EXPRESSIONS HOW TO USE REGULAR EXPRESSIONS
2010: Compilers Lexical Analysis: Finite State Automata Dr. Licia Capra UCL/CS REVIEW: REGULAR EXPRESSIONS a Character in A Empty string R S Alternation (either R or S) RS Concatenation (R followed by
More informationLexical Analysis. Lecture 3-4
Lexical Analysis Lecture 3-4 Notes by G. Necula, with additions by P. Hilfinger Prof. Hilfinger CS 164 Lecture 3-4 1 Administrivia I suggest you start looking at Python (see link on class home page). Please
More informationPattern Matching. An Introduction to File Globs and Regular Expressions
Pattern Matching An Introduction to File Globs and Regular Expressions Copyright 2006 2009 Stewart Weiss The danger that lies ahead Much to your disadvantage, there are two different forms of patterns
More informationPattern Matching. An Introduction to File Globs and Regular Expressions. Adapted from Practical Unix and Programming Hunter College
Pattern Matching An Introduction to File Globs and Regular Expressions Adapted from Practical Unix and Programming Hunter College Copyright 2006 2009 Stewart Weiss The danger that lies ahead Much to your
More informationCSE 413 Programming Languages & Implementation. Hal Perkins Winter 2019 Grammars, Scanners & Regular Expressions
CSE 413 Programming Languages & Implementation Hal Perkins Winter 2019 Grammars, Scanners & Regular Expressions 1 Agenda Overview of language recognizers Basic concepts of formal grammars Scanner Theory
More informationStructure of a Compiler: Scanner reads a source, character by character, extracting lexemes that are then represented by tokens.
CS 441 Fall 2018 Notes Compiler - software that translates a program written in a source file into a program stored in a target file, reporting errors when found. Source Target program written in a High
More informationCMPSCI 250: Introduction to Computation. Lecture 20: Deterministic and Nondeterministic Finite Automata David Mix Barrington 16 April 2013
CMPSCI 250: Introduction to Computation Lecture 20: Deterministic and Nondeterministic Finite Automata David Mix Barrington 16 April 2013 Deterministic and Nondeterministic Finite Automata Deterministic
More informationTheory of Computations Spring 2016 Practice Final Exam Solutions
1 of 8 Theory of Computations Spring 2016 Practice Final Exam Solutions Name: Directions: Answer the questions as well as you can. Partial credit will be given, so show your work where appropriate. Try
More informationIntroduction to Automata Theory. BİL405 - Automata Theory and Formal Languages 1
Introduction to Automata Theory BİL405 - Automata Theory and Formal Languages 1 Automata, Computability and Complexity Automata, Computability and Complexity are linked by the question: What are the fundamental
More informationWhere We Are. CMSC 330: Organization of Programming Languages. This Lecture. Programming Languages. Motivation for Grammars
CMSC 330: Organization of Programming Languages Context Free Grammars Where We Are Programming languages Ruby OCaml Implementing programming languages Scanner Uses regular expressions Finite automata Parser
More informationAmbiguous Grammars and Compactification
Ambiguous Grammars and Compactification Mridul Aanjaneya Stanford University July 17, 2012 Mridul Aanjaneya Automata Theory 1/ 44 Midterm Review Mathematical Induction and Pigeonhole Principle Finite Automata
More informationDr. D.M. Akbar Hussain
1 2 Compiler Construction F6S Lecture - 2 1 3 4 Compiler Construction F6S Lecture - 2 2 5 #include.. #include main() { char in; in = getch ( ); if ( isalpha (in) ) in = getch ( ); else error (); while
More informationTest I Solutions MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Department of Electrical Engineering and Computer Science
Department of Electrical Engineering and Computer cience MAACHUETT INTITUTE OF TECHNOLOGY 6.035 Fall 2017 Test I olutions Mean 83.63 Median 86 td. dev 12.03 1 I Regular Expressions and Finite-tate Automata
More informationRegular Languages. MACM 300 Formal Languages and Automata. Formal Languages: Recap. Regular Languages
Regular Languages MACM 3 Formal Languages and Automata Anoop Sarkar http://www.cs.sfu.ca/~anoop The set of regular languages: each element is a regular language Each regular language is an example of a
More informationI have read and understand all of the instructions below, and I will obey the Academic Honor Code.
Midterm Exam CS 341-451: Foundations of Computer Science II Fall 2014, elearning section Prof. Marvin K. Nakayama Print family (or last) name: Print given (or first) name: I have read and understand all
More informationRegular Expressions. Agenda for Today. Grammar for a Tiny Language. Programming Language Specifications
Agenda for Today Regular Expressions CSE 413, Autumn 2005 Programming Languages Basic concepts of formal grammars Regular expressions Lexical specification of programming languages Using finite automata
More informationMultiple Choice Questions
Techno India Batanagar Computer Science and Engineering Model Questions Subject Name: Formal Language and Automata Theory Subject Code: CS 402 Multiple Choice Questions 1. The basic limitation of an FSM
More informationLexical Analysis - 2
Lexical Analysis - 2 More regular expressions Finite Automata NFAs and DFAs Scanners JLex - a scanner generator 1 Regular Expressions in JLex Symbol - Meaning. Matches a single character (not newline)
More informationCOMP Logic for Computer Scientists. Lecture 25
COMP 1002 Logic for Computer Scientists Lecture 25 B 5 2 J Admin stuff Assignment 4 is posted. Due March 23 rd. Monday March 20 th office hours From 2:30pm to 3:30pm I need to attend something 2-2:30pm.
More informationCalypso Resort & Towers. Guest Pass Access System User s Guide (Revision 1.0)
Calypso Resort & Towers Guest Pass Access System User s Guide (Revision 1.0) 1. SUMMARY/OVERVIEW... 3 2. OWNER AND MANAGEMENT COMPANY REGISTRATION... 4 3. LOGGING BACK IN... 6 4. HELP AND SUPPORT... 6
More informationConverting a DFA to a Regular Expression JP
Converting a DFA to a Regular Expression JP Prerequisite knowledge: Regular Languages Deterministic Finite Automata Nondeterministic Finite Automata Regular Expressions Conversion of Regular Expression
More informationLexical Analyzer Scanner
Lexical Analyzer Scanner ASU Textbook Chapter 3.1, 3.3, 3.4, 3.6, 3.7, 3.5 Tsan-sheng Hsu tshsu@iis.sinica.edu.tw http://www.iis.sinica.edu.tw/~tshsu 1 Main tasks Read the input characters and produce
More informationCS/ECE 374 Fall Homework 1. Due Tuesday, September 6, 2016 at 8pm
CSECE 374 Fall 2016 Homework 1 Due Tuesday, September 6, 2016 at 8pm Starting with this homework, groups of up to three people can submit joint solutions. Each problem should be submitted by exactly one
More informationDFA: Automata where the next state is uniquely given by the current state and the current input character.
Chapter : SCANNING (Lexical Analysis).3 Finite Automata Introduction to Finite Automata Finite automata (finite-state machines) are a mathematical way of descriing particular kinds of algorithms. A strong
More informationLecture 18 Regular Expressions
Lecture 18 Regular Expressions In this lecture Background Text processing languages Pattern searches with grep Formal Languages and regular expressions Finite State Machines Regular Expression Grammer
More information[Lexical Analysis] Bikash Balami
1 [Lexical Analysis] Compiler Design and Construction (CSc 352) Compiled By Central Department of Computer Science and Information Technology (CDCSIT) Tribhuvan University, Kirtipur Kathmandu, Nepal 2
More informationCompiler Construction LECTURE # 3
Compiler Construction LECTURE # 3 The Course Course Code: CS-4141 Course Title: Compiler Construction Instructor: JAWAD AHMAD Email Address: jawadahmad@uoslahore.edu.pk Web Address: http://csandituoslahore.weebly.com/cc.html
More informationComparing and Contrasting different Approaches of Code Generator(Enum,Map-Like,If-else,Graph)
Comparing and Contrasting different Approaches of Generator(Enum,Map-Like,If-else,Graph) Vivek Tripathi 1 Sandeep kumar Gonnade 2 Mtech Scholar 1 Asst.Professor 2 Department of Computer Science & Engineering,
More informationLECTURE 6 Scanning Part 2
LECTURE 6 Scanning Part 2 FROM DFA TO SCANNER In the previous lectures, we discussed how one might specify valid tokens in a language using regular expressions. We then discussed how we can create a recognizer
More information