Vous êtes sur la page 1sur 9

Centro Universitrio Luterano de Palmas

Linguagens Formais

Gabriel Vaz Aires


Lucas Henrique Roese

Palmas 2015

Linguagens Formais
Segundo MENEZES (1997), os estudos sobre linguagens formais iniciaram-se na dcada
de 50 com o objetivo de definir matematicamente as estruturas das linguagens naturais. No
entanto, verificou-se que a teoria desenvolvida aplicava-se ao estudo das linguagens de
programao.
A teoria das linguagens formais o estudo matemtico que possibilita o reconhecimento
de linguagens, consequentemente suas classificaes, estrutura, caractersticas, propriedades e
inter-relacionamentos.
importante estudar Linguagens Formais, pois atravs dela podemos apoiar aspectos
tericos da Cincia da Computao e fundamentar outras diversas aplicaes computacionais.
A linguagem formal te ajuda a expressar formalmente uma linguagem computacional, por
possuir um enfoque terico em problemas da sintaxe, o ajuda a declarar como pode estar bem
formalizada a linguagem.
A sintaxe um conjunto de regras que define a forma de uma linguagem, estabelecendo a
forma de como feita as suas linguagens e suas estruturas bsicas, que so as palavras. Ao
identificar que possui algum erro entre operadores, chaves, etc. Denomina-se erro de sintaxe.
Figura 1: Diagramas Sintticos da Sintaxe

Fonte: Material Puc-Rio

A Semntica complementar a sintaxe. Ela corresponde descrio do significado das


instrues vlidas de uma linguagem. Por exemplo, a sintaxe da instruo if da linguagem C++
: if () {} e sua semntica : se o valor da expresso for verdadeiro, as instrues incorporadas
1

Disponvel em: http://www.inf.puc-rio.br/~inf1621/sintaxe.pdf Acessado em fev. 2015

sero executadas pelo programa. atravs da semntica que conseguimos utilizar melhor e
validar uma linguagem. (PEREIRA; CAMILA; SANTIAGO, 2009).
Em linguagens formais temos um conceito de hierarquia, e a mais estudada a
Hierarquia de Chomsky, que consiste nas classes bsicas de linguagens e suas incluses. As
classes bsicas so as seguintes: Linguagens Regulares, Livres de Contexto, Sensveis ao
Contexto e Enumerveis Recursivamente. Elas sero tratadas a seguir. Noam Chomsky definiu
essas classes como potenciais modelos para linguagens naturais.
Figura 2: Relao dos tipos de linguagem

Fonte: Departamento de informtica UFRGS

A hierarquia se deve ao fato de que cada linguagem possui uma relevncia de regras restries,
deste modo as linguagens regulares possuem mais restries perante as outras, e as linguagens livres do
contexto possuem mais restries do que as linguagens sensveis ao contexto, e assim por diante. Devido
a esse fato toda LR uma LLC, toda LLC um LSC, e toda LSC uma LRE.

Tabela 1: Linguagem, gramtica e reconhecedor.

Disponivel em: http://homepages.dcc.ufmg.br/~rainerpc/cursos/itc/aulas/aula9.pdf. Acessado em: Fev


2015

Fonte: (PRADO, 2015)

A tabela acima representa as caractersticas de cada linguagem.


As Linguagens Regulares e as noes de Autmato Finito e Expresso Regular so
originrias de estudos biolgicos de redes de neurnios e circuitos de
chaveamento(MENEZES, 2008). Citado por Manoel Ferraz.
As Linguagens Regulares, ou LR uma linguagem mais simples, que possvel desenvolver
algoritmos de reconhecimento e de gerao, possui uma grande eficincia e fcil implementao.
Uma linguagem regular se ela pode ser escrita, uma gramtica regular.
Tabela 2: Exemplo de Expresses Regulares

Fonte: (PRADO, 2008)

