Você está na página 1de 10

1

ANTONIO JONATAN LIMA SETUBAL EDILSON FERNANDO DA SILVA JORGE HENRIQUE MEDEIROS LUCIANA L. DA COSTA RAFAEL DA SILVA RODRIGUES

LINGUAGENS FORMAIS

Cuiab-MT 2011

Antonio Jonatan Lima Setubal Edilson Fernando da Silva Jorge Henrique Medeiros Luciana L. da Costa Rafael da Silva Rodrigues

Gramtica e Linguagens Livre de Contexto e Sensveis ao Contexto

Trabalho apresentado para avaliao da disciplina Linguagens Formais do curso de Cincia da Computao, sob a orientao do prof. Helder.

Cuiab-MT 2011

SUMRIO

1.0 - INTRODUO.......................................................................................................4 1.1 Objetivo.................................................................................................................4

2.0 LINGUAGENS FORMAIS ..................................................................................4

3.0 LINGUAGENS LIVRES DE CONTEXTO ........................................................5

4.0 LINGUAGENS SENSVEIS AO CONEXTO.....................................................6

5.0 GRAMTICAS LIVRES DE CONTEXTO........................................................7

6.0 CONCLUSO.........................................................................................................9 7.0 REFERNCIAS BIBLIOGRFICAS...............................................................10

1. INTRODUO O estudo da Teoria das Linguagens Formais e dos Autmatos (LFA) um estudo de modelos matemticos que possibilitam as especificaes e o reconhecimento de linguagens, suas classificaes, estruturas, propriedades, caractersticas e inter-relacionamentos. Dessa forma a Linguagem Livre de Contexto e Sensveis ao contexto so de grande importncia para o estudo e o entendimento desses assuntos, onde estas linguagens possibilitam uma estruturao mais simples e eficiente da linguagem de programao a ser criada ou utilizada posteriormente. 1.1 Objetivo O contedo deste trabalho busca apresentar um breve resumo explicativo sobre este contedo to importante para as Linguagens geradas pela rea de Cincia da Computao.

2. Linguagens Formais Entende-se por Linguagens Formais o estudo de modelos matemticos que possibilitam a especificao e o reconhecimento de linguagens (no sentido amplo da palavra), suas classificaes, estruturas, propriedades, caractersticas e inter-relacionamentos. A importncia dessa teoria na Cincia da Computao dupla: ela tanto apia outros aspectos tericos da Cincia da Computao (decidibilidade, computabilidade, complexidade computacional), como fundamenta diversas aplicaes computacionais tais como processamento de linguagens, reconhecimento de padres, modelagem de sistemas. Para definir o que Linguagens Formais necessrio definir o que linguagem. Inicialmente, de maneira bastante informal, podemos definir uma linguagem como sendo uma forma de comunicao. Elaborando um pouco mais esta definio, podemos definir uma linguagem como sendo "um conjunto de elementos (smbolos) e um conjunto de mtodos (regras) para combinar estes elementos, usado e entendido por uma determinada comunidade". So exemplos as "linguagens naturais" (os idiomas), "linguagens de programao" e os "protocolos de comunicao".

As Linguagens Formais foi desenvolvidas em meados da dcada de 1950 com o objetivo de desenvolver teorias relacionadas com as Linguagens Naturais. No entanto, logo foi verificado que esta teoria era importante para o estudo de linguagens artificiais em especial para as linguagens que se originavam na Cincia da Computao. Desde ento o estudo das Linguagens Formais desenvolveu-se significativamente e com diversos focos principalmente em aplicaes com anlise lxica e sinttica das linguagens de programao, desenhos de hardware e relacionamentos com as linguagens naturais. As linguagens formais preocupam-se com os problemas sintticos das linguagens.

3.0 Linguagens Livres de Contexto A classe das linguagens livre de contexto contm propriamente a classe das Linguagens Regulares. Seu estudo muito importante na informtica, pois: Compreendem um universo mais amplo de linguagens tratando de forma adequada as questes como parnteses balanceados, construes de blocos estruturados tpicas, por exemplo, da linguagem de programao como Pascal. Os algoritmos que implementam as Linguagens Livres de Contexto so muito mais simples e possuem uma melhor eficincia. O estudo das Linguagens Livre de Contexto desenvolvido a partir de uma gramtica e um autmato ou um reconhecedor, sendo: Gramtica Livre de Contexto so as regras de produo onde so definidas as formas mais livres que na gramtica regular de se escrever o cdigo. Autmato com Pilha o autmato cuja estrutura anloga do Autmato Finito adicionando uma memria auxiliar do tipo pilha a qual pode ser lida ou gravada. 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. Entre estas, pode-se citar a linguagem {anbnc n | n 1}, a qual, no entanto, pode ser representada atravs de uma gramtica sensvel ao contexto. Logo, trata-se de uma linguagem sensvel ao contexto, no-livre de contexto.

