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

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

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

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

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 . Blauth Menezes 7 .2.1 Alfabeto ◆ Símbolo ou Caractere • entidade abstrata básica.P.

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

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.P. Blauth Menezes .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 “>”. etc ∗ espaço ou “branco” ◆ Alfabeto binário { a. 9 Linguagens Formais e Autômatos . “/”.

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

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

Subpalavra abcb palavra sobre o alfabeto { a. abcb são todos os sufixos • qualquer prefixo ou sufixo é uma subpalavra Linguagens Formais e Autômatos . bcb. Sufixo. Sufixo.Def: Prefixo. ab. a. 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. b. c } • ε. Blauth Menezes 12 . Prefixo. cb. abc. b. abcb são todos os prefixos • ε.P.

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

para n > 0 Linguagens Formais e Autômatos .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. b } um alfabeto. Blauth Menezes 15 .Exp: Concatenação de Palavras Σ = { a.

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

P.{ ε } Def: Conjunto de Todas as Palavras Σ alfabeto. • 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 Σ*. Σ* é indutivamente definido Base de Indução • ε ∈ Σ* • para qualquer x ∈ Σ. Blauth Menezes 17 .◆ Se Σ é um alfabeto • Σ* conjunto de todas as palavras possíveis sobre Σ • Σ+ = Σ* .

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

Def: Comprimento.P. Comprimento abcb = 4 ε = 0 Linguagens Formais e Autômatos . Blauth Menezes 19 . Sufixo. Prefixo. Tamanho de uma Palavra De uma palavra w. 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.

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

P. aaaa. a. bab. bbb. aba. bb.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. aa. aaa. Blauth Menezes 21 .… Linguagens Formais e Autômatos . b. b } ε.2.

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

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

P.2.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 .

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. Blauth Menezes 25 . basicamente • conjunto finito de regras • quando aplicadas sucessivamente.P.

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

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

P.Def: Relação de Derivação G = (V. 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)* • 〈α. Blauth Menezes 28 . P. T. então η⇒ρβσ Linguagens Formais e Autômatos . β〉 é 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 . 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 .

◆ Gramática é um formalismo • aximático • de geração ∗ permite derivar ("gerar") todas as palavras da linguagem Def: Linguagem Gerada G = (V. 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 .P. P. T. Blauth Menezes 30 .

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

P. 1. N → DN. Blauth Menezes 32 . T. Linguagem Gerada: Números Naturais G = (V. Derivação.Exp: …Gramática. 9 } • P = { N → D. D } • T = { 0. P. 2. N) • V = { N. 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 .….

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. então a concatenação com qualquer dígito também é natural Linguagens Formais e Autômatos . Blauth Menezes 33 .

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

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

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

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

Sign up to vote on this title
UsefulNot useful