Você está na página 1de 19

Introduo

e
Captulo um: Fundamentos

Linguagens Formais, captulo 1, slide 1

Copyright 2007 por Adam Webber

de estudar linguagens formais.


Tem toda a pinta de ser algo
abstrato e reducionista. Parece
que toda a beleza transcendente
da linguagem ser imolada,
sacrificada sobre o calor seco
das definies, teoremas e
provas, at que nada reste,
salvo as cinzas da sintaxe.
Parece que se trata de um campo
abstrato e assim ,
inegavelmente. E no entanto,
dessa abstrao emergem algumas
Linguagens das
Formais, captulo
1, slide 2
2007 pore
Adam Webber
ideias
mais Copyright
belas

Porqu estudar linguagens formais?


Conecta-se...
...a muitos outros ramos do conhecimento

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

Linguagens Formais, captulo 1, slide 3

Copyright 2007 por Adam Webber

passo que os entomologistas tm


definies precisas de palavras
comuns como besouro e mosca. Embora
possa ser um tanto confuso
sobrecarregar palavras comuns como
essas, normalmente melhor faz-lo
do que inventar novas palavras.
assim que a maior parte das reas
de pesquisa procede, dando
definies rigorosas e contornos
claros a palavras cujo sentido
comum nebuloso, intuitivo.
O estudo das linguagens formais no
exceo. Usamos definies
Linguagens Formais, captulo 1, slide 4
Copyright 2007 por Adam Webber
precisas e rigorosas para termos

Sumrio
1.1 Alfabetos
1.2 Cadeias
1.3 Linguagens

Linguagens Formais, captulo 1, slide 5

Copyright 2007 por Adam Webber

Alfabetos
Um alfabeto qualquer conjunto finito de
smbolos

{0,1}: alfabeto binrio


{0,1,2,3,4,5,6,7,8,9}: alfabeto decimal
ASCII, Unicode: alfabetos para textos maqunicos
Ou apenas {a,b}: suficiente para muitos exemplos
{}: Um alfabeto que existe, mas no muito til

Normalmente usaremos como nome do


alfabeto que de que estivermos tratando
(como em = {a,b})
Linguagens Formais, captulo 1, slide 6

Copyright 2007 por Adam Webber

Alfabetos no interpretados
Informalmente, descrevemos as linguagens de
modo interpretativo
o conjunto dos nmeros binrios pares

Nossa meta, entretanto, descrev-los


rigorosamente, o que implica evitar interpretaes
o conjunto das cadeias de 0s e 1s que terminam em
0

No definimos o que um smbolo, e no


atribumos significado a eles

Linguagens Formais, captulo 1, slide 7

Copyright 2007 por Adam Webber

Sumrio
1.1 Alfabetos
1.2 Cadeias
1.3 Linguagens

Linguagens Formais, captulo 1, slide 8

Copyright 2007 por Adam Webber

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}

Linguagens Formais, captulo 1, slide 9

Copyright 2007 por Adam Webber

Cadeia vazia
A cadeia vazia se escreve
como "" em algumas linguagens de
programao
|| = 0
No confundir conjunto vazio e cadeia vazia:
{}
{} {}

Linguagens Formais, captulo 1, slide 10

Copyright 2007 por Adam Webber

Smbolos e variveis

s vezes usamos variveis como referncia a cadeias: x =


abbb
Em linguagens de programao, a sintaxe ajuda a distinguir
smbolos de variveis
String x = "abbb";

Em linguagens formais, confiamos no contexto e em


convenes de nomeao para diferenci-las
a, b, e c sero para ns smbolos
x, y, and z, sero variveis

Linguagens Formais, captulo 1, slide 11

Copyright 2007 por Adam Webber

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

Copyright 2007 por Adam Webber

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.

Usamos parnteses para agrupar exponenciaes (supondo que


no contenha os prprios parnteses)
(ab)7 = ababababababab

Linguagens Formais, captulo 1, slide 13

Copyright 2007 por Adam Webber

Sumrio
1.1 Alfabetos
1.2 Cadeias
1.3 Linguagens

Linguagens Formais, captulo 1, slide 14

Copyright 2007 por Adam Webber

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

Copyright 2007 por Adam Webber

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

Exceto com = {}, * infinito

Linguagens Formais, captulo 1, slide 16

Copyright 2007 por Adam Webber

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

Copyright 2007 por Adam Webber

Variveis livres em formadores de


conjuntos
A no ser que se defina explicitamente de
outra forma, supe-se que os expoentes em
um formador de conjunto cobrem todo o
conjunto N
Exemplos
{(ab)n} = {, ab, abab, ababab, abababab, ...}
{anbn} = {, ab, aabb, aaabbb, aaaabbbb, ...}

Linguagens Formais, captulo 1, slide 18

Copyright 2007 por Adam Webber

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

Linguagens Formais, captulo 1, slide 19

Copyright 2007 por Adam Webber

Você também pode gostar