Linguagens Formais e Autômatos

P. Blauth Menezes
blauth@inf.ufrgs.br

Departamento de Informática Teórica Instituto de Informática / UFRGS

Matemática Discreta para Ciência da Computação - P. Blauth Menezes

1

Linguagens Formais e Autômatos
P. Blauth Menezes 1 2 3 4 5 6 7 8 9 Introdução e Conceitos Básicos Linguagens e Gramáticas Linguagens Regulares Propriedades das Linguagens Regulares Autômato Finito com Saída Linguagens Livres do Contexto Propriedades e Reconhecimento das Linguagens Livres do Contexto Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto Hierarquia de Classes e Linguagens e Conclusões

Linguagens Formais e Autômatos - P. Blauth Menezes

2

2 – Linguagens e Gramáticas
2.1 2.2 2.3 2.4 Alfabeto Palavra Linguagem Formal Gramática

Linguagens Formais e Autômatos - P. Blauth Menezes

3

2 Linguagens e Gramáticas ◆ Linguagem: Dicionário Aurélio o uso da palavra articulada ou escrita como meio de expressão e comunicação entre pessoas ◆ Não é suficientemente precisa para • desenvolvimento matemático de uma teoria baseada em linguagens Linguagens Formais e Autômatos .P. Blauth Menezes 4 .

Blauth Menezes 5 .P.◆ Linguagem • conceito fundamental em Computação e Informática ◆ Para definir linguagem • alfabeto • palavra ou cadeia de caracteres Linguagens Formais e Autômatos .

P. Blauth Menezes 6 .2 – Linguagens e Gramáticas 2.3 2.4 Alfabeto Palavra Linguagem Formal Gramática Linguagens Formais e Autômatos .1 2.2 2.

1 Alfabeto ◆ Símbolo ou Caractere • entidade abstrata básica. Blauth Menezes 7 . não definida formalmente • base para definições • exemplos: letras e dígitos Def: Alfabeto Conjunto finito de símbolos ou caracteres ◆ Portanto • conjunto infinito não é alfabeto • ∅ é um alfabeto Linguagens Formais e Autômatos .P.2.

