Você está na página 1de 37

Li

nguagensFor
mai
se
Aut
mat
os
Paul
oBl
aut
hMenez
es

Linguagens Formais e Autmatos


P. Blauth Menezes
1
2
3
4
5
6
7
8
9

Linguagens Formais e Autmatos

Introduo e Conceitos Bsicos


Linguagens e Gramticas
Linguagens Regulares
Propriedades das Linguagens Regulares
Autmato Finito com Sada
Linguagens Livres do Contexto
Propriedades e Reconhecimento das Linguagens
Livres do Contexto
Linguagens Recursivamente Enumerveis e
Sensveis ao Contexto
Hierarquia de Classes de Linguagens e Concluses

2 Linguagens e Gramticas
2.1
2.2
2.3
2.4

Alfabeto
Palavra
Linguagem formal
Gramtica

Linguagens Formais e Autmatos

2 Linguagens e Gramticas
Linguagem: Dicionrio Aurlio
o uso da palavra articulada ou escrita como
meio de expresso e comunicao entre pessoas

No suficientemente precisa para


desenvolvimento matemtico de uma teoria baseada em linguagens

Linguagens Formais e Autmatos

Linguagem
conceito fundamental em computao e informtica

Para definir linguagem


alfabeto
palavra ou cadeia de caracteres

Linguagens Formais e Autmatos

2 Linguagens e Gramticas
2.1
2.2
2.3
2.4

Alfabeto
Palavra
Linguagem formal
Gramtica

Linguagens Formais e Autmatos

2.1 Alfabeto
Smbolo ou caractere
entidade abstrata bsica, no definida formalmente
base para definies
exemplos: letras e dgitos

Def: Alfabeto
Conjunto finito de smbolos ou caracteres

Portanto
conjunto infinito no alfabeto
um alfabeto
Linguagens Formais e Autmatos

Exp: Alfabeto
So alfabetos
{ a, b, c }
(conjunto vazio)
No so alfabetos (por qu?)
N (conjunto dos nmeros naturais)
{ a, b, aa, ab, ba, bb, aaa, }

Linguagens Formais e Autmatos

Exp: Alfabeto: linguagem de programao


Alfabeto de uma linguagem de programao como Pascal
o conjunto de todos os smbolos usados nos programas
letras
dgitos
caracteres especiais como >, /, etc
espao ou branco

Alfabeto binrio { a, b }
domnio de valores de um bit
analogia com a representao interna dos computadores reais
poucos smbolos: simplifica as diversas abordagens desenvolvidas
Linguagens Formais e Autmatos

2 Linguagens e Gramticas
2.1
2.2
2.3
2.4

Alfabeto
Palavra
Linguagem Formal
Gramtica

Linguagens Formais e Autmatos

10

2.2 Palavra
Def: Palavra, cadeia de caracteres, sentena
Sobre um alfabeto
sequncia finita de smbolos justapostos

Cadeia sem smbolos


- cadeia vazia ou palavra vazia

Linguagens Formais e Autmatos

11

Def: Prefixo, sufixo, subpalavra


Prefixo (Sufixo)
qualquer sequncia inicial (final) de smbolos da palavra
Subpalavra
qualquer sequncia de smbolos contguos da palavra

Exp: Palavra, prefixo, sufixo, subpalavra


abcb palavra sobre o alfabeto { a, b, c }
, a, ab, abc, abcb so todos os prefixos
, b, cb, bcb, abcb so todos os sufixos
qualquer prefixo ou sufixo uma subpalavra

Linguagens Formais e Autmatos

12

Exp: Palavra: linguagem de programao


Em uma linguagem de programao como Pascal
uma palavra um programa

Linguagens Formais e Autmatos

13

Def: Concatenao de palavras


Concatenao de palavras ou simplesmente concatenao
operao binria sobre um conjunto de palavras
associa a cada par de palavras
palavra formada pela justaposio da primeira com a segunda
Notao
justaposio dos smbolos que representam as palavras
componentes
Propriedades
Elemento neutro: w = w = w
Associativa: v(w t) = (v w)t
Associatividade parnteses podem ser omitidos: v w t

Linguagens Formais e Autmatos

14

