SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
Theory of Computation
2
Text and Reference Material
1. Introduction to Computer Theory, by Daniel I.
Cohen, John Wiley and Sons, Inc., 1991,
Second Edition
2. Introduction to Languages and Theory of
Computation, by J. C. Martin, McGraw Hill
Book Co., 2011, Fourth Edition
3
Background
• We shall form several mathematical models that will
describe with varying degrees of accuracy parts of
computers, types of computers, and similar machines.
• In particular, the way we shall be studying about
computers is to build mathematical models, called
machines, and then to study their limitations by
analyzing the types of inputs on which they can operate
successfully.
• The collection of these successful inputs is called the
language of the machine.
4
• Every time we introduce a new machine, we will learn its
language; and every time we develop a new language, we
will try to find a machine that corresponds to it.
• This interplay between languages and machines will be our
way of investigating problems and their potential solutions
by automatic procedures, which we call algorithms.
• We will study different types of theoretical machines that
are mathematical models for actual physical processes. By
considering the possible inputs on which these machines
can work, we can analyze their various strengths and
weaknesses.
5
We are obliged to prove the truth about whatever we
discover.
• So consider only question of whether certain tasks can
be done at all. Conclusion are of the form “this can be
done” or “this can never be done”.
• When reach conclusions of the second type, we mean
not just that techniques for performing these tasks are
unknown at the present time, but that such techniques
will never exist in the future.
What is mathematical about the
models?
6
• We will arrive at what we may believe to be the most
powerful machine possible. When we do, we will be
surprised to find tasks that even such machine cannot
perform.
• Our ultimate result is that no matter what machine we
build, there will always be questions that are simple to
state and that the machine can not answer.
7
What does automata mean?
It is the plural of automaton, and it means
“something that works automatically”
8
Languages
• In English, we distinguish 3 different entities: letters,
words, and sentences.
– Groups of letters make up words and groups of words
make up sentences.
– However, not all collections of letters form valid words, and
not all collections of words form valid sentences.
• This situation also exists with computer languages.
– Certain (but not all) strings of characters are recognizable
words (e.g., IF, ELSE, FOR, WHILE …); and certain (but
not all) strings of words are recognizable commands.
9
• To construct a general theory of formal languages, we
need to have a definition of a language structure, in
which the decision of whether a given string of units
constitutes a valid larger unit is not a matter of
guesswork, but is based on explicitly stated rules.
• In this model, language will be considered as symbols
with formal rules, and not as expressions of ideas in the
minds of humans.
• The term “formal” emphasizes that it is the form of the
string of symbols that we are interested in, not the
meaning.
10
• A finite non-empty set of symbols (letters), is
called an alphabet. It is denoted by Σ ( Greek
letter sigma).
Example:
Σ={a,b}
Σ={0,1} //important as this is the language
//which the computer understands.
Σ={i,j,k}
Basic Definitions
11
Strings
Concatenation of finite symbols from the
alphabet is called a string.
• Example:
If Σ= {a,b} then
a, abab, aaabb, ababababababababab
12
Words
• Words are strings belonging to some language.
Example:
If Σ= {x} then a language L can be defined as
L={xn : n=1,2,3,…..} or L={x,xx,xxx,….}
Here x,xx,… are the words of L
• All words are strings, but not all strings are words.
13
• We shall allow a string to have no letters. We call this
empty string or null string, and denote it by the symbol
Λ (Capital Greek Lambda).
• For all languages, the null word, if it is a word in the
language, is the word that has no letters. We also denote
the null word by Λ.
• Two words are considered the same if all their letters are
the same and in the same order.
• For clarity, we usually do not allow the symbol Λ to be
part of the alphabet of any language.
EMPTY STRING or NULL STRING
14
• The language that has no words is denoted by the
standard symbol for null set, ø.
• It is not true that Λ is a word in the language ø since this
language has no words at all.
• If a certain language L does not contain the word Λ and
we wish to add it to L, we use the operation “+” to form L
+ {Λ}. This language is not the same as L.
• However, the language L + ø is the same as L since no
new words have been added.
Discussion of null
15
Introduction to Defining Languages
• The rules for defining a language can be of two kinds:
– They can tell us how to test if a string of alphabet letters is a
valid word, or
– They can tell us how to construct all the words in the language
by some clear procedures.
Defining Languages
• The languages can be defined in different ways ,
such as Descriptive definition, Recursive
definition, using Regular Expressions(RE) and
using Finite Automaton(FA) etc.
• Descriptive definition of language
– The language is defined, describing the conditions
imposed on its words.
16
17
• Example: Consider this alphabet with only one letter
∑ = { x }
• We can define a language by saying that any nonempty
string of alphabet letters is a word
L1 = { x, xx, xxx, xxxx, … } or
L1 = { xn for n = 1, 2, 3, … }
Note that because of the way we have defined it, the
language L1 does not include the null word Λ.
Defining Languages
18
Example
The language L of strings of odd length, defined
over Σ={a}, can be written as
L={a, aaa, aaaaa,…..}
• Example:
The language L of strings that does not start with
a, defined over Σ={a,b,c}, can be written as
L={b, c, ba, bb, bc, ca, cb, cc, …}
19
Example
The language L of strings of length 2, defined
over Σ={0,1,2}, can be written as
L={00, 01, 02,10, 11,12,20,21,22}
• Example:
The language L of strings ending in 0,
defined over Σ ={0,1}, can be written as
L={0,00,10,000,010,100,110,…}
20
Example
• The language EQUAL, of strings with number of
a’s equal to number of b’s, defined over Σ={a,b},
can be written as
{Λ ,ab,aabb,abab,baba,abba,…}
• The language EVEN-EVEN, of strings with even
number of a’s and even number of b’s, defined
over Σ={a,b}, can be written as
{Λ, aa, bb, aaaa,aabb,abab, abba, baab, baba,
bbaa, bbbb,…}
Example
• The language {an bn }, of strings defined over
Σ={a,b}, as
{an bn: n=1,2,3,…}, can be written as
{ab, aabb, aaabbb,aaaabbbb,…}
• The language {an bn an }, of strings defined over
Σ={a,b}, as
{an bn an: n=1,2,3,…}, can be written as
{aba, aabbaa, aaabbbaaa,aaaabbbbaaaa,…}
21
Example
• The language FACTORIAL, of strings defined
over Σ= {a}, as
{an! : n=1,2,3,…}, can be written as
{a,aa,aaaaaa,…}. It is to be noted that the
language FACTORIAL can be defined over any
single letter alphabet.
• The language DOUBLEFACTORIAL, of strings
defined over Σ= {a, b}, as
{an! bn!: n=1,2,3,…}, can be written as
{ab, aabb, aaaaaabbbbbb,…}
22
23
• Let us define an operation, concatenation, in which two strings are
written down side by side to form a new longer string.
xxx concatenated with xx is the word xxxxx
xn concatenated with xm is the word xn+m
• For convenience, we may label a word in a given language by a new
symbol. For example,
xxx is called a, and xx is called b
• Then to denote the word formed by concatenating a and b, we can
write
ab = xxxxx
• It is not true that when two words are concatenated, they produce
another word. For example, if the language is
L2 = {x, xxx, xxxxx, …} = {x2n+1 for n = 0, 1, 2, …}
then a = xxx and b = xxxxx are both words in L2, but their
concatenation ab = xxxxxxxx is not in L2
Concatenation
24
• Note that in this simple example, we have:
ab = ba
But in general, this relationship does NOT hold for all
languages (e.g., houseboat and boathouse are two
different words in English).
• Example: Consider another language by beginning with
the alphabet
∑ = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
Define the language
L3 = { any finite string of alphabet letters that does not
start with the letter zero }
Concatenation makes new Words?
25
• This language L3 looks like the set of positive integers:
L3 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, … }
• If we want to define L3 so that it includes the string
(word) 0, we could say
L3 = { any finite string of alphabet letters that, if it starts
with a 0, has no more letters after the first}
26
Definition: Length
• We define the function length of a string to be the
number of letters in the string.
• Example:
– If a = xxxx in the language L1, then length(a) = 4
– If c = 428 in the language L3, then length(c) = 3
– If d = 0 in the language L3, then length(d) = 1
– In any language that includes the null word Λ, then
length(Λ) = 0
• For any word w in any language, if length(w) = 0 then w
= Λ.
27
• Recall that the language L1 does not contain the null
string Λ. Let us define a language like L1 but that does
contain Λ:
L4 = { Λ, x, xx, xxx, xxxx, … }
= { xn for n = 0, 1, 2, 3, … }
• Here we have defined that
x0 = Λ (NOT x0 = 1 as in algebra)
• In this way, xn always means the string of n alphabet
letters x’s.
• Remember that even Λ is a word in the language, it is
not a letter in the alphabet.
28
Definition: Reverse
• If a is a word in some language L, then reverse(a) is the
same string of letters spelled backward, even if this
backward string is not a word in L.
• Example:
– reverse(xxx) = xxx
– reverse(145) = 541
– Note that 140 is a word in L3, but reverse(140) = 041 is NOT a
word in L3
29
Definition: Palindrome
• Let us define a new language called Palindrome over the
alphabet
∑ = { a, b }
PALINDROME = { Λ, and all strings x such that
reverse(x) = x }
• If we want to list the elements in PALINDROME, we find
PALINDROME = { Λ, a, b, aa, bb, aaa, aba, bab, bbb,
aaaa, abba, … }
30
• Sometimes two words in PALINDROME when
concatenated will produce a word in PALINDROME
– abba concatenated with abbaabba gives abbaabbaabba (in
PALINDROME)
• But more often, the concatenation is not a word in
PALINDROME
– aa concatenated with aba gives aaaba (NOT in PALINDROME)
Palindrome
31
Kleene Closure
• Definition: Given an alphabet ∑, we define a language
in which any string of letters from ∑ is a word, even the
null string Λ. We call this language the closure of the
alphabet ∑, and denote this language by ∑*.
• Examples:
If ∑ = { x } then ∑* = { Λ, x, xx, xxx, … }
If ∑ = { 0, 1 } then ∑* = { Λ, 0, 1, 00, 01, 10, 11,
000, 001, … }
If ∑ = { a, b, c } then ∑* = { Λ, a, b, c, aa, ab, ac,
ba, bb, bc, ca, cb, cc, aaa, … }
32
• Note that we listed the words in a language in size order
(i.e., words of shortest length first), and then listed all the
words of the same length alphabetically.
• This ordering is called lexicographic order, which we
will usually follow.
• The star in the closure notation is known as the Kleene
star.
• We can think of the Kleene star as an operation that
makes, out of an alphabet, an infinite language (i.e.,
infinitely many words, each of finite length).
Lexicographic order
33
• Let us now generalize the use of the Kleene star oprator
to sets of words, not just sets of alphabet letters.
• Definition: If S is a set of words, then S* is the set of all
finite strings formed by concatenating words from S,
where any word may be used as often as we like, and
where the null string Λ is also included.
Kleene Closure
34
• Example: If S = { aa, b } then
S* = { Λ plus any word composed of factors of aa and b },
or
S* = { Λ plus any strings of a’s and b’s in which the a’s
occur in even clumps }, or
S* = { Λ, b, aa, bb, aab, baa, bbb, aaaa, aabb, baab,
bbaa, bbbb, aaaab, aabaa, aabbb, baaaa, baabb, bbaab,
bbbaa, bbbbb, … }
Note that the string aabaaab is not in S* because it has a
clump of a’s of length 3.
Kleene Closure
35
• Example: Let S = { a, ab }. Then
S* = { Λ plus any word composed of factors of a and ab
}, or
S* = { Λ plus all strings of a’s and b’s except those that
start with b and those that contain a double b }, or
S* = { Λ, a, aa, ab, aaa, aab, aba, aaaa, aaab, abaa,
abab, aaaaa, aaaab, aaaba, aabaa, aabab, abaaa,
abaab, ababa, … }
• Note that for each word in S*, every b must have an a
immediately to its left, so the double b, that is bb, is not
possible; neither any string starting with b.
Kleene Closure
36
• We must show how it can be written as a concatenation
of words from the base set S.
• In the previous example, to show that abaab is in S*, we
can factor it as follows:
abaab = (ab)(a)(ab)
• These three factors are all in the set S, therefore their
concatenation is in S*.
• Note that the parentheses, ( ), are used for the sole
purpose of demarcating the ends of factors.
How to prove a certain word is in
the closure language S*
37
• Observe that if the alphabet has no letters, then its
closure is the language with the null string as its only
word; that is
if ∑ = ø (the empty set), then ∑* = { Λ }
• Also, observe that if the set S has the null string as its
only word, then the closure language S* also has the null
string as its only word; that is
if S = { Λ }, then S* = { Λ }
because ΛΛ = Λ.
• Hence, the Kleene closure always produces an infinite
language unless the underlying set is one of the two
cases above.
How to prove a certain word is in the closure
language S*
38
• The Kleene closure of two different sets can end up
being the same language.
• Example: Consider two sets of words
S = { a , b, ab } and T = { a, b, bb }
Then, both S* and T* are languages of all strings of a’s
and b’s since any string of a’s and b’s can be factored
into syllables of (a) or (b), both of which are in S and T.
Kleene Closure of different sets
39
Positive Closure
• If we wish to modify the concept of closure to refer only
the concatenation of some (not zero) strings from a set
S, we use the notation + instead of *.
• This “plus operation” is called positive closure.
Example: if ∑ = { x } then ∑+ = { x, xx, xxx, … }
Observe that:
1. If S is a language that does not contain Λ, then S+ is the
language S* without the null word Λ.
2. If S is a language that does contain Λ, then S+ = S*
3. Likewise, if ∑ is an alphabet, then ∑+ is ∑* without the
word Λ.
40
• What happens if we apply the closure operator twice?
– We start with a set of words S and form its closure S*
– We then start with the set S* and try to form its closure, which
we denote as (S*)* or S**
• Theorem 1:
For any set S of strings, we have S* = S**
• Before we prove the theorem, recall from Set Theory
that
– A = B if A is a subset of B and B is a subset of A
– A is a subset of B if for all x in A, x is also in B
S**?
41
• Let us first prove that S** is a subset of S*:
Every word in S** is made up of factors from S*. Every
factor from S* is made up of factors from S. Hence, every
word from S** is made up of factors from S. Therefore,
every word in S** is also a word in S*. This implies that
S** is a subset of S*.
• Let us now prove that S* is a subset of S**:
In general, it is true that for any set A, we have A is a
subset of A*, because in A* we can choose as a word
any factor from A. So if we consider A to be our set S*
then S* is a subset of S**
• Together, these two inclusions prove that S* = S**.
Proof of Theorem 1:
• Useful Reading
First and second chapter of Daniel I. Cohen book.
42

