Gramáticas E Linguagens Formais

16.096 visualizações

Publicada em

Apresentação de Teoria de Computação

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
16.096
No SlideShare
0
A partir de incorporações
0
Número de incorporações
25
Ações
Compartilhamentos
0
Downloads
195
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Gramáticas E Linguagens Formais

  1. 1. Gramáticas e Linguagens Formais Cid Soares Eric Silva Lázaro Júnior
  2. 2. Gramáticas livres de contexto <ul><li>Reconhecedor de linguagens – Sentido ou não de sentenças(autômatos finitos); </li></ul><ul><li>Gerador de linguagens – Produzir sentenças, gerar linguagens(conjunto de todas as cadeias produzidas), Ex: expressões regulares; </li></ul><ul><li>Gramáticas livres de Contexto – Um tipo mais complexo de geradores de linguagem; </li></ul>
  3. 3. Definição <ul><li>Uma gramática livre de contexto G é uma quádrupla (V,E,R, S), onde </li></ul><ul><li>V é um alfabeto, E(o conjunto de terminais ) é um subconjunto de V , R (o conjunto de regras ) é um subconjunto finito de (V -E ) × V* , e </li></ul><ul><li>S (o símbolo inicial ) é um elemento de V-E </li></ul>
  4. 4. Exemplo <ul><li>Uma gramática livre de contexto para os palíndromos: </li></ul><ul><li>1. P -> ε </li></ul><ul><li>2. P -> 0 </li></ul><ul><li>3. P -> 1 </li></ul><ul><li>4. P -> 0P0 </li></ul><ul><li>5. P -> 1P1 </li></ul>
  5. 5. Conjunto de Terminais? <ul><li>Existe um conjunto finito de símbolos que formam os strings da linguagem que está sendo definida. Em nosso exemplo, {0,1}. Chamamos esse alfabeto de terminais ou de símbolos terminais. </li></ul>
  6. 6. Não Terminais <ul><li>Existe um conjunto finito de variáveis, também chamada às vezes não terminais ou categorias sintáticas. Cada variável representa uma linguagem; isto é, um conjunto de strings. Em nosso exemplo anterior, havia apenas uma variável P. </li></ul>
  7. 7. Variáveis <ul><li>Uma das variáveis representa a linguagem que está sendo definida; ela é chamada de símbolo de início. Outras variáveis representam classes auxiliares de strings que são usadas para ajudar a definir a linguagem do símbolo de início. </li></ul><ul><li>Em nosso exemplo, P (a única variável) é o símbolo de início. </li></ul>
  8. 8. Derivações que utilizam uma gramática <ul><li>Tomam-se os strings que sabemos estarem na linguagem de cada uma das variáveis do corpo, concatenamos esses strings na ordem apropriada com quaisquer terminais que apareçam no corpo e 3 inferimos que a string resultante está na linguagem da variável que aparece na cabeça. Esse procedimento é chamado referência recursiva. </li></ul>
  9. 9. Derivações que utilizam uma gramática <ul><li>Uma outra abordagem é definir a linguagem para uma gramática, na qual usamos as produções da cabeça para o corpo, expandimos o símbolo da cabeça usando uma de suas produções. Expandimos ainda mais o string resultante substituindo uma de suas variáveis pelo corpo de uma de suas produções e assim sucessivamente, até derivarmos uma string consistindo inteiramente de terminais. A linguagem da gramática é formada por todas as strings de terminais que puderem ser obtidos dessa maneira. Esse procedimento é chamado derivação. </li></ul>
  10. 10. Linguagem de uma gramática <ul><li>Se G=(V,T,P,S) é uma GLC, a linguagem de G, detonada por L(G), é o conjunto de strings terminais que têm derivações desde o símbolo de início. </li></ul>
  11. 11. Gramáticas Livres de Contexto <ul><li>• Descrever a estrutura de linguagem de programação e os conjuntos de cadeias inter-relacionadas; </li></ul><ul><li>Elaborar componente analisador sintático de um compilador; </li></ul><ul><li>Potentes pra descrever a sintaxe das linguagens de programação; </li></ul><ul><li>Bastante simples pra permitir a criação de analisadores eficientes; </li></ul>
  12. 12. Linguagens Formais <ul><li>Estudo de modelos matemáticos que possibilitam a especificação e o reconhecimento de linguagens (no sentido amplo da palavra), suas classificações, estruturas, propriedades, características e inter-relacionamentos. </li></ul>
  13. 13. Gramática Formal <ul><li>Conjunto de regras capaz de gerar todas as possibilidades combinatórias desta linguagem. Essa linguagem pode ser uma linguagem formal ou linguagem natural . </li></ul><ul><li>Gramática livre de contexto é uma notação formal para expressar tais definições recursivas de linguagens. </li></ul>
  14. 14. Linguagens livres de Contexto <ul><li>Trata questões: </li></ul><ul><ul><li>Parênteses balanceados, construções bloco-estruturadas; </li></ul></ul><ul><ul><li>Típicas de linguagens de programação como Pascal, C e Java; </li></ul></ul><ul><ul><li>Aplicações: </li></ul></ul><ul><ul><li>Analisadores sintáticos, tradutores de linguagens e processadores de texto em geral. </li></ul></ul>
  15. 15. <ul><li>Chomsky definiu estas classes como (potenciais) modelos para linguagens naturais; </li></ul>
  16. 16. Hierarquia de Chomsky
  17. 17. Gramática Com Estrutura de Frase <ul><li>Também conhecida como Tipo 0, são aquelas às quais nenhuma limitação é imposta. O universo das linguagens que se podem definir através dos mecanismos gerativos definidos pela gramática corresponde exatamente ao conjunto das linguagens que esta classe de gramática é capaz de gerar. </li></ul>
  18. 18. Gramáticas Sensíveis Ao Contexto <ul><li>Também conhecida como Tipo 1. Se as regras de substituição forem sujeitas à restrição de que nenhuma substituição possa reduzir o comprimento da forma sentencial à qual a substituição é aplicada, cria-se uma classe chamada sensíveis ao contexto ou tipo 1. </li></ul>
  19. 19. Gramáticas Livres de Contexto <ul><li>Também conhecida como de Tipo 2, são aquelas em que é levantado o condicionamento das substituições impostas pelas regras definidas pelas produções. </li></ul>
  20. 20. Gramáticas Regulares <ul><li>Também conhecida como de Tipo 3, é uma restrição sobre a forma das produções, pode-se criar uma nova classe de gramáticas de grande importância no estudo dos compiladores por possuírem propriedades adequadas para a obtenção de reconhecedores simples. Também pode ser denominada de Expressão Regular . </li></ul>
  21. 21. FIM! <ul><li>« A ciência é aquilo que compreendemos o suficiente para explicar a um computador. A arte é todo o resto. » </li></ul><ul><li>Donald Ervin Knuth 1996 </li></ul>

×