Professional Documents
Culture Documents
Languages
A language (over an alphabet ) is any subset of the set of all possible strings over . The set of all possible strings is written as *. Example: = {a, b, c} * = { , a, b, c, ab, ac, ba, bc, ca, aaa, } one language might be the set of strings of length less than or equal to 2.
Regular Languages
A regular language (over an alphabet ) is any language for which there exists a finite automaton that recognizes it.
Regular Expressions
A regular expression is a mathematical model for describing a particular type of language. Regular expressions are kind of like arithmetic expressions. The regular expression is defined recursively.
empty set
Regular Expressions
Given an alphabet
, and a are all regular expressions.
empty string
If r1 and r2 are regular expressions, then so are r1 + r2, r1 r2 , r1* and (r1).
Regular Expressions
Meaning: represents the empty language represents the language {} a represents the language {a} r1 + r2 represents the language L(r1) L(r2) r1 r2 represents L(r1) L(r2) r1* represents (L(r1))*
Regular Expressions
Example 1: What does a*(a + b) represent? It represents zero or more a's followed by either an a or a b. {a, b, aa, ab, aaa, aab, aaaa, aaab }
Regular Expressions
Example 2: What does (a + b)*(a + bb) represent? It represents zero or more symbols, each of which can be an a or a b, followed by either a or bb. {a, bb, aa, abb, ba, bbb, aaa, aabb, aba, abbb, baa, babb, bba, bbbb, }
Regular Expressions
Example 3: What does (aa)*(bb)*b represent? All strings over {a, b} that start with an even number of a's which are then followed by an odd number of b's. It's important to understand the underlying meaning of a regular expression.
Regular Expressions
Example 4: Find a regular expression for strings of 0's and 1's which have at least one pair of consecutive 0's. Each such string must have a 00 somewhere in it. It could have any string in front of it and any string after it, as long as it's there!!! Any string is represented by (0 + 1)* Answer: (0 + 1)*00(0 + 1)*
Regular Expressions
Example: Find a regular expression for strings of 0's and 1's which have no pairs of consecutive 0's.
It's a repetition of strings that are either 1's or, if a substring begins with 0, it must be followed by at least one 1. (1 + 011*)* or equivalently, (1 + 01)* But such strings can't end in a 0.
Regular Expressions
Example: Find a regular expression for strings of 0's and 1's which have no pairs of consecutive 0's.
(1 + 011*)* (1 + 01)* But such strings can't end in a 0. So we add (0 + ) to the end to allow for this. (1 + 01)* (0 + )
Regular Expressions
Why are they called regular expressions? Because, as it turns out, the set of languages they describe is that of the regular languages. That means that regular expressions are just another model for the same thing as finite automata.
Regular Expressions
Homework: Chapter 3, Section 1
Note that each of these has an initial state and one accepting state.
r1 + r2
r2
r1
r2
r1 r2
r 1
(r1)*
a b
b b
Problems 1-5
Regular Grammars
Review: A grammar is a quadruple G = (V, T, S, P) where V is a finite set of variables T is a finite set of symbols, called terminals S is in V and is called the start symbol P is a finite set of productions, which are rules of the form where and are strings consisting of terminals and variables.
Regular Grammars
A grammar is said to be right-linear if every production in P is of the form A xB Ax where A and B are variables (perhaps the same, perhaps the start symbol S) in V and x is any string of terminal symbols (including the empty string ) or
Regular Grammars
An alternate (and better) definition of a rightlinear grammar says that every production in P is of the form A aB or Aa or S (to allow to be in the language) where A and B are variables (perhaps the same, but B can't be S) in V and a is any terminal symbol
Regular Grammars
The reason I prefer the second definition (although I accept the first one that happens to be used in the book) is It's easier to work with in proving things. It's the much more common definition.
Regular Grammars
A grammar is said to be left-linear if every production in P is of the form A Bx Ax where A and B are variables (perhaps the same, perhaps the start symbol S) in V and x is any string of terminal symbols (including the empty string ) or
Regular Grammars
The alternate definition of a left-linear grammar says that every production in P is of the form A Ba or Aa or S where A and B are variables (perhaps the same, but B can't be S) in V and a is any terminal symbol
Regular Grammars
Any left-linear or right-linear grammar is called a regular grammar.
Regular Grammars
For brevity, we often write a set of productions such as A x1 A x2 A x3
As
A x1 | x2 | x3
Regular Grammars
A derivation in grammar G is any sequence of strings in V and T, connected with starting with S and ending with a string containing no variables where each subsequent string is obtained by applying a production in P is called a derivation. S x1 x2 x3 . . . xn abbreviated as: * S xn
Regular Grammars
S x1 x2 x3 . . . xn abbreviated as:
S* xn generated by G, L(G).
forms.
Regular Grammars
We call L(G) the language generated by G L(G) is the set of all sentences over
grammar G
Example 1
S abS | a is an example of a right-linear grammar.
Can you figure out what language it generates? L = {w {a,b}* | w contains alternating a's and b's , begins with an a, and ends with a b} {a} L((ab)*a)
Example 2
S Aab
A Aab | aB Ba is an example of a left-linear grammar. Can you figure out what language it generates? L = {w {a,b}* | w is aa followed by at least one set of alternating ab's} L(aaab(ab)*)
Example 3
Consider the grammar S A
A aB | B Ab This grammar is NOT regular. No "mixing and matching" left- and rightrecursive productions.
Regular Languages
regular expressions
finite automata
regular grammars
Regular Languages
Homework: Chapter 3, Section 3 Problems