Más contenido relacionado

Similar a 01-Introduction&Languages.pdf

Theory of Automata Lesson 01
 Theory of Automata Lesson 01  Theory of Automata Lesson 01
Theory of Automata Lesson 01 hamzamughal39
 
Regular expression (compiler)
Regular expression (compiler)Regular expression (compiler)
Regular expression (compiler)Jagjit Wilku
 
Theory of Automata Lesson 02
Theory of Automata Lesson 02Theory of Automata Lesson 02
Theory of Automata Lesson 02hamzamughal39
 
Lesson-01-29092022-081117pm.ppt
Lesson-01-29092022-081117pm.pptLesson-01-29092022-081117pm.ppt
Lesson-01-29092022-081117pm.pptashja1
 
Lecture 3,4
Lecture 3,4Lecture 3,4
Lecture 3,4shah zeb
 
Lecture 3,4
Lecture 3,4Lecture 3,4
Lecture 3,4shah zeb
 
Lecture Notes-Are Natural Languages Regular.pdf
Lecture Notes-Are Natural Languages Regular.pdfLecture Notes-Are Natural Languages Regular.pdf
Lecture Notes-Are Natural Languages Regular.pdfDeptii Chaudhari
 
Theory of Automata
Theory of AutomataTheory of Automata
Theory of AutomataFarooq Mian
 
