Você está na página 1de 34

Universidade Federal do Maranhão

Centro de Ciências Exatas e Tecnologias


Engenharia da Computação

Bruno Feres de Souza

Disciplina: Linguagens Formais e Autômatos


Código: EECP0020

5 de setembro de 2022

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 1 / 34


Conteúdo programático

Elementos de matemática discreta


Conceitos básicos de linguagens
Linguagens regulares e autômatos finitos
Linguagens livres de contexto e autômatos de pilha
Linguagens sensı́veis ao contexto e Máquinas de Turing com fita limitada
Linguagens recursivas e Máquinas de Turing com finta infinita
Linguagens recursivamente enumeráveis

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 2 / 34


Linguagens regulares e autômatos finitos

Sumário

Introdução
Sistema de estados finitos
Autômato finito determinı́stico
Autômato finito não-determinı́stico
Expressão regular
Gramática regular
Propriedades das linguagens regulares
Autômato finito com saı́da
Bibliografia

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 3 / 34


Linguagens regulares e autômatos finitos Introdução

Hierarquia de Chomsky

De acordo com a complexidade relativa das linguagens, Chomsky defi-


niu uma classificação que permite antecipar as propriedades fundamen-
tais das linguagens e vislumbrar os modelos de implementação mais
adequados. A Hierarquia de Chomsky é ilustrada abaixo:

Figura: Hierarquia de Chomsky

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 4 / 34


Linguagens regulares e autômatos finitos Introdução

Linguagens regulares ou do tipo 3

O estudo de linguagens regulares pode ser abordado a partir de três


formalismos básicos:
Operacional ou reconhecedor: representado por autômatos finitos.
Axiomático ou gerador: representado por gramáticas regulares.
Denotacional: representado por expressões regulares.

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 5 / 34


Linguagens regulares e autômatos finitos Gramáticas

Definição

Gramáticas: Também conhecidas como dispositivos generativos,


dispositivos de sı́ntese ou dispositivos de geração de cadeias, as
gramáticas constituem sistemas formais baseados em regras de subs-
tituição, através dos quais é possı́vel sintetizar, de forma exaustiva, o
conjunto das cadeias que compõem uma determinada linguagem.

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 6 / 34


Linguagens regulares e autômatos finitos Gramáticas

Definição
Por exemplo, em português, tem-se, dentre outras, a seguinte regra
de formação de senteças: “uma sentença pode consistir de uma frase
nominal seguida de um predicado”. Concisamente, tem-se:

⟨sentenca⟩ → ⟨frase nominal⟩ + ⟨predicado⟩

A definição acima pode ser mais precisa, fazendo-se:

⟨frase nominal⟩ → ⟨artigo⟩⟨substantivo⟩,

⟨predicado⟩ → ⟨verbo⟩
Ao associar palavras às classes sintáticas, podem-se formar sentenças.

⟨artigo⟩: a, o, um, uma


⟨substantivo⟩: menino, cachorro
⟨verbo⟩: anda, corre
Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 7 / 34
Linguagens regulares e autômatos finitos Gramáticas

Definição

Formalmente, uma gramática G pode ser definida como sendo uma


quádrupla:
G = (V , Σ, P, S)
onde:
V: é o vocabulário da gramática; corresponde a um conjunto finito e
não vazio de sı́mbolos;
Σ: é o conjunto finito e não vazio dos sı́mbolos terminais da
gramática. É o alfabeto.
P: é o conjunto finito e não vazio de produções ou regras de
substituição da gramática;
S: é a raiz da gramática, S ∈ V .
N = V − Σ: é o conjunto de sı́mbolos não terminais da gramática. São
as classes sintáticas.

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 8 / 34


Linguagens regulares e autômatos finitos Gramáticas

Definição

O conjunto P de produções gramaticais obedecem à forma geral:

α → β, com α ∈ V ∗ NV ∗ e β ∈ V ∗

Portanto, α é uma cadeia constituı́da de quaisquer combinações de


sı́mbolos de V , contendo pelo menos um sı́mbolo não-terminal, e β é
uma cadeia qualquer, eventualmente vazia, de elementos de V .
Sendo assim, o conjunto P pode ser expressao como uma relação:

P = {(α, β)|(α, β) ∈ V ∗ NV ∗ × V ∗ }

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 9 / 34


Linguagens regulares e autômatos finitos Gramáticas

Definição

Como exemplo de especificação de gramáticas, tem-se G1 = (V1 , Σ1 , P1 ,


S), com:
V1 = {0, 1, 2, 3, S, A}
Σ1 = {0, 1, 2, 3}
N1 = {S, A}
P1 = {S → 0S33, S → A, A → 12, A → ϵ}

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 10 / 34


