Escolar Documentos
Profissional Documentos
Cultura Documentos
1 Introdução / Histórico
dores, na década de 1930, Alan Turing estudou uma máquina abstrata que tinha todas as
capacidades dos computadores de hoje, pelo menos no que diz respeito ao que eles podem
ou não computar. Suas conclusões se aplicam não somente a essas máquinas abstratas,
Entre as décadas de 1940 e 1950, tipos mais simples de máquinas - hoje chama-
dos de autômatos nitos - foram estudadas por um grande número de pesquisadores. Nos
anos 50, o linguista Noam Chomsky começou a estudar as gramáticas formais. Embora
estas não sejam modelos de máquinas, elas têm uma relação próxima com os autômatos.
podiam ou não fazer. Ele separou os problemas que podem ser resolvidos ecientemente
por um computador daqueles que, na prática, podem levar muito tempo para serem
cientistas da computação hoje. Alguns conceitos como autômatos nitos e certos tipos de
Outros conceitos, como a Máquina de Turing, ajudam-nos a compreender o que pode ser
1
Segundo Menezes (2012), a Teoria das Linguagens Formais se desenvolveu na
Ainda segundo Menezes (2012), uma linguagem de programação pode ser vista
de duas formas:
mais simples que os semânticos. É bem mais simples vericar se um texto (no contexto
1.2 Abordagens
danças de estado nesta. A máquina recebe como entrada uma palavra e deve dizer
se a aceita ou se a rejeita.
2
Axiomático/Gerador : associam-se regras (axiomas) às componentes da linguagem.
As regras permitem armar o que será verdadeiro após a ocorrência de cada cláusula,
gerador, uma vez que é possível inferir (gerar) as palavras da linguagem denotada.
2 Linguagens Formais
2.1 Alfabetos
(palavras). Usualmente, são representados pela letra grega Σ (sigma). A seguir, temos
Σ1 = {a, b}
Σ2 = {0, 1}
Σ3 = {◦, •, #}
Σ4 = {ab, ba}
Segundo Ding-Zhu e Ker-I (2004), um alfabeto pode ser denido por um con-
símbolos do mesmo alfabeto. Por exemplo, o conjunto {00, 01, 10} é um alfabeto; já o
conjunto {00, 0, 1} não é um alfabeto, pois o símbolo 00 pode ser obtido a partir da con-
catenação de dois símbolos 0. Isso permite, por exemplo, gerar uma mesma cadeia com
duas sequências distintas de símbolos. Observe que as sequências h0, 0i e h00i produzem
a cadeia 00.
Dizemos então que um conjunto de símbolos é um alfabeto se quaisquer duas
3
2.2 Palavras
básica na Teoria dos Autômatos e Linguagens Formais. A palavra pode não conter ne-
nhum símbolo do alfabeto. Nesse caso, é a palavra vazia, representada pela letra grega ε
(épsilon). Em geral, usamos a letra w para denotar palavras. Vejamos alguns exemplos:
2.2.1 Tamanho
tamanho é 2; mas se considerarmos que ela está denida sobre o alfabeto Σ1 , o seu
2.2.2 Concatenação
da seguinte maneira:
4
indef inida, se w = ε e n = 0
ε, se w = ε e n > 0
n
w = ε, se w 6= ε e n = 0
w . . w}, se w 6= ε e n > 0
| .{z
n vezes
2.2.3 Reverso
lavra própria de w se, e somente se, 0 < |w0 | < |w| (em outras palavras, w0 6= ε e w0 6= w).
De forma análoga, denem-se prexo próprio e suxo próprio.
5
2.3 Linguagens
L3 = 0n 1n , n ∈ N
L 4 = an b n c n , n ∈ N
L5 = an bn an bn , n ∈ N
O conjunto vazio e o conjunto que possui apenas a palavra vazia são exemplos
Assim, L1 L2 = {a, ab, aba, abb, abba, ba, bab, baba, abab, ababa}.
LL∅ = L∅ L = ∅
LLε = Lε L = L
L0 = Lε
Li+1 = Li L,
[
para todo i∈ N
L∗ = Li
i∈ N[
L =
+
Li = LL∗
N
i∈ −{0}
6
Uma outra operação comum em linguagens é o complemento. Seja L uma
∗
linguagem sobre um alfabeto Σ (L ⊆ Σ ). O complemento de L, representado por L0 ou
L, é o conjunto resultante de Σ∗ − L.
Na verdade, as operações que podem ser realizadas com conjuntos também
se aplicam a linguagens, pois estas são também conjuntos. Como será visto no decorrer
do nosso curso, é comum ver uma linguagem como uma combinação (união, intersecção,
com base na hierarquia proposta por Noam Chomsky para gramáticas. As linguagens
mais externo para o mais interno, de forma que as linguagens enumeráveis recursivamente
também são tratadas como tipo 0, e as linguagens regulares são chamadas de tipo 3.
Linguagens Regulares
O Quadro 1 a seguir traz a relação entre cada tipo de linguagem com as ferra-
mentas utilizadas para estudar cada uma delas, nos formalismos reconhecedor e gerador.
Sensíveis ao Contexto Máq. de Turing com ta limitada Gram. Sensíveis ao Contexto
7
2.4 Gramáticas
O que muda de um tipo de gramática para outro é a forma como são denidas
as regras de produção. Nas gramáticas regulares e nas livres de contexto, o lado esquerdo
das produções consiste em apenas uma variável (α ∈ V ). No caso das regulares, há ainda
algumas restrições em relação ao lado direito. Nas gramáticas sensíveis ao contexto e nas
irrestritas, o lado esquerdo pode conter mais de um símbolo, incluindo terminais. Cada
mática. A geração de uma palavra por uma gramática se dá pela aplicação de sucessivas
derivações, a partir do símbolo inicial. Para representar que uma cadeia α deriva uma
+ ∗
outra cadeia β (α ∈ (V ∪ T ) e β ∈ (V ∪ T ) ), usa-se a relação ⇒ (α ⇒ β ).
Dada uma gramática G = (V, T, P, S), a derivação é denida como segue:
Se S → β, então S ⇒ β;
Se β ⇒ βu βv βw e βv → βt , então β ⇒ βu βt βw .
em geral. No decorrer do curso, sempre que oportuno, serão introduzidos novos conceitos,
8
3 Exercícios
a) ( ) Σ1 = {0, 1, 2, . . .}
b) ( ) Σ2 = {0, 1, . . . , 9}
c) ( ) Σ3 = {00, 01, 10, 11}
d) ( ) Σ4 = {0, 1, 10, 11}
2. Seja w = 011001 uma palavra sobre Σ = {0, 1}. Nos itens a seguir, considere wi ∈ Σ∗ ,
para 1 ≤ i ≤ 3, e os demais símbolos elementos de Σ. Apresente quantas e quais são
3. Seja Σ = {a, b} um alfabeto. Dê exemplos de cadeias que estão e não estão em cada
a) L1 = {w | ∃u ∈ Σ2 e w = uuR u}
b) L2 = {w ∈ Σ∗ | w2 = w5 }
c) L3 = {w | ∃u, v ∈ Σ+ e w = uv = vu}
d) L4 = {w ∈ Σ+ | w = wR }
9
Referências
10