A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Linguagens Formais Jorge Muniz Barreto UFSC-INE 2000.

Apresentações semelhantes


Apresentação em tema: "Linguagens Formais Jorge Muniz Barreto UFSC-INE 2000."— Transcrição da apresentação:

1

2 Linguagens Formais Jorge Muniz Barreto UFSC-INE 2000

3 Por que estudar Linguagens Formais? A resposta mais usual a esta pergunta é que o estudo das linguagens formais, sob a forma de gramáticas gerativas é a base da teoria da interpretação e compilação. Juntamente com a Teoria de Automata, como reconhecedores das palavras válidas definidas nestas linguagens tem-se um arcabouço teórico perfeito para a compreensão e estudo de compiladores.

4 Aplicações de Linguagens Formais E será que estas gramáticas só serviriam para isto? Claro que não, e serão apresentados exemplos distintos do uso de linguagens formais. Exemplos: Estudo de linguagens naturais, modelos de crescimento em biologia, modelos de evolução biológica, etc.

5 Linguística Um sistema formal de grande interesse em teoria da Computação é o das Gramáticas Gerativas. Estas Gramáticas apareceram inicialmente no estudo de Linguística para ajudar a melhor compreender as linguagens naturais. Chama-se Linguagem Natural aquela que é usada para comunicação entre seres vivos, em particular, seres humanos.

6 Uso em Linguagem Natural Os linguistas se preocupam não somente em definir precisamente o que é uma sentença correta mas também dar uma descrição da estrutura desta sentença. Inicialmente, os estudos se concentraram na Língua Inglesa a qual é atualmente talvez a mais bem estudada e conhecida.

7 IA e Linguagem formal Para o pesquisador de Ciência da Computação, essas gramáticas gerativas tendo forma semelhante a um sistema formal, fazem crer que, quando se conseguir ter conhecimento completo da gramática formal de uma língua falada, tal como o português, um grande passo teria sido dado para o computador entender português.

8 Modelos Formais (1/2) As gramáticas gerativas foram criadas por Noam Chomsky. Existem ainda, para o estudo das linguagens naturais outras abordagens: Teoria da estratificação de Sydney Lamb que considera a linguagem constituida de mais de dois níveis (categorias gramaticais e vocabulário), (palavras não-terminais e terminais) e sim uma série de níveis ou estratos.

9 Modelos Formais (2/2) A Teoria Tagmênica de Kenneth Pike para quem a linguagem é uma variedade de comportamento humano, como comer, jogar tenis ou nadar. A principal colaboração desta teoria é a distinção entre diferenças êmicas e éticas. As éticas podem ser ignoradas pelo indivíduo que ouve ou produz o som como o l'' final de Brasil' freqüentemente pronunciado u'', ou o ``th'' de ``tia'' do carioca. As êmicas tem valor semântico como carro'' e caro'' que para um francofone são sons idênticos. As gramáticas sistêmicas de Halliday.

10 Alfabetos Um alfabeto é um conjunto finito de símbolos. Algumas vêzes se fala de vocabulário, em lugar de alfabeto. Neste caso os símbolos são palavras. Par o objetivo seguido aqui, esta diferença é irrelevante pois uma palavra pode ser considerada representada por um símbolo, como na escrita hieroglífica.

11 Exemplos de Alfabetos {a,e,i,o,u} é o alfabeto constituido pelas vogais de nosso alfabeto. {I,V,X, L,C, M} é o alfabeto formado pelos símbolos usados na numeração romana. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} é o alfabeto formado pelos símbolos usados na numeração arábica.

12 Definição de Linguagem Ao conjunto de todos as seqüências de elementos do alfabeto que se podem formar denota-se por A*. Uma linguagem L sobre um alfabeto A, também escrita L A é todo subconjunto de A*.

13 Exemplo de Linguagem dos Números Romanos Seja o alfabeto R = {I,V,X,L,C,M} do exemplo 2. R* é um conjunto de cardinalidade 0. Abaixo mostram-se alguns elementos: R* = {I,II,III,IIII,V,VV,VVV,VVVV,VXL,XL,...} que em termos dos símbolos usados no alfabeto 3 significam: 1,2,3,?,5,?,?,?,?,40,... As sequencias às quais não corresponde valor, expresso pelo correspondente número arábico, não são números romanos, isto é, não pertencem à linguagem dos números romanos.

14 Modos de Definir uma Linguagem (1/3) Essencialmente existem três modos de definir uma linguagem: Por enumeração de seus elementos, Por um modo construtivo chamado gramática gerativa, ou Por propriedades.

15 Modos de definir uma Linguagem (2/3) Definir uma linguagem por enumeração de seus elementos só é possível no caso de linguagem com número finito de palavras. A definição por propriedades é uma definição declarativa, em que certas formas especiais são ditas pertencer à linguagem.