A imagem a cima representa como realmente pode ser representada uma expresso regular, para
que possa ser interpretada.
Uma gramtica G regular se todas suas formas podem se colocadas de certa forma:
A a
A aB
A
Do lado esquerdo da regra h somente um no terminal ( No-terminal representado por apenas
uma letra maiscula do alfabeto portugus). Do lado direito h um terminal (representado por apenas uma
letra minscula ou dgito), sozinho, acompanhando ou no de somente um no terminal, ou h somente a
palavra vazia ().

Disponivel em: http://wwwp.fc.unesp.br/~simonedp/zipados/TC01.pdf. Acessado em: Fev 2015

A LLC, ou linguagens livres de contexto, uma linguagem gerada atravs de uma


gramtica livre de contexto a GLC. Diferentes gramticas livres de contextos podem gerar
diversas ou a mesma linguagem livre de contexto.
Ao se tratar de uma LLC, logo todas essas linguagens so denominadas idnticas ao
conjunto de linguagens aceitas por um autmato de pilhas que se obtm uma caracterstica
operacional, fazendo com que essas linguagens sejam passveis de anlise.
Segundo Rangel (2009) Citado por Manoel Ferraz, Os aceitadores, ou reconhecedores,
das linguagens livres de contexto so os chamados autmatos de pilha ou APs. Numa pilha,
smbolos novos s podem ser acrescentados no topo da pilha; apenas o ltimo smbolo
armazenado, o smbolo que se encontra no topo da pilha pode ser consultado; esse smbolo deve
ser retirado para que os demais possam ser alcanados.
uma linguagem importante para definir uma linguagem de programao, logo so
geradas gramaticalmente, exemplo: As linguagens que requerem um balanceamento determinado
. Assim, tambm a maioria das expresses aritmticas geradas por gramticas livres de
contexto.
Figura 3: Exemplo Gramtica Livre de Contexto

Fonte: Repositrio linguagens formais Unesp

Seguindo a Hierarquia de Chomsky, logo em seguida LLC vem as Linguagens


Sensveis ao Contexto (LSC) ou Tipo um e as Linguagens Recursivamente Enumerveis (LRE)
ou Tipo 0. Desta vez, vamos mudar a sequncia e comear pela LRE. Mas antes de falar
especificamente das LRE temos que fazer uma breve introduo sobre a Mquina de Turing.
No ano de 1936, Alan Turing apresentou um modelo chamado por Mquina de Turing,
nos dias de hoje ela aceita como uma formalizao de um algoritmo ou funo computvel, ou
seja, sequncia finita de instrues que podem ser realizadas mecanicamente em um tempo
finito. No mesmo ano, Alonzo Church apresentou a Hiptese de Church, que afirma que
qualquer funo que seja computvel pode ser processada por uma Mquina de Turing.
A Mquina de Turing consiste basicamente em trs partes, a) Fita. Usada como
dispositivo de entrada, sada e memria ao mesmo tempo. b) Unidade de Controle. Reflete o
estado da mquina. Possui uma unidade de leitura/gravao que acessa uma clula da fita de cada

Disponivel em: http://wwwp.fc.unesp.br/~simonedp/zipados/TC03.pdf. Acesso em fev 2015

vez. c) Programa. Funo que comanda as leituras e gravaes, o sentido de movimento e o


estado da mquina.
As Linguagens Recursivamente Enumerveis (LRE) ou Tipo 0 esto diretamente ligadas
a Mquina de Turing, pois a definio dessas linguagens diz que, para serem Linguagens
Recursivamente Enumerveis, elas devem ser processadas pela mquina. Assim qualquer
linguagem que aceita por uma Mquina de Turing uma LRE.
O termo Enumerveis se deve ao fato de que as palavras de qualquer LRE podem ser
enumeradas, ou listadas, por uma Mquina de Turing. J o termo Recursivamente est ligado a
um termo da matemtica anterior ao computador, tem significado prximo Recurso na
informtica.
A LRE inclui algumas linguagens que no so possveis determinar mecanicamente se
uma palavra no pertence linguagem, assim, temos uma subclasse chamada Linguagens
Recursivas, para as quais existe pelo menos uma Mquina de Turing que para qualquer entrada,
aceitando ou rejeitando.
A LRE usa o conceito de Gramtica Irrestrita, que simplesmente uma gramtica, sem
nenhuma restrio nas produes. O termo irrestrito serve somente para destacar o fato. Para
que G =(V,T, S,P) seja uma Gramtica Irrestrita deve seguir a seguinte forma: u v, onde u(V
T)+ e v(VT)*
Figura 4: Exemplo Gramtico Irrestrito