4.0 Linguagem Sensvel ao Contexto Define-se inicialmente linguagem sensvel ao contexto como sendo a linguagem que possa ser definida atravs de uma gramtica sensvel ao contexto. Essa definio estendida para qualquer linguagem L que contenha a cadeia vazia, desde que L{} possa ser gerada por uma gramtica sensvel ao contexto. Define-se linguagem estritamente sensvel ao contexto como sendo uma linguagem sensvel ao contexto, mas no livre de contexto. Exemplo: Seja a gramtica G1 = ({a,b,c,S,B,C},{a,b,c},P,S), com P = {SaSBC, SaBC, CBC, aBab, bBbb, bCbc, cCcc} Algumas derivaes possveis so: S=>aBC=>abC=>abc; S=>aSBC=>aaBCBC=>aaBBCC=>aabBCC=>aabbCC=>aabbcC =>aabbcc; S=>aSBC=>aaSBCBC=>aaaBCBCBC=>aaaBBCCBC=>aaaBBCBCC

=>aaaBBBCCC=>aaabBBCCC=>aaabbBCCC=>aaabbbCCC=>aaabbbcCC =>aaabbbccC=>aaabbbccc . fcil demonstrar que L(G1) = {anbnc n | n 1}. tambm possvel demonstrar, pela aplicao do Pumping Lemma para linguagens livres de contexto, que L(G1) no uma linguagem livre de contexto. Logo, no existe qualquer gramtica livre de contexto que seja capaz de gerar L(G1), e, portanto L uma linguagem estritamente sensvel ao contexto. Rigorosamente, uma linguagem dita sensvel ao contexto se e somente se: L e L = L(G), onde G uma gramtica sensvel ao contexto, ou L e L {} pode ser gerada por uma gramtica sensvel ao contexto. A formalizao da Linguagem Sensvel ao Contexto possvel, mas muito trabalhosa, pois produz especificaes longas, complexas e com baixa legibilidade. H tambm uma difcil utilizao prtica. Por isso, adota-se a representao livre de contexto na formalizao gramatical, deixando para processamento posterior a verificao das dependncias de contexto que a linguagem porventura exiba.

5.0 - Gramticas livres de contexto Uma gramtica serve para definir qual o subconjunto de sentenas que faz parte de uma determinada linguagem. Ela um dispositivo formal para especificar e estabelecer regras de uma linguagem potencialmente infinita de uma forma finita. Tradicionalmente, gramticas livres de contexto tm sido utilizadas para realizar a anlise sinttica de linguagens de programao. Nem sempre possvel representar neste tipo de gramtica as restries necessrias a algumas linguagens, por exemplo, exigir que todas as variveis estejam declaradas antes de seu uso ou verificar se os tipos envolvidos em uma expresso so compatveis. Entretanto, h mecanismos que podem

ser incorporados s aes durante a anlise como as interaes com tabelas de smbolos que permitem complementar a funcionalidade da anlise sinttica. A principal propriedade que distingue uma gramtica livre de contexto de uma gramtica regular a auto-incorporao. Uma gramtica livre de contexto que no contenha auto-incorporao pode ser convertida em uma gramtica regular. Autoincorporao definida como se segue:

Se uma gramtica G tiver um smbolo no-terminal A para o qual Onde: a1 e a2 so strings no vazias de smbolos terminais ou no-terminais, ento se diz que a gramtica tem a propriedade da autoincorporao.

Esse tipo de regra necessrio para expressar sentenas com parnteses, colchetes ou delimitadores de blocos balanceados.

6.0 CONCLUSO O estudo das Linguagens Livres de Contexto, Sensveis ao Contexto so extremamente importante para se obter cada vez mais um universo mais amplo de linguagens em relao com as Linguagens Regulares, pois tratam adequadamente as questes tpicas de linguagens de programao como os parnteses balanceados e as construes bloco-estruturado da linguagem de programao, estabelecendo assim uma nova forma de se desenvolver linguagens computacionais de forma mais simples e com uma melhor eficincia no desenvolvimento dessas linguagens.

10

7.0 REFERNCIAS BIBLIOGRFICAS Linguagens Formais e Autmatos - 3 Edio 2000 - Paulo Blauth Menezes editora Sagra Luzzatto Disponvel em: Linguagens Livres de Contexto - Universidade Catlica de Pelotas, Prof. Luiz A M Palazzo Maio de 2008. http://ia.ucpel.tche.br/~lpalazzo/Aulas/LFA/LFA-T04.pdf Acessado em 20/10/2011 Disponvel em: Autmatos e Linguagens Formais - S. C. Coutinho - Universidade Federal do Rio de Janeiro http://www.dcc.ufrj.br/~collier/e-books/LF.pdf documento acessado em 22/10/2011 Disponvel em: Linguagem formal - Wikipedia http://pt.wikipedia.org/wiki/Linguagem_formal acessado em 15/10/2011 Disponvel em: Gramticas E Linguagens Formais Slide Share http://www.slideshare.net/guest47ac6/gramticas-e-linguagens-formais acessado em 18/10/2011