Standard Types and Regular Expressions CS 480/680 – Comparative Languages.
1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular...
-
Upload
jack-carson -
Category
Documents
-
view
218 -
download
0
Transcript of 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular...
1
Regular Languages and Regular Expressions
• Regular languages– Inductive definitions– Regular expressions
• syntax
• semantics
2
Regular Languages(Regular Expressions)
3
Regular Languages
• New language class– Elements are languages
• We will show that this language class is identical to LFSA– Language class to be defined by Finite State Automata
(FSA)
– Once we have shown this, we will use the term “regular languages” to refer to this language class
4
Inductive Definition of Integers *
• Base case definition– 0 is an integer
• Inductive case definition– If x is an integer, then
• x+1 is an integer
• x-1 is an integer
• Completeness– Only numbers generated using the above rules are
integers
5
Inductive Definition of Regular Languages• Base case definition
– Let denote the alphabet– {} is a regular language – {} is a regular language– {a} is a regular language for any character a in
• Inductive case definition– If L1 and L2 are regular languages, then
• L1 union L2 is a regular language• L1 concatenate L2 is a regular language• L1
* is a regular language
• Completeness– Only languages generated using above rules are regular languages
6
Proving a language is regular *
• Prove that {aa, bb} is a regular language– {a} and {b} are regular languages
• base case of definition
– {aa} = {a}{a} is a regular language• concatenation rule
– {bb} = {b}{b} is a regular language• concatenation rule
– {aa, bb} = {aa} union {bb} is a regular language• union rule
• Typically, we will not go through this process to prove a language is regular
7
Regular Expressions
• How do we describe a regular language?– Use set notation
• {aa, bb, ab, ba}*
• {a}{a,b}*{b}
– Use regular expressions R• Inductive def of regular languages and regular
expressions on page 72
• (aa+bb+ab+ba)*
• a(a+b)*b
8
R and L(R) *
• How we interpret a regular expression– What does a regular expression R mean to us?
• aaba represents the regular language {aaba}
• represents the regular language {}
• aa+bb represents the regular language {aa, bb}
– We use L(R) to denote the regular language represented by regular expression R.
9
Precedence rules
• What is L(ab+c*)?– Possible answers:
• {a}({b} union {c}*}
• ({a}{b,c})*
• ({ab} union {c})*
• {ab} union {c}*
– Must know precedence rules• * first, then concatenation, then +
10
Precedence rules continued
• Precedence rules similar to those for arithmetic expressions– ab+c2
• (a times b) + (c times c)
• exponentiation first, then multiplication, then addition
• Think of Kleene closure as exponentiation, concatenation as multiplication, and union as addition and the precedence rules are identical
11
Regular expressions are strings *
• Let L be a regular language over the alphabet – A regular expression R for L is just a string over the
alphabet union {(, ), +, *, }.
– The set of legal regular expressions is itself a language over the alphabet union {(, ), +, *}
• , a*aba are strings in the language of legal reg. exp.
• )(, *a* are strings NOT in the language of legal reg. exp.
12
Semantics *
• We give a regular expression R meaning when we interpret it to represent L(R).– aaba is just a string
– we interpret it to represent the language {aaba}.
• We do similar things with arithmetic expressions– 10+72 is just a string
– We interpret this string to represent the number 59
13
Key fact *
• A language L is a regular language iff there exists a reg. exp. R such that L(R) = L– When I ask for a proof that a language L is
regular, rather than going through the inductive proof we saw earlier, I expect you to give me a regular expression R s.t. L(R) = L
14
Summary
• Regular expressions are strings– syntax for legal regular expressions– semantics for interpreting regular expressions
• Regular languages are a new language class– A language L is regular iff there exists a regular
expression R s.t. L(R) = L
• We will show that the regular languages are identical to LFSA