Linguagens regulares e autômatos finitos Gramáticas

Definição

Forma sentencial: é qualquer cadeia obtida pela aplicação recorrente


das seguintes regras de sustituição:
1 A raiz S da gramática é por definição uma forma sentencial.
2 Seja αρβ uma forma sentencial, com α e β cadeias quaisquer de
terminais e/ou não-terminais, e seja ρ → γ uma produção da
gramática. Então, dessa regra àquela forma sentencial, substituindo a
ocorrência de ρ por γ, produz uma nova forma sentencial αγβ.
Esta forma de substituição é chamada de derivação direta e é deno-
tada por:
αρβ =⇒ αγβ
G

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 11 / 34


Linguagens regulares e autômatos finitos Gramáticas

Definição

Derivação: é a sequência de zero ou mais derivações diretas α =⇒



β... =⇒ µ. É denotada por α =⇒ µ.
Derivação não-trivial: é aquela em que ocorre a aplicação de pelo
+
menos uma produção. É denotada por α =⇒ µ.
Sentença: Se, pela aplicação de uma derivação não-trivial à raiz S
de uma gramática, for possı́vel obter uma cadeia w formada exclusi-
vamente de sı́mbolos terminais, diz-se que w , além de ser uma forma
sentencial, é também uma sentença, e denota-se a sua derivação por
+
S =⇒ w .

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 12 / 34


Linguagens regulares e autômatos finitos Gramáticas

Definição

Por exemplo, considere a gramática G1 , definida anteriormente. Então,


tem-se que:
S é uma forma sentecial.
0S33 é uma forma sentencial, pois S =⇒ 0S33.
S =⇒ 0S33 é uma derivação direta.
00S3333 e 00A3333 são formas sentenciais, pois 0S33 =⇒ 00S3333 =⇒
00A3333 através das produções S → 0S33 e S → A, aplicadas nesta
ordem.

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 13 / 34


Linguagens regulares e autômatos finitos Gramáticas

Definição

Por exemplo, considere a gramática G1 , definida anteriormente. Então,


tem-se que:
+ +
S =⇒ 00A3333 e S =⇒ 0S33 são exemplos de derivações não-triviais.
∗ ∗
00S3333 =⇒ 00S3333 e 0S33 =⇒ 00A3333 são exemplos de de-
rivações;
12 e 00123333 são exemplos de sentenças, pois ambas são formadas
exclusivamente por sı́mbolos terminais e S =⇒ A =⇒ 12, ou seja,
+
S =⇒ 12, e S =⇒ 0S33 =⇒ 00S3333 =⇒ 00A3333 =⇒
+
00123333, ou seja, S =⇒ 00123333.

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 14 / 34


Linguagens regulares e autômatos finitos Gramáticas

Definição

Linguagem definida pela gramática G: é o conjunto de todas as


sentenças w geradas por uma gramática G . Formalmente, a linguagem
L(G ) é definida como:
+
L(G ) = {w ∈ Σ∗ |S =⇒ w }

Por exemplo, considerando-se a gramática G1 definida a anteriormente,


pode-se concluir que:

L1 (G1 ) = {0m 1n 2n 32m |m ≥ 0 e (n = 0 ou n = 1)}

São exemplos de sentenças pertencentes a L1: ϵ, 12, 033, 01233, 003333,


00123333, etc.

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 15 / 34


Linguagens regulares e autômatos finitos Gramáticas

Definição

Por exemplo, considere a gramática G2 = (V2 , Σ2 , P2 , S), com:


V2 = {a, b, c, S, B, C }
Σ2 = {a, b, c}
P2 = {S → aSBC , S → abC , CB → BC , bB → bb, bC → bc, cC →
cc}
A linguagem definida por essa gramática é:

L2 (G2 ) = {an b n c n |n ≥ 1}

Pergunta-se: como a sentença aabbcc foi gerada utilizando G2 ?

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 16 / 34


Linguagens regulares e autômatos finitos Gramáticas

Definição

Por exemplo, considere a gramática G2 = (V2 , Σ2 , P2 , S), com:


V2 = {a, b, c, S, B, C }
Σ2 = {a, b, c}
P2 = {S → aSBC , S → abC , CB → BC , bB → bb, bC → bc, cC →
cc}
A linguagem definida por essa gramática é:

L2 (G2 ) = {an b n c n |n ≥ 1}

Pergunta-se: como a sentença aabbcc foi gerada utilizando G2 ?