Exp: Concatenao de palavras


= { a, b } um alfabeto. Para v = baaaa e w = bb
v w = baaaabb
v = v = baaaa

Def: Concatenao sucessiva de uma palavra


Concatenao sucessiva de uma palavra (com ela mesma) ou
simplesmente concatenao sucessiva
wn

onde n o nmero de concatenaes sucessivas

indutivamente a partir da operao de concatenao


w0 =
wn = w wn-1, para n > 0
Linguagens Formais e Autmatos

15

Exp: Concatenao sucessiva


w palavra e a smbolo
w3 = w w w
w1 = w
a5 = aaaaa
an = aaaa

Linguagens Formais e Autmatos

(o smbolo a repetido n vezes)

16

Se um alfabeto
* conjunto de todas as palavras possveis sobre
+ = * - { }

Def: Conjunto de todas as palavras


alfabeto. * indutivamente definido
Base de induo
*
para qualquer x , vale x *
Passo de induo
Se u e v so palavras de *,

Linguagens Formais e Autmatos

17

ento a concatenao u v uma palavra de *

Definio alternativa para palavra sobre um alfabeto


qualquer elemento w de *
w *

Exp: Conjunto de todas as palavras


Se = { a, b }, ento:
+ = { a, b, aa, ab, ba, bb, aaa, }
* = { , a, b, aa, ab, ba, bb, aaa, }

Linguagens Formais e Autmatos

18

Def: Comprimento, tamanho de uma palavra


De uma palavra w, representado por w
nmero de smbolos que compem a palavra
funo com domnio em * e codomnio em N

Exp: Palavra, prefixo, sufixo, comprimento


abcb = 4
= 0

Linguagens Formais e Autmatos

19

2 Linguagens e Gramticas
2.1
2.2
2.3
2.4

Alfabeto
Palavra
Linguagem formal
Gramtica

Linguagens Formais e Autmatos

20

2.3 Linguagem formal


Def: Linguagem formal
Linguagem formal ou simplesmente linguagem L sobre um alfabeto
L *

Exp: Linguagem formal


e { } so linguagens sobre qualquer alfabeto
{ }
* e + so linguagens sobre um qualquer
* +
Conjunto de palndromos sobre = { a, b }

Linguagens Formais e Autmatos

21

, a, b, aa, bb, aaa, aba, bab, bbb, aaaa,

Exp: Conjunto de todas as linguagens sobre um alfabeto


Conjunto das partes de *
2*

Exp: Linguagem formal: linguagem de programao


Linguagem de programao como Pascal
conjunto de todos os programas (palavras) da linguagem

Linguagens Formais e Autmatos

22

2 Linguagens e Gramticas
2.1
2.2
2.3
2.4

Alfabeto
Palavra
Linguagem formal
Gramtica

Linguagens Formais e Autmatos

23

2.4 Gramtica
Linguagem de programao
definida pelo conjunto de todos os programas (palavras)

Linguagem de propsitos gerais como Pascal


conjunto de todos os programas infinito
no definio adequada para implementao em computador

Formalismo gramtica
uma maneira de especificar de forma finita linguagens
(eventualmente) infinitas

Linguagens Formais e Autmatos

24

Gramtica , basicamente
conjunto finito de regras
quando aplicadas sucessivamente, geram palavras
conjunto de todas as palavras geradas por uma gramtica
define a linguagem

Gramticas para linguagens naturais como Portugus


as mesmas que as usadas para linguagens artificiais como Pascal

Gramticas tambm so usadas para definir semntica


entretanto, em geral, so usados outros formalismos

Linguagens Formais e Autmatos

25

Def: Gramtica
Gramtica de Chomsky, Gramtica irrestrita ou gramtica
G = (V, T, P, S)
V, conjunto finito de smbolos variveis ou no terminais
T, conjunto finito de smbolos terminais disjunto de V
P: (V T)+ (V T)*, relao finita: produes
par da relao: regra de produo ou produo
S, elemento distinguido de V: smbolo inicial ou varivel inicial
Representao de uma regra de produo (, )

Representao abreviada para 1, 2, ..., n

Linguagens Formais e Autmatos

26

1 2 n