Lesson 01.ppt
Lesson 01.pptLesson 01.ppt
Lesson 01.pptImXaib
 
Theory of automata and formal language
Theory of automata and formal languageTheory of automata and formal language
Theory of automata and formal languageRabia Khalid
 
Presentation (5).pdf
Presentation (5).pdfPresentation (5).pdf
Presentation (5).pdfGaurav447273
 
9781284077247_PPTx_CH01.pptx
9781284077247_PPTx_CH01.pptx9781284077247_PPTx_CH01.pptx
9781284077247_PPTx_CH01.pptxmainakmail2585
 
Formal language
Formal languageFormal language
Formal languageRajendran
 
theory of computation lecture 02
theory of computation lecture 02theory of computation lecture 02
theory of computation lecture 028threspecter
 
Lecture: Regular Expressions and Regular Languages
Lecture: Regular Expressions and Regular LanguagesLecture: Regular Expressions and Regular Languages
Lecture: Regular Expressions and Regular LanguagesMarina Santini
 

Similar a 01-Introduction&Languages.pdf (20)

Theory of Automata Lesson 01
 Theory of Automata Lesson 01  Theory of Automata Lesson 01
Theory of Automata Lesson 01
 
Module 1 TOC.pptx
Module 1 TOC.pptxModule 1 TOC.pptx
Module 1 TOC.pptx
 
