1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular...

14
1 Regular Languages and Regular Expressions • Regular languages – Inductive definitions – Regular expressions • syntax • semantics

Transcript of 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular...

Page 1: 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular expressions syntax semantics.

1

Regular Languages and Regular Expressions

• Regular languages– Inductive definitions– Regular expressions

• syntax

• semantics

Page 2: 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular expressions syntax semantics.

2

Regular Languages(Regular Expressions)

Page 3: 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular expressions syntax semantics.

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

Page 4: 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular expressions syntax semantics.

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

Page 5: 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular expressions syntax semantics.

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

Page 6: 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular expressions syntax semantics.

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

Page 7: 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular expressions syntax semantics.

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

Page 8: 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular expressions syntax semantics.

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.

Page 9: 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular expressions syntax semantics.

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 +

Page 10: 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular expressions syntax semantics.

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

Page 11: 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular expressions syntax semantics.

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.

Page 12: 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular expressions syntax semantics.

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

Page 13: 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular expressions syntax semantics.

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

Page 14: 1 Regular Languages and Regular Expressions Regular languages –Inductive definitions –Regular expressions syntax semantics.

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