You are on page 1of 37

Linguagens Formais e Autmatos

P. Blauth Menezes
blauth@inf.ufrgs.br

Departamento de Informtica Terica Instituto de Informtica / UFRGS

Matemtica Discreta para Cincia da Computao - P. Blauth Menezes

Linguagens Formais e Autmatos


P. Blauth Menezes 1 2 3 4 5 6 7 8 9 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 e Linguagens e Concluses

Linguagens Formais e Autmatos - P. Blauth Menezes

2 Linguagens e Gramticas
2.1 2.2 2.3 2.4 Alfabeto Palavra Linguagem Formal Gramtica

Linguagens Formais e Autmatos - P. Blauth Menezes

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 - P. Blauth Menezes

Linguagem
conceito fundamental em Computao e Informtica

Para definir linguagem


alfabeto palavra ou cadeia de caracteres

Linguagens Formais e Autmatos - P. Blauth Menezes

2 Linguagens e Gramticas
2.1 2.2 2.3 2.4 Alfabeto Palavra Linguagem Formal Gramtica

Linguagens Formais e Autmatos - P. Blauth Menezes

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 - P. Blauth Menezes

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 - P. Blauth Menezes

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.
9

Linguagens Formais e Autmatos - P. Blauth Menezes

2 Linguagens e Gramticas
2.1 2.2 2.3 2.4 Alfabeto Palavra Linguagem Formal Gramtica

Linguagens Formais e Autmatos - P. Blauth Menezes

10

2.2 Palavra
Def: Palavra, Cadeia de Caracteres, Sentena
Sobre um alfabeto seqncia finita de smbolos justapostos

Cadeia sem smbolos


- cadeia vazia ou palavra vazia

Linguagens Formais e Autmatos - P. Blauth Menezes

11

Def: Prefixo, Sufixo, Subpalavra


Prefixo (Sufixo) qualquer seqncia inicial (final) de smbolos da palavra Subpalavra qualquer seqncia 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 - P. Blauth Menezes

12

Exp: Palavra: Linguagem de Programao


Em uma linguagem de programao como Pascal uma palavra um programa

Linguagens Formais e Autmatos - P. Blauth Menezes

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 - P. Blauth Menezes

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 - P. Blauth Menezes

15

Exp: Concatenao Sucessiva


w palavra e a smbolo w3 = w w w w1 = w a5 = aaaaa an = aaaa (o smbolo a repetido n vezes)

Linguagens Formais e Autmatos - P. Blauth Menezes

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 *, ento a concatenao u v uma palavra de *
Linguagens Formais e Autmatos - P. Blauth Menezes

17

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 - P. Blauth Menezes

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 - P. Blauth Menezes

19

2 Linguagens e Gramticas
2.1 2.2 2.3 2.4 Alfabeto Palavra Linguagem Formal Gramtica

Linguagens Formais e Autmatos - P. Blauth Menezes

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 } , a, b, aa, bb, aaa, aba, bab, bbb, aaaa,
Linguagens Formais e Autmatos - P. Blauth Menezes

21

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 - P. Blauth Menezes

22

2 Linguagens e Gramticas
2.1 2.2 2.3 2.4 Alfabeto Palavra Linguagem Formal Gramtica

Linguagens Formais e Autmatos - P. Blauth Menezes

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 - P. Blauth Menezes

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 - P. Blauth Menezes

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 1 2 n
Linguagens Formais e Autmatos - P. Blauth Menezes

26

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 - P. Blauth Menezes

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 - P. Blauth Menezes

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 - P. Blauth Menezes

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 - P. Blauth Menezes

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 - P. Blauth Menezes

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 N DN D2 N DN D4 ND D3

Linguagens Formais e Autmatos - P. Blauth Menezes

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 - P. Blauth Menezes

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 - P. Blauth Menezes

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 - P. Blauth Menezes

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 - P. Blauth Menezes

36

Linguagens Formais e Autmatos


P. Blauth Menezes 1 2 3 4 5 6 7 8 9 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 e Linguagens e Concluses
37

Linguagens Formais e Autmatos - P. Blauth Menezes

You might also like