Regular expression (compiler)
Regular expression (compiler)Regular expression (compiler)
Regular expression (compiler)
 
Theory of Automata Lesson 02
Theory of Automata Lesson 02Theory of Automata Lesson 02
Theory of Automata Lesson 02
 
Lesson 02
Lesson 02Lesson 02
Lesson 02
 
Lesson 02
Lesson 02Lesson 02
Lesson 02
 
01.ppt
01.ppt01.ppt
01.ppt
 
Lesson-01-29092022-081117pm.ppt
Lesson-01-29092022-081117pm.pptLesson-01-29092022-081117pm.ppt
Lesson-01-29092022-081117pm.ppt
 
Lecture 3,4
Lecture 3,4Lecture 3,4
Lecture 3,4
 
Lecture 3,4
Lecture 3,4Lecture 3,4
Lecture 3,4
 
Lecture Notes-Are Natural Languages Regular.pdf
Lecture Notes-Are Natural Languages Regular.pdfLecture Notes-Are Natural Languages Regular.pdf
Lecture Notes-Are Natural Languages Regular.pdf
 
Theory of Automata
Theory of AutomataTheory of Automata
Theory of Automata
 
Lesson 01.ppt
Lesson 01.pptLesson 01.ppt
Lesson 01.ppt
 
Theory of automata and formal language
Theory of automata and formal languageTheory of automata and formal language
Theory of automata and formal language
 
Presentation (5).pdf
Presentation (5).pdfPresentation (5).pdf
Presentation (5).pdf
 
Regular expression (compiler)
Regular expression (compiler)Regular expression (compiler)
Regular expression (compiler)
 
9781284077247_PPTx_CH01.pptx
9781284077247_PPTx_CH01.pptx9781284077247_PPTx_CH01.pptx
9781284077247_PPTx_CH01.pptx
 
Formal language
Formal languageFormal language
Formal language
 
theory of computation lecture 02
theory of computation lecture 02theory of computation lecture 02
theory of computation lecture 02
 
Lecture: Regular Expressions and Regular Languages
Lecture: Regular Expressions and Regular LanguagesLecture: Regular Expressions and Regular Languages
Lecture: Regular Expressions and Regular Languages
 

Último

办理昆士兰科技大学毕业证QUT毕业证留信学历认证
办理昆士兰科技大学毕业证QUT毕业证留信学历认证办理昆士兰科技大学毕业证QUT毕业证留信学历认证
办理昆士兰科技大学毕业证QUT毕业证留信学历认证jdkhjh
 
EPA Funding Opportunities for Equitable Electric Transportation by Mike Moltzen
EPA Funding Opportunities for Equitable Electric Transportationby Mike MoltzenEPA Funding Opportunities for Equitable Electric Transportationby Mike Moltzen
EPA Funding Opportunities for Equitable Electric Transportation by Mike MoltzenForth
 