ab. aa. ba. b. aaa.… } Linguagens Formais e Autômatos . Blauth Menezes 8 .Exp: Alfabeto São alfabetos • { a. b. bb. c } • ∅ (conjunto vazio) Não são alfabetos (por quê?) • N (conjunto dos números naturais) • { a.P.

b } • domínio de valores de um bit • analogia com a representação interna dos computadores reais • poucos símbolos: simplifica as diversas abordagens desenvolvidas. “/”.Exp: Alfabeto: Linguagem de Programação Alfabeto de uma linguagem de programação como Pascal • o conjunto de todos os símbolos usados nos programas ∗ letras ∗ dígitos ∗ caracteres especiais como “>”.P. Blauth Menezes . etc ∗ espaço ou “branco” ◆ Alfabeto binário { a. 9 Linguagens Formais e Autômatos .

1 2. Blauth Menezes 10 .2 – Linguagens e Gramáticas 2.2 2.P.4 Alfabeto Palavra Linguagem Formal Gramática Linguagens Formais e Autômatos .3 2.

Blauth Menezes 11 .cadeia vazia ou palavra vazia Linguagens Formais e Autômatos . Cadeia de Caracteres. Sentença Sobre um alfabeto • seqüência finita de símbolos justapostos ◆ Cadeia sem símbolos ε .2 Palavra Def: Palavra.2.P.

P. abcb são todos os prefixos • ε. ab. Prefixo. bcb. b. b. Sufixo. abcb são todos os sufixos • qualquer prefixo ou sufixo é uma subpalavra Linguagens Formais e Autômatos . Sufixo. Subpalavra abcb palavra sobre o alfabeto { a. abc. Blauth Menezes 12 . c } • ε. Subpalavra Prefixo (Sufixo) • qualquer seqüência inicial (final) de símbolos da palavra Subpalavra • qualquer seqüência de símbolos contíguos da palavra Exp: Palavra. cb.Def: Prefixo. a.

P. Blauth Menezes 13 .Exp: Palavra: Linguagem de Programação Em uma linguagem de programação como Pascal uma palavra é um programa Linguagens Formais e Autômatos .

P.parênteses podem ser omitidos: v w t Linguagens Formais e Autômatos . Blauth Menezes 14 .Def: Concatenação de Palavras Concatenação de Palavras ou simplesmente Concatenação • operação binária sobre um conjunto de palavras • associa a cada par de palavras ∗ palavra formada pela justaposição da primeira com a segunda Notação • justaposição dos símbolos que representam as palavras componentes Propriedades • Elemento Neutro: ε w = w = w ε • Associativa: v(w t) = (v w)t Associatividade .

P. Para v = baaaa e w = bb • v w = baaaabb • v ε = v = baaaa Def: Concatenação Sucessiva de uma Palavra Concatenação Sucessiva de uma Palavra (com ela mesma) ou simplesmente Concatenação Sucessiva wn onde n é o número de concatenações sucessivas indutivamente a partir da operação de concatenação • w0 = ε • wn = w wn-1.Exp: Concatenação de Palavras Σ = { a. b } um alfabeto. Blauth Menezes 15 . para n > 0 Linguagens Formais e Autômatos .

Blauth Menezes 16 .Exp: Concatenação Sucessiva w palavra e a símbolo • w3 = w w w • w1 = w • a5 = aaaaa • an = aaa…a (o símbolo a repetido n vezes) Linguagens Formais e Autômatos .P.

Σ* é indutivamente definido Base de Indução • ε ∈ Σ* • para qualquer x ∈ Σ. Blauth Menezes 17 . • então a concatenação u v é uma palavra de Σ* Linguagens Formais e Autômatos . vale x ∈ Σ* Passo de Indução • Se u e v são palavras de Σ*.P.◆ Se Σ é um alfabeto • Σ* conjunto de todas as palavras possíveis sobre Σ • Σ+ = Σ* .{ ε } Def: Conjunto de Todas as Palavras Σ alfabeto.

aaa. ba. ba. a. bb. b.… } Linguagens Formais e Autômatos . aa. ab. aaa. Blauth Menezes 18 . aa. b }. então: • Σ+ = { a.… } • Σ* = { ε.P.◆ Definição alternativa para palavra sobre um alfabeto Σ • qualquer elemento w de Σ* w ∈ Σ* Exp: Conjunto de Todas as Palavras Se Σ = { a. b. bb. ab.

Comprimento abcb = 4 ε = 0 Linguagens Formais e Autômatos . Sufixo.P. Prefixo. representado por w • número de símbolos que compõem a palavra • função com domínio em Σ* e codomínio em N Exp: Palavra.Def: Comprimento. Tamanho de uma Palavra De uma palavra w. Blauth Menezes 19 .

3 2.2 2.2 – Linguagens e Gramáticas 2.P.4 Alfabeto Palavra Linguagem Formal Gramática Linguagens Formais e Autômatos .1 2. Blauth Menezes 20 .

b. aaaa. b } ε. aa.P.3 Linguagem Formal Def: Linguagem Formal Linguagem Formal ou simplesmente Linguagem L sobre um alfabeto Σ L ⊆ Σ* Exp: Linguagem Formal ∅ e { ε } são linguagens sobre qualquer alfabeto ∅ ≠ {ε } Σ* e Σ+ são linguagens sobre um Σ qualquer Σ* ≠ Σ+ Conjunto de palíndromos sobre Σ = { a. a.2.… Linguagens Formais e Autômatos . Blauth Menezes 21 . bbb. aaa. bb. bab. aba.

Exp: Conjunto de Todas as Linguagens Sobre um Alfabeto Conjunto das partes de Σ* 2Σ* Exp: Linguagem Formal: Linguagem de Programação Linguagem de programação como Pascal conjunto de todos os programas (palavras) da linguagem Linguagens Formais e Autômatos . Blauth Menezes 22 .P.

3 2. Blauth Menezes 23 .P.1 2.4 Alfabeto Palavra Linguagem Formal Gramática Linguagens Formais e Autômatos .2 – Linguagens e Gramáticas 2.2 2.

2.P.4 Gramática ◆ Linguagem de programação • definida pelo conjunto de todos os programas (palavras) ◆ Linguagem de propósitos gerais como Pascal • conjunto de todos os programas é infinito • não é definição adequada para implementação em computador ◆ Formalismo Gramática • uma maneira de especificar de forma finita linguagens (eventualmente) infinitas Linguagens Formais e Autômatos . Blauth Menezes 24 .

basicamente • conjunto finito de regras • quando aplicadas sucessivamente.P. Blauth Menezes 25 . são usados outros formalismos Linguagens Formais e Autômatos . em geral.◆ Gramática é. geram palavras • conjunto de todas as palavras geradas por uma gramática ∗ define a linguagem ◆ Gramáticas para linguagens naturais como Português • as mesmas que as usadas para linguagens artificiais como Pascal ◆ Gramáticas também são usadas para definir semântica • entretanto.

T. Gramática Irrestrita ou Gramática G = (V. S) • V... conjunto finito de símbolos terminais disjunto de V • P: (V ∪ T)+ → (V ∪ T)*.P. β) α→β Representação abreviada para α → β1. α → β2. relação finita: Produções ∗ par da relação: regra de produção ou produção • S. .Def: Gramática Gramática de Chomsky. conjunto finito de símbolos variáveis ou não-terminais • T.. elemento distinguido de V: símbolo inicial ou variável inicial Representação de uma regra de produção (α. P. α → βn α → β1  β2  …  βn Linguagens Formais e Autômatos . Blauth Menezes 26 .

◆ Derivação • aplicação de uma regra de produção é denominada derivação • aplicação sucessiva de regras de produção ∗ fecho transitivo da relação de derivação ∗ permite derivar palavras da linguagem Linguagens Formais e Autômatos .P. Blauth Menezes 27 .

Blauth Menezes 28 . S) gramática Derivação é um par da Relação de Derivação denotada por ⇒ • domínio em (V ∪ T)+ e codomínio em (V ∪ T)* • 〈α. P. T. então η⇒ρβσ Linguagens Formais e Autômatos .Def: Relação de Derivação G = (V. β〉 é representado de forma infixada α⇒β ⇒ é indutivamente definida como segue: • para toda produção da forma S → β (S é o símbolo inicial de G) S⇒β • para todo par η ⇒ ρ α σ da relação de derivação ∗ se α → β é regra de P.P.

◆ Portanto. Blauth Menezes 29 .P. derivação • substituição de uma subpalavra • de acordo com uma regra de produção ◆ Sucessivos passos de derivação • ⇒* fecho transitivo e reflexivo da relação ⇒ ∗ zero ou mais passos de derivações sucessivos • ⇒+ fecho transitivo da relação ⇒ ∗ um ou mais passos de derivações sucessivos • ⇒I ∗ exatos i passos de derivações sucessivos (i natural) Linguagens Formais e Autômatos .

P. P. Blauth Menezes 30 .◆ Gramática é um formalismo • aximático • de geração ∗ permite derivar ("gerar") todas as palavras da linguagem Def: Linguagem Gerada G = (V. T. S) gramática Linguagem Gerada por G: L(G) ou GERA(G) • palavras de símbolos terminais deriváveis a partir de S L(G) = { w ∈ T*  S ⇒+ w } Linguagens Formais e Autômatos .

D } • T = { 0. N → DN.Exp: Gramática. N) • V = { N.…. 2. D → 0  1  …  9 } Gera. 1. Linguagem Gerada: Números Naturais G = (V. Derivação. P. Blauth Menezes 31 . sintaticamente. 9 } • P = { N → D.P. o conjunto dos números naturais • se distinguem os zeros à esquerda • exemplo: 123 de 0123 Linguagens Formais e Autômatos . T.

P. T. 1. 9 } • P = { N → D. N → DN.P.Exp: …Gramática. N) • V = { N. Blauth Menezes 32 . Linguagem Gerada: Números Naturais G = (V. 2. Derivação. D } • T = { 0. D → 0  1  …  9 } Uma derivação do número 243 • • • • • • • N⇒ DN ⇒ 2N ⇒ 2DN ⇒ 24N ⇒ 24D ⇒ 243 N → DN D→2 N → DN D→4 N→D D→3 Linguagens Formais e Autômatos .….

então a concatenação com qualquer dígito também é natural Linguagens Formais e Autômatos .P.Portanto • S ⇒* 243 • S ⇒+ 243 • S ⇒6 243 Interpretação indutiva da gramática • Base de Indução: todo dígito é natural • Passo de Indução: se n é natural. Blauth Menezes 33 .

Ba → aB.P. b }. Y. Fa → aF. X → XaA  XbB  F Aa → aA. { a. F }.Exp: Gramática. Fb → bF. B. b }* } Linguagens Formais e Autômatos . Linguagem Gerada: Palavra Duplicada G = ({ S. S) na qual: • • • • • P = { S → XY. Blauth Menezes 34 . Derivação. FY → ε } gera a linguagem { ww  w é palavra de { a. BY → Yb. P. AY → Ya. Ab → bA. A. Bb → bB. X.

Blauth Menezes 35 .P.Derivação 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 X→F Fb → bF Fa → aF FY → ε Existe mais alguma derivação de baba? Linguagens Formais e Autômatos .

C.…. T para símbolos variáveis • a.P.… para palavras de símbolos variáveis ou terminais Linguagens Formais e Autômatos . w. S. s. β. v. Blauth Menezes 36 . B. b.Def: Gramáticas Equivalentes G1 e G2 são Gramáticas Equivalentes se e somente se GERA(G1) = GERA(G2) ◆ Convenções • A. t para símbolos terminais • u. z para palavras de símbolos terminais • α. y. c. x.….

Blauth Menezes .Linguagens Formais e Autômatos P. Blauth Menezes 1 2 3 4 5 6 7 8 9 Introdução e Conceitos Básicos Linguagens e Gramáticas Linguagens Regulares Propriedades das Linguagens Regulares Autômato Finito com Saída Linguagens Livres do Contexto Propriedades e Reconhecimento das Linguagens Livres do Contexto Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto Hierarquia de Classes e Linguagens e Conclusões 37 Linguagens Formais e Autômatos .P.

Sign up to vote on this title
UsefulNot useful