16 Modos de definir uma Linguagem (2/3) As gramáticas gerativas consistem em um algoritmo para gerar as palavras da linguagem. Neste caso faz-se uma partição no alfabeto, terminais e não terminais, da-se regras de reescrita, e um elemento não terminal para início da geração das palavras da linguagem.

17 Gramática gerativa Uma gramática é a quadrupla: onde: N: conjunto de símbolos ditos não terminais; T: conjunto de símbolos terminais; P: conjunto de regras de reescrita ou de produção; n 0 : raiz ou fonte da linguagem n 0 N.

18 Representacões de regras Representação funcional: A ABa Representação como em um sistema formal A ABa

19 Relação com Sistemas Formais A definição de uma linguagem por gramáticas gerativas tem grande relação com o estudo dos Sistemas Formais, podendo mesmo ser considerado como exemplo destes sistemas. Na realidade, a um dado sistema formal correspondem tantas linguagens geradas por gramáticas gerativas quantos são os elementos do vocabulário.

20 Como ter várias Gramáticas Gerativas de um Sistema Formal? Note que no sistema formal temse um vocabulário. Não foi ainda especificado o que é o elemento inicial gerador (algumas vêzes se faz isto nas regras), nem os terminais nem os não terminais. Escolhas diferentes produzem linguagens distintas.

21 Exemplo de Gramática Gerativa N={F,S,C,V,O} T={Jó,Sô,casa,…} P={ F SC F SV C VO... } N 0 = F Se supõe o alfabeto não terminal significando categorias gramaticais, tem-se: F: Frase S: Sujeito C: complemento, etc… E tem-se uma representção do português.

22 Hierarquia de Chomsky A Hierarquia de Chomsky classifica as linguagens segundo o grau de complexidade das suas regras de reescrita. Assim as linguagens são classificadas como de tipo 0, 1, 2 e 3. As tipo 0 não tem restrições, as outras que são cada uma mais restrita que a outra são: sensíveis ao contexto, livres de contexto e regulares.

23 Linguagem Tipo 0 Em uma linguagem tipo zero não há restrições quanto às regras de reescrita, ou de produção. São as mais difíceis de se tratar. Observação: serão usadas letras maiúsculas para não terminais e minúsculas para terminais.

24 Linguagem Tipo 1 As Linguagens Tipo 1 são também chamadas sensíveis ao contexto. Nelas se exige apenas que em cada regra de produção, o comprimento da palavra original seja igual ou menor que o da palavra derivada. Assim: Aab Ac não é válida; Mas: Ac Aab o é.

25 Linguagem Tipo 1:Exemplo Seja a linguagem: (N,T,P,S) N={S,B,C}, T={a,b,c}, P{S aSBC, S aBC, CB BC, aB ab, bB bb bC bc, cC cc} Usando P1 n-1 vezes: S a n-1 S(BC) n-1 Usando P2: a n (BC) n P3 permite : a n B n C n P4: a n b B n-1 C n P5: a n b n C n P6 1 vêz e P7 n-1 vêzes: a n b n c n Prova-se que esta é forma geral de palavras da linguagem.

26 Linguagem Tipo 2 Linguagem Tipo 2 ou Livre de contexto são as mais usadas. Nelas todos os antecedentes de regras tem apenas 1 elemento, por exemplo: A Ba Neste caso o resultado da transformação de A independe do que tem antes ou depois, isto é, do contexto.

27 Linguagem Tipo 2: Árvores As linguagens de tipo 2 podem ser representadas com facilidade por árvores de derivação: Existe 1 e apenas 1 nó sem ramo chegando, chamado raiz da árvore. Para cada nó existe uma seqüência de nós ligando este nó à raiz da árvore. O grafo é conexo. Somente um arco entra em cada nó.

28 Exemplo de árvore Seja a gramática: G=({S,A],{a,b}P,S)onde: P={S aAS S a A SbA A SS A ba}

29 Linguagem Tipo 3 Linguagem Tipo 3 ou Linguagem Regular ee aquela em que as Regras de produção, ou tem apenas como consequencia um terminal ou um terminal seguido de um não terminal. Ex: A aB ou A a Nota: Estas linguagens são reconhecidas por máquina de estados finita.

30 Árvores para Linguagem T3 As árvores das linguagens tipo 3 são todas mais simples que as do tipo 2. Árvores, servem para, partindo de suas folhas reconstruir a árvore. A esta ação chama-se parser, ou análise sintática,

31 E até curso mais aprofundado... Será que sou como o animal ao lado?


Carregar ppt "Linguagens Formais Jorge Muniz Barreto UFSC-INE 2000."

Apresentações semelhantes


Anúncios Google