Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 2 Mälardalen University 2010.

Similar presentations


Presentation on theme: "1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 2 Mälardalen University 2010."— Presentation transcript:

1 1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 2 Mälardalen University 2010

2 2 Content Languages, Alphabets and Strings Strings & String Operations Languages & Language Operations Regular Expressions Finite Automata, FA Deterministic Finite Automata, DFA

3 3 Languages, Alphabets and Strings

4 4 defined over an alphabet: Languages A language is a set of strings A String is a sequence of letters An alphabet is a set of symbols

5 5 Alphabets and Strings We will use small alphabets: Strings

6 6 Operations on Strings

7 7 String Operations m n bbbv aaaw   21 21   y  bbbaaa x  abba Concatenation (sammanfogning) xy  abbabbbaaa

8 8 Reverse (reversering) Example: Longest odd length palindrome in a natural language: saippuakauppias (Finnish: soap salesman)

9 9 String Length Length: Examples:

10 10 Recursive Definition of Length For any letter: For any string : Example:

11 11 Length of Concatenation 853 8   vuuv aababaabuv 5, 3,   vabaabv uaabu Example:

12 12 Proof of Concatenation Length Claim: Proof: By induction on the length Induction basis: From definition of length:

13 13 Inductive hypothesis: Inductive step: we will prove for

14 14 Inductive Step Write, where From definition of length: From inductive hypothesis: Thus: END OF PROOF

15 15 Empty String A string with no letters: (Also denoted as  ) Observations:

16 16 Substring (delsträng) Substring of a string: a subsequence of consecutive characters String Substring

17 17 Prefix and Suffix Suffixes prefix suffix Prefixes

18 18 Repetition Example: Definition: n n www...w  } (String repeated n times)

19 19 The (Kleene* star) Operation the set of all possible strings from alphabet [* Kleene is pronounced "clay-knee“] http://en.wikipedia.org/wiki/Kleene_star

20 20 The + (Kleene plus) Operation : the set of all possible strings from the alphabet except ,ba  ,,,,,,,,,*aabaaabbbaabaaba  

21 21 Example    *, oj, fy, usch, ojoj, fyfy,uschusch, ojfy, ojusch     *  ,fyoj , usch    oj, fy, usch, ojoj, fyfy,uschusch, ojfy, ojusch   

22 22 Operations on Languages

23 23 Language A language is any subset of Example: Languages:   ,,,,,,,,*, aaabbbaabaaba ba     },,,,,{,, aaaaaaabaababaabba aabaaa

24 24 Example An infinite language

25 25 Operations on Languages The usual set operations  ,,,,,,,,,*aabaaabbbaabaaba  Complement:

26 26 Reverse Examples: Definition:

27 27 Concatenation Definition: Example

28 28 Repeat Definition: Special case:

29 29 Example

30 30 Star-Closure (Kleene *) Definition: Example:

31 31 Positive Closure Definition   *L    2 1 L LL 

32 32 Regular Expressions

33 33 Regular Expressions: Recursive Definition are Regular Expressions Primitive regular expressions: Given regular expressions and

34 34 Examples A regular expression: Not a regular expression:

35 35 Zero or more. a* means "zero or more a's." To say "zero or more ab's," that is, {, ab, abab, ababab,...}, you need to say (ab)*. ab* denotes {a, ab, abb, abbb, abbbb,...}. Building Regular Expressions

36 36 One or more. Since a* means "zero or more a's", you can use aa* (or equivalently, a*a) to mean "one or more a's.“ Similarly, to describe "one or more ab's," that is, {ab, abab, ababab,...}, you can use ab(ab)*. Building Regular Expressions

37 37 Any string at all. To describe any string at all (with = {a, b, c}), you can use (a+b+c)*. Any nonempty string. This can be written as any character from followed by any string at all: (a+b+c)(a+b+c)*. Building Regular Expressions

38 38 Any string not containing.... To describe any string at all that doesn't contain an a (with = {a, b, c}), you can use (b+c)*. Any string containing exactly one... To describe any string that contains exactly one a, put "any string not containing an a," on either side of the a, like this: (b+c)*a(b+c)*. Building Regular Expressions

39 39 Languages of Regular Expressions Example language of regular expression

40 40 Definition For primitive regular expressions:

41 41 Definition (continued) For regular expressions and

42 42 Example Regular expression:

43 43 Example Regular expression

44 44 Example Regular expression

45 45 Example Regular expression  { all strings with at least two consecutive 0 }

46 46 Example Regular expression (consists of repeating 1’s and 01’s). = { all strings without two consecutive 0 }

47 47 Example = { all strings without two consecutive 0 } (In order not to get 00 in a string, after each 0 there must be an 1, which means that strings of the form 1....101....1 are repeated. That is the first parenthesis. To take into account strings that end with 0, and those consisting of 1’s solely, the rest of the expression is added.) Equivalent solution:

48 48 Equivalent Regular Expressions Regular expressions and are equivalent if Definition:

49 49 Example = { all strings without two consecutive 0 } and are equivalent regular expressions.

50 Additional Sources http://www.math.uu.se/~salling/http://www.math.uu.se/~salling/ Lennart Salling http://www.math.uu.se/~salling/AUTOMATA_DV/index.html Introduktion movie.mov.mov Program, strings, integers and integer functions.mov.mov Different infinities and integer functions that can not be calculated by a program.mov.mov Strings and languages.mov Regular languages and regular expressions.mov.mov 50


Download ppt "1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 2 Mälardalen University 2010."

Similar presentations


Ads by Google