Fonte: Repositrio linguagens formais Unesp

Agora que j temos uma pequena noo do que a Mquina de Turing e Linguagens
Recursivas, podemos falar tambm sobre as Linguagens Sensveis ao Contexto (LSC).
As LSC so aquelas que podem ser aceitas por uma Mquina de Turing com Fita
Limitada (MTFL), que basicamente uma Mquina de Turing com a fita limitada ao tamanho da
entrada mais duas clulas contendo os identificadores de inicio e fim. MTFL um Autmato
Limitado Linearmente.
A classe das LSC est contida propriamente na classe das Linguagens Recursivas.

Disponvel em: http://wwwp.fc.unesp.br/~simonedp/zipados/TC05.pdf. Acesso em fev 2015

Na LSC, assim como nas demais linguagens, temos uma gramtica que gera a linguagem,
neste caso temos a Gramtica Sensvel ao Contexto (GSC), sendo que, G= (V, T, P, S), desde
|.

Relao entre Linguagens livres de contexto e


linguagens regulares
As linguagens regulares constituem um subconjunto prprio das linguagens livres de contexto.
possvel demonstrar que toda linguagem regular tambm uma linguagem livre de contexto e, entretanto,
que existem linguagens livres de contexto que no so regulares, como dito anteriormente. Exemplo:
Teorema: Regulares livres de contexto
Logo toda linguagem regular livre de contexto. Seja K uma linguagem formal qualquer, logo existe uma
gramtica linear G que define K. As regras de G possuem todas, sem exceo, apenas um smbolo no
}), (linear ao lado direito). Como as gramticas livres de contexto tambm exigem um nico smbolo no
}), (linear ao lado esquerdo) V NV , isso implica que toda gramtica linear direita tambm uma
gramtica livre de contexto. Logo, toda linguagem regular tambm uma linguagem livre de contexto.
livres de contexto
Uma linguagem dita estritamente livre de contexto se ela for livre de contexto, porm no regular. A
caracterstica desse tipo de linguagens que elas so geradas apenas por gramticas que possuam pelo
menos um smbolo no terminal que seja auto recursivo central e essencial.

Relao entre Linguagens Sensveis ao Contexto e


Linguagens Livres de Contexto
Livres de contexto sensveis ao contexto
Toda linguagem livre de contexto L tambm uma linguagem sensvel ao contexto.
Se L livre de contexto, ento existe pelo menos uma gramtica livre de contexto G que gera L. Toda
gramtica livre de contexto pode ser colocada na Forma Normal de Chomsky.
sensveis ao contexto
A classe das linguagens livres de contexto constitui subconjunto prprio da classe das linguagens
sensveis ao contexto.
Atravs da aplicao do Pumping Lemma para linguagens livres de contexto possvel provar que
diversas linguagens no so livres de contexto. A linguagem {an bn cn | n 1} um exemplo, pois ela

pode ser representada atravs de uma gramtica sensvel ao contexto. Logo, trata-se de uma linguagem
sensvel ao contexto, no livre de contexto, e sua simples existncia demonstra o teorema.
Teorema 3.15 (Pumping Lemma para linguagens regulares)
Seja L um conjunto regular infinito. Ento existe uma constante n, dependente apenas de L, tal que, para
quaisquer sentenas w L, com |w| n, w pode ser subdividida em trs subcadeias x, y e z, de tal forma
que w = xyz , 1 |y|, |xy| n, ou seja, 1 |y| n, e, alm disso, xyi z L, i 0.