Derivao
aplicao de uma regra de produo denominada derivao
aplicao sucessiva de regras de produo
fecho transitivo da relao de derivao
permite derivar palavras da linguagem

Linguagens Formais e Autmatos

27

Def: Relao de Derivao


G = (V, T, P, S) gramtica
Derivao um par da relao de derivao denotada por
domnio em (V T)+ e codomnio em (V T)*
, representado de forma infixada

indutivamente definida como segue:


para toda produo da forma S (S o smbolo inicial de G)
S
para todo par da relao de derivao
se regra de P, ento

Linguagens Formais e Autmatos

28

Portanto, derivao
substituio de uma subpalavra
de acordo com uma regra de produo

Sucessivos passos de derivao


* fecho transitivo e reflexivo da relao
zero ou mais passos de derivaes sucessivos
+ fecho transitivo da relao
um ou mais passos de derivaes sucessivos
I
exatos i passos de derivaes sucessivos (i natural)

Linguagens Formais e Autmatos

29

Gramtica um formalismo
aximtico
de gerao
permite derivar ("gerar") todas as palavras da linguagem

Def: Linguagem gerada


G = (V, T, P, S) gramtica
Linguagem gerada por G: L(G) ou GERA(G)
palavras de smbolos terminais derivveis a partir de S
L(G) = { w T* S + w }

Linguagens Formais e Autmatos

30

Exp: Gramtica, derivao, linguagem gerada: nmeros


naturais
G = (V, T, P, N)
V = { N, D }
T = { 0, 1, 2,, 9 }
P = { N D, N DN, D 0 1 9 }
Gera, sintaticamente, o conjunto dos nmeros naturais
se distinguem os zeros esquerda
exemplo: 123 de 0123

Linguagens Formais e Autmatos

31

Exp: Gramtica, derivao, linguagem gerada: nmeros


naturais
G = (V, T, P, N)
V = { N, D }
T = { 0, 1, 2,, 9 }
P = { N D, N DN, D 0 1 9 }
Uma derivao do nmero 243

N
DN
2N
2DN
24N
24D
243

Linguagens Formais e Autmatos

N DN
D2
N DN
D4
ND
D3

32

Portanto
S * 243
S + 243
S 6 243
Interpretao indutiva da gramtica
Base de induo: todo dgito natural
Passo de induo: se n natural, ento a concatenao com
qualquer dgito tambm natural

Linguagens Formais e Autmatos

33

Exp: Gramtica, derivao, linguagem gerada: palavra


duplicada
G = ({ S, X, Y, A, B, F }, { a, b }, P, S)
na qual:

P = { S XY,
X XaA XbB F
Aa aA, Ab bA, AY Ya,
Ba aB, Bb bB, BY Yb,
Fa aF, Fb bF, FY }

gera a linguagem
{ ww w palavra de { a, b }* }

Linguagens Formais e Autmatos

34

Derivao de baba

S
XY
XaAY
XaYa
XbBaYa
XbaBYa
XbaYba
FbaYba
bFaYba
baFYba
baba

S XY
X XaA
AY Ya
X XbB
Ba aB
BY Yb
XF
Fb bF
Fa aF
FY

Existe mais alguma derivao de baba?


Linguagens Formais e Autmatos

35

Def: Gramticas equivalentes


G1 e G2 so gramticas equivalentes se e somente se
GERA(G1) = GERA(G2)

Convenes
A, B, C,, S, T para smbolos variveis
a, b, c,, s, t para smbolos terminais
u, v, w, x, y, z para palavras de smbolos terminais
, , para palavras de smbolos variveis ou terminais

Linguagens Formais e Autmatos

36

Linguagens Formais e Autmatos


P. Blauth Menezes
1
2
3
4
5
6
7
8
9

Linguagens Formais e Autmatos

Introduo e Conceitos Bsicos


Linguagens e Gramticas
Linguagens Regulares
Propriedades das Linguagens Regulares
Autmato Finito com Sada
Linguagens Livres do Contexto
Propriedades e Reconhecimento das Linguagens
Livres do Contexto
Linguagens Recursivamente Enumerveis e
Sensveis ao Contexto
Hierarquia de Classes de Linguagens e Concluses

37