S =⇒ aSBC =⇒ aabCBC =⇒ aabBCC =⇒ aabbCC =⇒ aabbbcC =⇒
aabbcc
pela aplicação das produções:
S → aSBC , S → abC , CB → BC , bB → bb, bC → bc e cC → cc

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 17 / 34


Linguagens regulares e autômatos finitos Gramáticas

Definição

Gramáticas equivalentes: quando uma mesma linguagem pode ser


definida por duas ou mais gramáticas, diz-se que as gramáticas são
sintaticamente equivalentes, ou simplesmente, equivalentes.
Por exemplo, as gramáticas G3 e G4 são equivalentes:
G3 = ({a, b, S}, {a, b}, {S → aS, S → a, S → bS, S → b, S →
aSb}, S)
G4 = ({a, b, S, X }, {a, b}, {S → XS, S → X , X → a, X → b}, S)
Pergunta-se: que linguagem G3 e G4 definem?

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 18 / 34


Linguagens regulares e autômatos finitos Gramáticas

Definição

Gramáticas equivalentes: quando uma mesma linguagem pode ser


definida por duas ou mais gramáticas, diz-se que as gramáticas são
sintaticamente equivalentes, ou simplesmente, equivalentes.
Por exemplo, as gramáticas G3 e G4 são equivalentes:
G3 = ({a, b, S}, {a, b}, {S → aS, S → a, S → bS, S → b, S →
aSb}, S)
G4 = ({a, b, S, X }, {a, b}, {S → XS, S → X , X → a, X → b}, S)
Pergunta-se: que linguagem G3 e G4 definem? L3 (G3 ) = L4 (G4 ) =
{a, b}+ .

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 19 / 34


Linguagens regulares e autômatos finitos Linguagens, gramáticas e conjuntos

Contextualização

A fim de prover um entendimento pleno de linguagens, é importante


desenvolver a percepção de que linguagens são conjuntos. Isso facili-
tará o estudo de novas operações sobre linguagens, e também de suas
propriedades.

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 20 / 34


Linguagens regulares e autômatos finitos Linguagens, gramáticas e conjuntos

Exemplos
Por exemplo, considere as seguintes gramáticas e as respectivas linguagens por elas
definidas:
G0 = ({a, b, S}, {a, b}, {S → aS, S → bS, S → ϵ}, S)
L0 (G0 ) = Σ∗
G1 = ({a, b, S}, {a, b}, {S → aS, S → bS, S → a, S → b}, S)
L1 (G1 ) = Σ+
G2 = ({a, b, S, X }, {a, b}, {S → aX , X → aX , X → bX , X → ϵ}, S)
L2 (G2 ): linguagens de todas as cadeias sobre Σ = {a, b} que começam com a.
G3 = ({a, b, S, X }, {a, b}, {S → aX , X → aX , X → bX , X → b}, S)
L3 (G3 ): linguagens de todas as cadeias sobre Σ = {a, b} que começam com a e
terminam com b.
G4 = ({a, b, S, X }, {a, b}, {S → XbXbX , X → aX , X → ϵ}, S)
L4 (G4 ): linguagens de todas as cadeias sobre Σ = {a, b} que possuem exatamente
dois b.
G5 = ({a, b, S, X }, {a, b}, {S → bX , X → aX , X → ϵ}, S)
L5 (G5 ): linguagens de todas as cadeias sobre Σ = {a, b} que possuem apenas um
b, no inı́cio da cadeia.

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 21 / 34


Linguagens regulares e autômatos finitos Linguagens, gramáticas e conjuntos

Visualização
Esquematicamente, a relação entre as linguagens L0 , L1 , L2 , L3 , L4 e
L5 pode ser observada abaixo:

Figura: Relação entre as linguagens L0 , L1 , L2 , L3 , L4 e L5


Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 22 / 34
Linguagens regulares e autômatos finitos Gramáticas regulares

Definição

Seja G = (V , T , P, S) uma gramática e sejam A e B elementos de


V e w uma palavra de T ∗ . Então, de acordo com o formato de suas
regras, G é uma:
1 Gramática Linear à Direita (GLD): A → wB ou A → w .
2 Gramática Linear à Esquerda (GLE): A → Bw ou A → w .
3 Gramática Linear Unitária à Direita (GLUD): como GLD e com |w | ≤ 1.
4 Gramática Linear Unitária à Esquerda (GLUE): como GLE, com |w | ≤ 1.

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 23 / 34


Linguagens regulares e autômatos finitos Gramáticas regulares

Definição

Exemplo 1: a linguagem a(ba)∗ é gerada pelas seguintes gramáticas


