VinBR

LP 10/08/2011

Apr 28th, 2012
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1.  
  2. # # # # # # # # # # # # # #
  3. # Linguagens de Programação #
  4. # Prof. Fernando Pereira #
  5. # notasdogarcia.blog.com #
  6. # # # # # # # # # # # # # #
  7.  
  8. // Nota Pessoal: A Léxica de uma gramática é a correta ortográfia das palavras da mesma desconsiderando a gramática.
  9. // Isso não deve ser mto importante não.
  10.  
  11. Nessa aula o professor começou mostrando um algoritimo falado para gerar um fractal, e partindo disso
  12. começou a mostrar uma gramática para realizar esse algoritimo, que a principio se parece com a de ftc.
  13. A diferença é que tendo uma regra A -> AA, eu tenho que aplicar regras a todas as variáveis de uma palavra ao mesmo tempo.
  14. Em outras palavras se tenho AA só posso transformar isso diretamente em AAAA aplicando a regra acima para ambas as variáveis simuntaneamente.
  15.  
  16. O que é necessário para gerar uma gramática?
  17. 1 - Regras de produção.
  18. 2 - Alfabeto.
  19. 3 - Conjunto de terminais.
  20. 4 - Simbolo de partida.
  21.  
  22. Notação de uma gramática simples:
  23. Notação BNF:
  24.  
  25. <exp> ::= <exp> + <exp>
  26. | <exp> * <exp>
  27. | a
  28. | b
  29. | c
  30.  
  31. Indicando que a exp mais a esquerda pode se tornar a, b, c ou a soma de duas expressoes ou o produto.
  32. Em outras palavras, temos:
  33. 1 - Regras são as 5 linhas, onde cada uma delas indica que <exp> pode se tornar ou a linha 1 ou a linha 2 ou ... etc.
  34. 2 - Alfabeto: <exp>.
  35. 3 - Conjunto de terminais: a,b,c,+,*.
  36. 4 - Simbolo de partida que é o <exp>.
  37.  
  38. CONCEITO:
  39. Parsing é o ato de tranformar um programa em uma árvore de instruções, de forma que as folhas componham a tradução para uma linguagem de nível mais baixo.
  40. // Ou seja é o processo pelo qual um compilador traduz um programa para o código assembly por exemplo.
  41.  
  42. // Por enquanto ele está demonstrando o uso de uma gramática, descrevendo vários exemplos incluíndo a própria linguagem do português.
  43.  
  44. Gramatica de prolog (nós vamos estudar essa linguagem de programação no final do curso):
  45. sigNum --> number.
  46. sigNum --> signal, number.
  47.  
  48. number --> digit.
  49. number --> digit, number.
  50.  
  51. digite --> [0]; [1]; [2]; [3]; [4]; [5]; [6]; [7]; [8]; [9];
  52. signal --> [+]; [-];
  53.  
  54. Couchetes denotam simbolos terminais, virgulas e ';' são separadores e setinhas são indicadores de substituição aparentemente.
  55. O professor falou que vai explicar essa linguagem em detalhes mais no fim do curso, por agora, ele não explicou bem poucos detalhes.
  56.  
  57. Sobre alguns tipos de gramáticas (que inclusive já estudamos ftc) temos:
  58. Nós vamos estudar:
  59. - Gramática Regular.
  60. - Gramática Livre de Contexto.
  61.  
  62. Nós não vamos estudar:
  63. - Gramáticas Sensíveis ao Contexto.
  64. - Gramáticas Irrestritas.
Advertisement
Add Comment
Please, Sign In to add comment