原版1:1定制阳光海岸大学毕业证(JCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制阳光海岸大学毕业证(JCU毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制阳光海岸大学毕业证(JCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制阳光海岸大学毕业证(JCU毕业证)#文凭成绩单#真实留信学历认证永久存档208367051
 
Building a Budget by Cat Plein and Josh Rodriguez
Building a Budget by Cat Plein and Josh RodriguezBuilding a Budget by Cat Plein and Josh Rodriguez
Building a Budget by Cat Plein and Josh RodriguezForth
 
办理克莱姆森大学毕业证成绩单|购买美国文凭证书
办理克莱姆森大学毕业证成绩单|购买美国文凭证书办理克莱姆森大学毕业证成绩单|购买美国文凭证书
办理克莱姆森大学毕业证成绩单|购买美国文凭证书zdzoqco
 
办理科廷科技大学毕业证Curtin毕业证留信学历认证
办理科廷科技大学毕业证Curtin毕业证留信学历认证办理科廷科技大学毕业证Curtin毕业证留信学历认证
办理科廷科技大学毕业证Curtin毕业证留信学历认证jdkhjh
 
Dubai Call Girls Services Call 09900000000
Dubai Call Girls Services Call 09900000000Dubai Call Girls Services Call 09900000000
Dubai Call Girls Services Call 09900000000Komal Khan
 
英国Bradford学位证,布拉德福德大学毕业证书1:1制作
英国Bradford学位证,布拉德福德大学毕业证书1:1制作英国Bradford学位证,布拉德福德大学毕业证书1:1制作
英国Bradford学位证,布拉德福德大学毕业证书1:1制作yjvk25x9
 
Equity & Freight Electrification by Jose Miguel Acosta Cordova
Equity & Freight Electrification by Jose Miguel Acosta CordovaEquity & Freight Electrification by Jose Miguel Acosta Cordova
Equity & Freight Electrification by Jose Miguel Acosta CordovaForth
 
办理萨省大学毕业证成绩单|购买加拿大USASK文凭证书
办理萨省大学毕业证成绩单|购买加拿大USASK文凭证书办理萨省大学毕业证成绩单|购买加拿大USASK文凭证书
办理萨省大学毕业证成绩单|购买加拿大USASK文凭证书zdzoqco
 
-The-Present-Simple-Tense.pdf english hh
-The-Present-Simple-Tense.pdf english hh-The-Present-Simple-Tense.pdf english hh
-The-Present-Simple-Tense.pdf english hhmhamadhawlery16
 
Transportation Electrification Funding Strategy by Jeff Allen and Brandt Hert...
Transportation Electrification Funding Strategy by Jeff Allen and Brandt Hert...Transportation Electrification Funding Strategy by Jeff Allen and Brandt Hert...
Transportation Electrification Funding Strategy by Jeff Allen and Brandt Hert...Forth
 
Pros and cons of buying used fleet vehicles.pptx
Pros and cons of buying used fleet vehicles.pptxPros and cons of buying used fleet vehicles.pptx
Pros and cons of buying used fleet vehicles.pptxjennifermiller8137
 
Electric Nation Upper Midwest Inter-Tribal Electric Vehicle (EV) Charging Com...
Electric Nation Upper Midwest Inter-Tribal Electric Vehicle (EV) Charging Com...Electric Nation Upper Midwest Inter-Tribal Electric Vehicle (EV) Charging Com...
Electric Nation Upper Midwest Inter-Tribal Electric Vehicle (EV) Charging Com...Forth
 
(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样
(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样
(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样gfghbihg
 
Trent engineer.pptx presentation reports
Trent engineer.pptx presentation reportsTrent engineer.pptx presentation reports
Trent engineer.pptx presentation reportsbasant11731
 
Centering Equity Panel by Samantha Bingham
Centering Equity Panel by Samantha BinghamCentering Equity Panel by Samantha Bingham
Centering Equity Panel by Samantha BinghamForth
 
原版1:1定制宾州州立大学毕业证(PSU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制宾州州立大学毕业证(PSU毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制宾州州立大学毕业证(PSU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制宾州州立大学毕业证(PSU毕业证)#文凭成绩单#真实留信学历认证永久存档208367051
 
Mastering Mercedes Engine Care Top Tips for Rowlett, TX Residents
Mastering Mercedes Engine Care Top Tips for Rowlett, TX ResidentsMastering Mercedes Engine Care Top Tips for Rowlett, TX Residents
Mastering Mercedes Engine Care Top Tips for Rowlett, TX ResidentsRowlett Motorwerks
 
What Causes The key not detected Message In Mercedes Cars
What Causes The key not detected Message In Mercedes CarsWhat Causes The key not detected Message In Mercedes Cars
What Causes The key not detected Message In Mercedes CarsGermany's Best Inc
 

Último (20)

办理昆士兰科技大学毕业证QUT毕业证留信学历认证
办理昆士兰科技大学毕业证QUT毕业证留信学历认证办理昆士兰科技大学毕业证QUT毕业证留信学历认证
办理昆士兰科技大学毕业证QUT毕业证留信学历认证
 
EPA Funding Opportunities for Equitable Electric Transportation by Mike Moltzen
EPA Funding Opportunities for Equitable Electric Transportationby Mike MoltzenEPA Funding Opportunities for Equitable Electric Transportationby Mike Moltzen
EPA Funding Opportunities for Equitable Electric Transportation by Mike Moltzen
 
原版1:1定制阳光海岸大学毕业证(JCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制阳光海岸大学毕业证(JCU毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制阳光海岸大学毕业证(JCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制阳光海岸大学毕业证(JCU毕业证)#文凭成绩单#真实留信学历认证永久存档
 
Building a Budget by Cat Plein and Josh Rodriguez
Building a Budget by Cat Plein and Josh RodriguezBuilding a Budget by Cat Plein and Josh Rodriguez
Building a Budget by Cat Plein and Josh Rodriguez
 
办理克莱姆森大学毕业证成绩单|购买美国文凭证书
办理克莱姆森大学毕业证成绩单|购买美国文凭证书办理克莱姆森大学毕业证成绩单|购买美国文凭证书
办理克莱姆森大学毕业证成绩单|购买美国文凭证书
 
办理科廷科技大学毕业证Curtin毕业证留信学历认证
办理科廷科技大学毕业证Curtin毕业证留信学历认证办理科廷科技大学毕业证Curtin毕业证留信学历认证
办理科廷科技大学毕业证Curtin毕业证留信学历认证
 
Dubai Call Girls Services Call 09900000000
Dubai Call Girls Services Call 09900000000Dubai Call Girls Services Call 09900000000
Dubai Call Girls Services Call 09900000000
 
英国Bradford学位证,布拉德福德大学毕业证书1:1制作
英国Bradford学位证,布拉德福德大学毕业证书1:1制作英国Bradford学位证,布拉德福德大学毕业证书1:1制作
英国Bradford学位证,布拉德福德大学毕业证书1:1制作
 
Equity & Freight Electrification by Jose Miguel Acosta Cordova
Equity & Freight Electrification by Jose Miguel Acosta CordovaEquity & Freight Electrification by Jose Miguel Acosta Cordova
Equity & Freight Electrification by Jose Miguel Acosta Cordova
 
办理萨省大学毕业证成绩单|购买加拿大USASK文凭证书
办理萨省大学毕业证成绩单|购买加拿大USASK文凭证书办理萨省大学毕业证成绩单|购买加拿大USASK文凭证书
办理萨省大学毕业证成绩单|购买加拿大USASK文凭证书
 
-The-Present-Simple-Tense.pdf english hh
-The-Present-Simple-Tense.pdf english hh-The-Present-Simple-Tense.pdf english hh
-The-Present-Simple-Tense.pdf english hh
 
Transportation Electrification Funding Strategy by Jeff Allen and Brandt Hert...
Transportation Electrification Funding Strategy by Jeff Allen and Brandt Hert...Transportation Electrification Funding Strategy by Jeff Allen and Brandt Hert...
Transportation Electrification Funding Strategy by Jeff Allen and Brandt Hert...
 
Pros and cons of buying used fleet vehicles.pptx
Pros and cons of buying used fleet vehicles.pptxPros and cons of buying used fleet vehicles.pptx
Pros and cons of buying used fleet vehicles.pptx
 
Electric Nation Upper Midwest Inter-Tribal Electric Vehicle (EV) Charging Com...
Electric Nation Upper Midwest Inter-Tribal Electric Vehicle (EV) Charging Com...Electric Nation Upper Midwest Inter-Tribal Electric Vehicle (EV) Charging Com...
Electric Nation Upper Midwest Inter-Tribal Electric Vehicle (EV) Charging Com...
 
(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样
(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样
(办理学位证)(Toledo毕业证)托莱多大学毕业证成绩单修改留信学历认证原版一模一样
 
Trent engineer.pptx presentation reports
Trent engineer.pptx presentation reportsTrent engineer.pptx presentation reports
Trent engineer.pptx presentation reports
 
Centering Equity Panel by Samantha Bingham
Centering Equity Panel by Samantha BinghamCentering Equity Panel by Samantha Bingham
Centering Equity Panel by Samantha Bingham
 
原版1:1定制宾州州立大学毕业证(PSU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制宾州州立大学毕业证(PSU毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制宾州州立大学毕业证(PSU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制宾州州立大学毕业证(PSU毕业证)#文凭成绩单#真实留信学历认证永久存档
 
Mastering Mercedes Engine Care Top Tips for Rowlett, TX Residents
Mastering Mercedes Engine Care Top Tips for Rowlett, TX ResidentsMastering Mercedes Engine Care Top Tips for Rowlett, TX Residents
Mastering Mercedes Engine Care Top Tips for Rowlett, TX Residents
 
What Causes The key not detected Message In Mercedes Cars
What Causes The key not detected Message In Mercedes CarsWhat Causes The key not detected Message In Mercedes Cars
What Causes The key not detected Message In Mercedes Cars
 

01-Introduction&Languages.pdf

  • 2. 2 Text and Reference Material 1. Introduction to Computer Theory, by Daniel I. Cohen, John Wiley and Sons, Inc., 1991, Second Edition 2. Introduction to Languages and Theory of Computation, by J. C. Martin, McGraw Hill Book Co., 2011, Fourth Edition
  • 3. 3 Background • We shall form several mathematical models that will describe with varying degrees of accuracy parts of computers, types of computers, and similar machines. • In particular, the way we shall be studying about computers is to build mathematical models, called machines, and then to study their limitations by analyzing the types of inputs on which they can operate successfully. • The collection of these successful inputs is called the language of the machine.
  • 4. 4 • Every time we introduce a new machine, we will learn its language; and every time we develop a new language, we will try to find a machine that corresponds to it. • This interplay between languages and machines will be our way of investigating problems and their potential solutions by automatic procedures, which we call algorithms. • We will study different types of theoretical machines that are mathematical models for actual physical processes. By considering the possible inputs on which these machines can work, we can analyze their various strengths and weaknesses.
  • 5. 5 We are obliged to prove the truth about whatever we discover. • So consider only question of whether certain tasks can be done at all. Conclusion are of the form “this can be done” or “this can never be done”. • When reach conclusions of the second type, we mean not just that techniques for performing these tasks are unknown at the present time, but that such techniques will never exist in the future. What is mathematical about the models?
  • 6. 6 • We will arrive at what we may believe to be the most powerful machine possible. When we do, we will be surprised to find tasks that even such machine cannot perform. • Our ultimate result is that no matter what machine we build, there will always be questions that are simple to state and that the machine can not answer.
  • 7. 7 What does automata mean? It is the plural of automaton, and it means “something that works automatically”
  • 8. 8 Languages • In English, we distinguish 3 different entities: letters, words, and sentences. – Groups of letters make up words and groups of words make up sentences. – However, not all collections of letters form valid words, and not all collections of words form valid sentences. • This situation also exists with computer languages. – Certain (but not all) strings of characters are recognizable words (e.g., IF, ELSE, FOR, WHILE …); and certain (but not all) strings of words are recognizable commands.
  • 9. 9 • To construct a general theory of formal languages, we need to have a definition of a language structure, in which the decision of whether a given string of units constitutes a valid larger unit is not a matter of guesswork, but is based on explicitly stated rules. • In this model, language will be considered as symbols with formal rules, and not as expressions of ideas in the minds of humans. • The term “formal” emphasizes that it is the form of the string of symbols that we are interested in, not the meaning.
  • 10. 10 • A finite non-empty set of symbols (letters), is called an alphabet. It is denoted by Σ ( Greek letter sigma). Example: Σ={a,b} Σ={0,1} //important as this is the language //which the computer understands. Σ={i,j,k} Basic Definitions
  • 11. 11 Strings Concatenation of finite symbols from the alphabet is called a string. • Example: If Σ= {a,b} then a, abab, aaabb, ababababababababab
  • 12. 12 Words • Words are strings belonging to some language. Example: If Σ= {x} then a language L can be defined as L={xn : n=1,2,3,…..} or L={x,xx,xxx,….} Here x,xx,… are the words of L • All words are strings, but not all strings are words.
  • 13. 13 • We shall allow a string to have no letters. We call this empty string or null string, and denote it by the symbol Λ (Capital Greek Lambda). • For all languages, the null word, if it is a word in the language, is the word that has no letters. We also denote the null word by Λ. • Two words are considered the same if all their letters are the same and in the same order. • For clarity, we usually do not allow the symbol Λ to be part of the alphabet of any language. EMPTY STRING or NULL STRING
  • 14. 14 • The language that has no words is denoted by the standard symbol for null set, ø. • It is not true that Λ is a word in the language ø since this language has no words at all. • If a certain language L does not contain the word Λ and we wish to add it to L, we use the operation “+” to form L + {Λ}. This language is not the same as L. • However, the language L + ø is the same as L since no new words have been added. Discussion of null
  • 15. 15 Introduction to Defining Languages • The rules for defining a language can be of two kinds: – They can tell us how to test if a string of alphabet letters is a valid word, or – They can tell us how to construct all the words in the language by some clear procedures.
  • 16. Defining Languages • The languages can be defined in different ways , such as Descriptive definition, Recursive definition, using Regular Expressions(RE) and using Finite Automaton(FA) etc. • Descriptive definition of language – The language is defined, describing the conditions imposed on its words. 16
  • 17. 17 • Example: Consider this alphabet with only one letter ∑ = { x } • We can define a language by saying that any nonempty string of alphabet letters is a word L1 = { x, xx, xxx, xxxx, … } or L1 = { xn for n = 1, 2, 3, … } Note that because of the way we have defined it, the language L1 does not include the null word Λ. Defining Languages
  • 18. 18 Example The language L of strings of odd length, defined over Σ={a}, can be written as L={a, aaa, aaaaa,…..} • Example: The language L of strings that does not start with a, defined over Σ={a,b,c}, can be written as L={b, c, ba, bb, bc, ca, cb, cc, …}
  • 19. 19 Example The language L of strings of length 2, defined over Σ={0,1,2}, can be written as L={00, 01, 02,10, 11,12,20,21,22} • Example: The language L of strings ending in 0, defined over Σ ={0,1}, can be written as L={0,00,10,000,010,100,110,…}
  • 20. 20 Example • The language EQUAL, of strings with number of a’s equal to number of b’s, defined over Σ={a,b}, can be written as {Λ ,ab,aabb,abab,baba,abba,…} • The language EVEN-EVEN, of strings with even number of a’s and even number of b’s, defined over Σ={a,b}, can be written as {Λ, aa, bb, aaaa,aabb,abab, abba, baab, baba, bbaa, bbbb,…}
  • 21. Example • The language {an bn }, of strings defined over Σ={a,b}, as {an bn: n=1,2,3,…}, can be written as {ab, aabb, aaabbb,aaaabbbb,…} • The language {an bn an }, of strings defined over Σ={a,b}, as {an bn an: n=1,2,3,…}, can be written as {aba, aabbaa, aaabbbaaa,aaaabbbbaaaa,…} 21
  • 22. Example • The language FACTORIAL, of strings defined over Σ= {a}, as {an! : n=1,2,3,…}, can be written as {a,aa,aaaaaa,…}. It is to be noted that the language FACTORIAL can be defined over any single letter alphabet. • The language DOUBLEFACTORIAL, of strings defined over Σ= {a, b}, as {an! bn!: n=1,2,3,…}, can be written as {ab, aabb, aaaaaabbbbbb,…} 22
  • 23. 23 • Let us define an operation, concatenation, in which two strings are written down side by side to form a new longer string. xxx concatenated with xx is the word xxxxx xn concatenated with xm is the word xn+m • For convenience, we may label a word in a given language by a new symbol. For example, xxx is called a, and xx is called b • Then to denote the word formed by concatenating a and b, we can write ab = xxxxx • It is not true that when two words are concatenated, they produce another word. For example, if the language is L2 = {x, xxx, xxxxx, …} = {x2n+1 for n = 0, 1, 2, …} then a = xxx and b = xxxxx are both words in L2, but their concatenation ab = xxxxxxxx is not in L2 Concatenation
  • 24. 24 • Note that in this simple example, we have: ab = ba But in general, this relationship does NOT hold for all languages (e.g., houseboat and boathouse are two different words in English). • Example: Consider another language by beginning with the alphabet ∑ = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } Define the language L3 = { any finite string of alphabet letters that does not start with the letter zero } Concatenation makes new Words?
  • 25. 25 • This language L3 looks like the set of positive integers: L3 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, … } • If we want to define L3 so that it includes the string (word) 0, we could say L3 = { any finite string of alphabet letters that, if it starts with a 0, has no more letters after the first}
  • 26. 26 Definition: Length • We define the function length of a string to be the number of letters in the string. • Example: – If a = xxxx in the language L1, then length(a) = 4 – If c = 428 in the language L3, then length(c) = 3 – If d = 0 in the language L3, then length(d) = 1 – In any language that includes the null word Λ, then length(Λ) = 0 • For any word w in any language, if length(w) = 0 then w = Λ.
  • 27. 27 • Recall that the language L1 does not contain the null string Λ. Let us define a language like L1 but that does contain Λ: L4 = { Λ, x, xx, xxx, xxxx, … } = { xn for n = 0, 1, 2, 3, … } • Here we have defined that x0 = Λ (NOT x0 = 1 as in algebra) • In this way, xn always means the string of n alphabet letters x’s. • Remember that even Λ is a word in the language, it is not a letter in the alphabet.
  • 28. 28 Definition: Reverse • If a is a word in some language L, then reverse(a) is the same string of letters spelled backward, even if this backward string is not a word in L. • Example: – reverse(xxx) = xxx – reverse(145) = 541 – Note that 140 is a word in L3, but reverse(140) = 041 is NOT a word in L3
  • 29. 29 Definition: Palindrome • Let us define a new language called Palindrome over the alphabet ∑ = { a, b } PALINDROME = { Λ, and all strings x such that reverse(x) = x } • If we want to list the elements in PALINDROME, we find PALINDROME = { Λ, a, b, aa, bb, aaa, aba, bab, bbb, aaaa, abba, … }
  • 30. 30 • Sometimes two words in PALINDROME when concatenated will produce a word in PALINDROME – abba concatenated with abbaabba gives abbaabbaabba (in PALINDROME) • But more often, the concatenation is not a word in PALINDROME – aa concatenated with aba gives aaaba (NOT in PALINDROME) Palindrome
  • 31. 31 Kleene Closure • Definition: Given an alphabet ∑, we define a language in which any string of letters from ∑ is a word, even the null string Λ. We call this language the closure of the alphabet ∑, and denote this language by ∑*. • Examples: If ∑ = { x } then ∑* = { Λ, x, xx, xxx, … } If ∑ = { 0, 1 } then ∑* = { Λ, 0, 1, 00, 01, 10, 11, 000, 001, … } If ∑ = { a, b, c } then ∑* = { Λ, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, … }
  • 32. 32 • Note that we listed the words in a language in size order (i.e., words of shortest length first), and then listed all the words of the same length alphabetically. • This ordering is called lexicographic order, which we will usually follow. • The star in the closure notation is known as the Kleene star. • We can think of the Kleene star as an operation that makes, out of an alphabet, an infinite language (i.e., infinitely many words, each of finite length). Lexicographic order
  • 33. 33 • Let us now generalize the use of the Kleene star oprator to sets of words, not just sets of alphabet letters. • Definition: If S is a set of words, then S* is the set of all finite strings formed by concatenating words from S, where any word may be used as often as we like, and where the null string Λ is also included. Kleene Closure
  • 34. 34 • Example: If S = { aa, b } then S* = { Λ plus any word composed of factors of aa and b }, or S* = { Λ plus any strings of a’s and b’s in which the a’s occur in even clumps }, or S* = { Λ, b, aa, bb, aab, baa, bbb, aaaa, aabb, baab, bbaa, bbbb, aaaab, aabaa, aabbb, baaaa, baabb, bbaab, bbbaa, bbbbb, … } Note that the string aabaaab is not in S* because it has a clump of a’s of length 3. Kleene Closure
  • 35. 35 • Example: Let S = { a, ab }. Then S* = { Λ plus any word composed of factors of a and ab }, or S* = { Λ plus all strings of a’s and b’s except those that start with b and those that contain a double b }, or S* = { Λ, a, aa, ab, aaa, aab, aba, aaaa, aaab, abaa, abab, aaaaa, aaaab, aaaba, aabaa, aabab, abaaa, abaab, ababa, … } • Note that for each word in S*, every b must have an a immediately to its left, so the double b, that is bb, is not possible; neither any string starting with b. Kleene Closure
  • 36. 36 • We must show how it can be written as a concatenation of words from the base set S. • In the previous example, to show that abaab is in S*, we can factor it as follows: abaab = (ab)(a)(ab) • These three factors are all in the set S, therefore their concatenation is in S*. • Note that the parentheses, ( ), are used for the sole purpose of demarcating the ends of factors. How to prove a certain word is in the closure language S*
  • 37. 37 • Observe that if the alphabet has no letters, then its closure is the language with the null string as its only word; that is if ∑ = ø (the empty set), then ∑* = { Λ } • Also, observe that if the set S has the null string as its only word, then the closure language S* also has the null string as its only word; that is if S = { Λ }, then S* = { Λ } because ΛΛ = Λ. • Hence, the Kleene closure always produces an infinite language unless the underlying set is one of the two cases above. How to prove a certain word is in the closure language S*
  • 38. 38 • The Kleene closure of two different sets can end up being the same language. • Example: Consider two sets of words S = { a , b, ab } and T = { a, b, bb } Then, both S* and T* are languages of all strings of a’s and b’s since any string of a’s and b’s can be factored into syllables of (a) or (b), both of which are in S and T. Kleene Closure of different sets
  • 39. 39 Positive Closure • If we wish to modify the concept of closure to refer only the concatenation of some (not zero) strings from a set S, we use the notation + instead of *. • This “plus operation” is called positive closure. Example: if ∑ = { x } then ∑+ = { x, xx, xxx, … } Observe that: 1. If S is a language that does not contain Λ, then S+ is the language S* without the null word Λ. 2. If S is a language that does contain Λ, then S+ = S* 3. Likewise, if ∑ is an alphabet, then ∑+ is ∑* without the word Λ.
  • 40. 40 • What happens if we apply the closure operator twice? – We start with a set of words S and form its closure S* – We then start with the set S* and try to form its closure, which we denote as (S*)* or S** • Theorem 1: For any set S of strings, we have S* = S** • Before we prove the theorem, recall from Set Theory that – A = B if A is a subset of B and B is a subset of A – A is a subset of B if for all x in A, x is also in B S**?
  • 41. 41 • Let us first prove that S** is a subset of S*: Every word in S** is made up of factors from S*. Every factor from S* is made up of factors from S. Hence, every word from S** is made up of factors from S. Therefore, every word in S** is also a word in S*. This implies that S** is a subset of S*. • Let us now prove that S* is a subset of S**: In general, it is true that for any set A, we have A is a subset of A*, because in A* we can choose as a word any factor from A. So if we consider A to be our set S* then S* is a subset of S** • Together, these two inclusions prove that S* = S**. Proof of Theorem 1:
  • 42. • Useful Reading First and second chapter of Daniel I. Cohen book. 42