Regulares:
GLD: G = ({S, A}, {a, b}, P, S), com P igual a:

S → aA

A → baA|ϵ
GLE: G = ({S, A}, {a, b}, P, S), com P igual a:

S → Sba|a

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 24 / 34


Linguagens regulares e autômatos finitos Gramáticas regulares

Definição

Exemplo 1: a linguagem a(ba)∗ é gerada pelas seguintes gramáticas


Regulares:
GLUD: G = ({S, A}, {a, b}, P, S), com P igual a:

S → aA

A → bB|ϵ
B → aA
GLUE: G = ({S, A}, {a, b}, P, S), com P igual a:

S → Aa|a

A → Sb

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 25 / 34


Linguagens regulares e autômatos finitos Gramáticas regulares

Definição

Exemplo 2: a linguagem (a + b)∗ (aa + bb) é gerada pelas seguintes


gramáticas Regulares:
GLD: G = ({S, A}, {a, b}, P, S), com P igual a:

S → aS|bS|A

A → aa|bb
GLE: G = ({S, A}, {a, b}, P, S), com P igual a:

S → Aaa|Abb

A → Aa|Ab|ϵ

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 26 / 34


Linguagens regulares e autômatos finitos Gramáticas regulares

Definição

Teorema: As gramáticas GLD, GLE, GLUD e GLUE são equivalentes.

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 27 / 34


Linguagens regulares e autômatos finitos Gramáticas regulares

Definição

Definição: Qualquer Gramática Linear é dita Gramática Regular.

Se L é uma linguagem gerada por uma Gramática Regular, então L é


uma Linguagem Regular.
Se L é uma Linguagem Regular, então existe G , Gramática Regular que
gera L.

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 28 / 34


Linguagens regulares e autômatos finitos Gramáticas regulares

Definição

Gramática Regular → Linguagem Regular:

Suponha a GLUD G = (V, T, P, S) e o AFϵ M = (Σ, Q, δ, q0 , F).


Caso M seja construı́do pelo processo abaixo, então ACEITA(M) =
GERA(G):

Σ = T ; Q = V ∪ {qf }; F = {qf }; q0 = S

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 29 / 34


Linguagens regulares e autômatos finitos Gramáticas regulares

Definição
Gramática Regular → Linguagem Regular:

Por exemplo, considere a GLUD G = ({S, A, B}, {a, b}, P, S), com
P igual a:
S → aA
A → bB|ϵ
B → aA
O AFϵ que reconhece a linguagem gerada por G é:
M = ({a, b}, {S, A, B, qf }, δ, S, {qf })

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 30 / 34


Linguagens regulares e autômatos finitos Gramáticas regulares

Definição

Linguagem Regular → Gramática Regular:

Se L é uma Linguagem Regular, existe um AFD M = (Σ, Q, δ, q0 , F)


que a reconheça. Caso a GLD G = (V, T, P, S) seja construı́da pelo
processo abaixo, então GERA(G) = ACEITA(M):

V = Q ∪ {S}

T =Σ

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 31 / 34


Linguagens regulares e autômatos finitos Gramáticas regulares

Definição
Linguagem Regular → Gramática Regular:

Por exemplo, seja M = ({a, b, c}, {qo , q1 , q2 }, δ, q0 , {q0 , q1 , q2 }) o


AFD ilustrado abaixo:

A gramática correspondente é G = ({q0 , q1 , qs , S}, {a, b, c}, S, P),


com P definida abaixo:

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 32 / 34


Linguagens regulares e autômatos finitos Gramáticas regulares

Bibliografia

1 MENEZES, Paulo B. Linguagens formais e autômatos. 6ª ed. Porto


Alegre: Bookman, 2011.
Capı́tulos 3 e 4.
2 VIEIRA, José N. Introdução aos Fundamentos da Computação: Lin-
guagens e Máquinas. 1ª ed. Rio de Janeiro: Thompson, 2006.
Capı́tulo 2, disponı́vel em http://homepages.dcc.ufmg.br/
~nvieira/cursos/ftc/livro/copcap2.pdf.
3 PRADO, Simone das G. D. Apostila 02: Linguagens regulares. 1ª ed.
Bauru: UNESP, 2011.
Notas de aula disponı́veis em
http://wwwp.fc.unesp.br/~simonedp/zipados/TC02.pdf

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 33 / 34


Linguagens regulares e autômatos finitos Gramáticas regulares

Dúvidas?

Bruno Feres de Souza (UFMA-CCET-ECP) Linguagens Formais e Autômatos 5 de setembro de 2022 34 / 34

Você também pode gostar