Escolar Documentos
Profissional Documentos
Cultura Documentos
e
Captulo um: Fundamentos
Matemtica...
...rigorosa, com muitas questes abertas em suas fronteiras
til...
...com muitas aplicaes em sistemas de computao,
particularmente nas linguagens de programao e compiladores
Acessvel...
...sem a necessidade de matemtica avanada
Estvel...
...os fundamentos no mudaram muito durante os ltimos trinta anos
Sumrio
1.1 Alfabetos
1.2 Cadeias
1.3 Linguagens
Alfabetos
Um alfabeto qualquer conjunto finito de
smbolos
Alfabetos no interpretados
Informalmente, descrevemos as linguagens de
modo interpretativo
o conjunto dos nmeros binrios pares
Sumrio
1.1 Alfabetos
1.2 Cadeias
1.3 Linguagens
Cadeias
Uma cadeia uma sequncia finita de zero
ou mais smbolos
Comprimento de uma cadeia: |abbb| = 4
Uma cadeia sobre o alfabeto significa
uma cadeia cujos smbolos todos esto em
O conjunto de todas as cadeias de comprimento 2
sobre o alfabeto {a,b} {aa, ab, ba, bb}
Cadeia vazia
A cadeia vazia se escreve
como "" em algumas linguagens de
programao
|| = 0
No confundir conjunto vazio e cadeia vazia:
{}
{} {}
Smbolos e variveis
Concatenao
A concatenao de duas cadeias x e y a
cadeia que contm todos os smbolos de x,
em ordem, seguidos por todos os smbolos
de y em ordem
Representamos a concatenao apenas
justapondo as cadeias concatenadas
Se x = abc e y = def, ento xy = abcdef
Para todo x, x = x = x
Linguagens Formais, captulo 1, slide 12
Expoentes
Usaremos N para denotar o conjunto dos nmeros
naturais:
N = {0, 1, }
O expoente n concatena uma cadeia consigo mesma n
vezes
Se x = ab, ento
x0 =
x1 = x = ab
x2 = xx = abab, etc.
Sumrio
1.1 Alfabetos
1.2 Cadeias
1.3 Linguagens
Linguagens
Uma linguagem o conjunto de cadeias
sobre um determinado alfabeto
No esto restritas a conjuntos finitos de
cadeias: na verdade, conjuntos finitos no
costumam ser linguagens interessantes
Todos os alfabetos so finitos, e todas as
cadeias so finitas, mas a maior parte das
linguagens que nos interessam so infinitas
Linguagens Formais, captulo 1, slide 15
O asterisco de Kleene
O fecho de Kleene de um alfabeto , que se escreve
*, a linguagem de todas as cadeias sobre
{a}* o conjunto de todas as cadeias de zero ou mais
smbolos a:
{, a, aa, aaa, }
{a,b}* o conjunto de todas as cadeias de zero ou mais
smbolos, sendo cada um a ou b
= {, a, b, aa, bb, ab, ba, aaa, }
x * significa que x uma cadeia sobre
Formadores de conjuntos
Um conjunto descrito com condies ou restries
adicionais que limitam os elementos do conjunto
No a definio rigorosa que buscamos, mas
uma notao til, em todo caso:
{x {a, b}* | |x| 2} = {, a, b, aa, bb, ab, ba}
{xy | x {a, aa} e y {b, bb}} = {ab, abb, aab, aabb}
{x {a, b}* | x contm um a e dois bs} = {abb, bab, bba}
{anbn | n 1} = {ab, aabb, aaabbb, aaaabbbb, ...}
Linguagens Formais, captulo 1, slide 17
A busca
A notao dos formadores de conjuntos
semi-formal
Podem ser vagos, ambguos ou autocontraditrios
Boa parte da nossa busca no estudo de
linguagens formais desenvolver melhores
ferramentas para a definio de linguagens