Relao entre Linguagens Recursivas e Linguagens


Sensveis ao Contexto
Inicialmente, demonstrado que toda linguagem sensvel ao contexto tambm uma linguagem
recursiva. Em seguida, mostra-se que a classe das linguagens sensveis ao contexto constitui um
subconjunto prprio da classe das linguagens recursivas.

Sensveis ao contexto recursivas


Toda linguagem sensvel ao contexto tambm recursiva.
Seja L uma linguagem sensvel ao contexto. Ento, existe uma Mquina de Turing com fita limitada M1
que aceita L: L = L(M1), M1 = (Q1, , 1, 1, <, >, q0, F1) . Constri-se ento uma Mquina de Turing
M2, sem limitao de tamanho para a fita de entrada, que simula M1: M2 = (Q2, , 2, 2, <, B, q0, F2).
Logo, M1 e M2 aceitam a mesma linguagem e, portanto L, alm de ser uma linguagem sensvel ao
contexto, tambm uma linguagem recursiva.
recursivo
A classe das linguagens sensveis ao contexto constitui subconjunto prprio da classe das linguagens
recursivas.
Basta demonstrar que existe pelo menos uma linguagem recursiva que no sensvel ao contexto. Como
instncia desse fato, podem-se citar todas as linguagens que incluem a cadeia vazia, uma vez que,
conforme foi discutido anteriormente na Seo 5.1, as linguagens sensveis ao contexto no incluem tais
cadeias.

Relao entre Linguagens Recursivamente


Enumerveis e Linguagens Recursivas
Existe um incluso prpria entre as duas linguagens. Toda linguagem recursiva tambm uma linguagem
recursivamente enumervel. Logo:

Teorema: Recursivas recursivamente enumerveis


As classes de linguagens recursivas e recursivamente enumerveis foram definidas como linguagens que
so aceitas por pelo menos uma Mquina de Turing. As linguagens recursivas, em particular, alm de
serem aceitas, so tambm decididas por pelo menos uma Mquina de Turing, o que no se aplica
geralmente para linguagens recursivamente enumerveis. Linguagens aceitas por uma Mquina de Turing
podem no ser decidveis por nenhuma Mquina de Turing. O critrio de deciso mais forte do que o de
aceitao. Logo, toda linguagem recursiva tambm recursivamente enumervel.

Referncias
PEREIRA, Crston. Linguagens de programao: Sintaxe e Semntica. 2009. Univasf. Disponvel em:
<http://www.univasf.edu.br/~criston.souza/algoritmos/arquivos/aula02.3.pdf>. Acesso em: 18 fev. 2015.
PEREIRA, Mirin; CAMILA, Priscilla; SANTIAGO, Suzy. Sintaxe e Semntica de Linguagens de Programao.
2009. Disponvel em: <http://sibetim.blogspot.com.br/2009/03/sintaxe-e-semantica-de-linguagens-de.html>. Acesso
em: 18 fev. 2015.
SILVA FILHO, Manoel Ferraz. Uma anlise sobre a importncia da disciplina linguagens formais e autmatos
na opinio dos alunos de licenciatura em computao da UEFB, Campus VII - Patos. 2012. Disponvel em:
<http://dspace.bc.uepb.edu.br:8080/jspui/bitstream/123456789/3706/1/PDF%20%20Manoel%20Ferraz%20da%20Silva%20Filho.pdf>. Acesso em: 19 fev. 2015.
PRADO, Simone Domingos. Teoria da computao e Linguagens formais,
em:<http://wwwp.fc.unesp.br/~simonedp/zipados/TC03.pdf>. Acesso em: 18/02/2015.

2008.

Disponvel

Vous aimerez peut-être aussi