VinBR

LP 08/08/2011

Apr 28th, 2012
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.83 KB | None | 0 0
  1.  
  2. # # # # # # # # # # # # # #
  3. # Linguagens de Programação #
  4. # Prof. Fernando Pereira #
  5. # notasdogarcia.blog.com #
  6. # # # # # # # # # # # # # #
  7.  
  8. Prof. Fernando.
  9.  
  10.  
  11.  
  12. A pagina do curso é www.dcc.ufmg.br/~linguagensdeprogramacao (eu acho, ele me mandou olhar isso no site depois)
  13.  
  14. (haverão listas todo semana, para entregar na segunda seguinte)
  15. (existem exercicios na internet para se obter pontos extras)
  16.  
  17. Como descrever uma linguagem?
  18. Um primeiro passo é a necessidade de se enumerar cada palavra, para se entender o conjunto que forma a linguagem.
  19. O segundo passo seria então entender a gramática descritiva do funcionamento da linguagem
  20. E por fim seria necessário descrever a semantica de cada palavra, ou seja o significado prático da mesma.
  21.  
  22. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  23.  
  24. Quantas linguagens existem?
  25. Mips
  26. intel
  27. power pc
  28. mais um tanto.
  29.  
  30. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  31.  
  32. Um pouco de história das linguagens de programação:
  33.  
  34. Como descrever a linguagem binária?
  35. Quantos simbolos? dois, o 0 e o 1.
  36. As palavras são instruções simples, diretas, inabstratas.
  37. E tem como caractéristica uma programação lenta e ardua devido ao distanciamento da perspectiva humana de transmissão de informações.
  38.  
  39. E então devido a essa dificuldade no uso da linguagem de máquina é que surgem as primeiras linguagem de programação
  40. no intuito de facilitar o acesso humano ao código e a facilidade de compreensão humana do mesmo.
  41.  
  42. Uma das primeiríssimas linguagens de programação foi o assembly, que por característica
  43. possui uma instrução para cada palavra binária, por assim dizer.
  44. E na prática é um modo de evitar que o programador tenha de memórizar zeros, uns e posições de registradores.
  45. Assim surgiu o assemble que altera o alfabeto da linguagem sem no entanto alterar a gramática
  46. Os códigos que diferenciam as intruções foram convertidos em mneumonicos para facilitar o uso humano.
  47. E os registradores ganharam nomes como $R0, $Ax para que o programador não esquente tanto a cabeça memórizando tudo.
  48.  
  49. Porem havia também uma dificuldade na limitação da gramatica dessa linguagem.
  50. Como ela é traduzida diretamente para a linguagem de máquina é uma linguagem muito lenta e pouco abstrata.
  51. E isso suprime a capacidade avançada dos humanos de compreensão de linguagens desperdiçando o potencial e tempo do programador.
  52.  
  53. Para contornar isso foram criadas linguagem de maior complexidade que comprimem um conjunto de instruções binárias
  54. para gerar instruções de nível mais compativel com o nível humano.
  55.  
  56. Estas linguagens são chamadas de linguagem de alto nível.
  57. E tem como características palavras intuitivas aos seres humanos e traduções nem sempre diretas para a linguagem de máquina.
  58.  
  59. Uma destas primeiras linguagens é o fortran (FORmula TRANslation) e foi criada pela empresa IBM (ou pelo professor frederico segundos os colegas de sala xP).
  60.  
  61. (john backus estava com preguiça de assemble e assim criou o fortran!)
  62. (a preguiça salvando a humanidade novamente)
  63. (esse cara é famoso o professor nos sugeriu decorar o nome dele, ganhou o prémio turin)
  64.  
  65. Qual o grande chan do fortran?
  66. Bem, nós nao gostamos de pensar em registradores,
  67. nao gostamos de ficar implementando ifs com duas ou tres instruções e pensando em bits
  68. e também nao gostamos de loops complicados,
  69.  
  70. Portanto no fortran loops, ifs e variáveis foram criadas contornando estes 3 problemas
  71. e distanciando o programador do contato técnico com o hardware permitindo maior concentração na parte algoritimica.
  72.  
  73. O problema enfrentado na viabilização do fortran, sendo ele o predecessor das verdadeiras linguagens de alto nível, é a realização do parsing,
  74. que transforma a linguagem fortran para linguagens assemble e então binárias legíveis pela máquina.
  75. E isso acontece devido a inextencia de uma mapeamento direto entre instruções fortran para instruções de máquina.
  76. E assim surgiram os primeiros compiladores.
  77.  
  78. O fortran era muito eficiente ao ser traduzido para binário pois era uma linguagem ainda de baixo nível.
  79. porém não tinha facilidades para a implementação de recursão.
  80.  
  81. Foi então que surgiu o LISP com a possibilidade de geração de listas encadeadas, inclusive na verdade essa linguagem girava básicamente em torno dessa idéia.
  82. Isso facilitou a implementação da recursão nos algoritimos. E aumentou a flexibilidade do ato de programar.
  83. (O(s) criadores também ganharam o prémio turing)
  84. (o(um dos) criador era o John McCarthy)
  85.  
  86. Nesse ponto surgiram duas vertentes de linguagens de programação:
  87. - O "Calculo Lambida" cujo a linguagem LISP seria o patriarca.
  88. - E a vertente "Maquinas de Turing" sendo o Fortran o patriarca.
  89.  
  90. Outras linguagens que merecem citação são:
  91. ALGOL que foi uma linguagem criada por um comitê de cientistas industriais com o objetivo de criar uma linguagem
  92. que englobasse todas as demais, e se tornasse dessa forma um padrão global.
  93. A linguagem gerou então as bases para várias linguagens modernas, entre suas inovações
  94. temos os tipos de váriaveis e os blocos de programação, mas não chegou a realmente virar uma linguagem imbatível e nem é mais usada hoje.
  95.  
  96. COBOL
  97. Foi montada por academicos com o objetivo de ser usado por não-cientistas da computação
  98. como professores e etc e focava em grande parte aplicações comerciais.
  99. A criadora dessa linguagem era uma militar americana de nome Grace Hopper que trabalhou decodificando códigos japoneses.
  100. // NOTA: dizem que ao procurar um problema na maquina foi encontrada uma mariposa pela equipe da grace, e com isso surgiu a expressão "debug"
  101.  
  102. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  103.  
  104. Bem agora uma analise dos rankings de uso de algumas linguagens:
  105.  
  106. A linguagem mais usada hoje é JAVA seguida por C e então C++.
  107. Um dos principais motivos da linguagem JAVA ser tão popular hoje é o apoio coorporativo,
  108. Outros motivos são a eficiencia da linguagem, o fato dela ser orientada a objetos o que facilita o escalonamento dos programas,
  109. sua semelhança com a linguagem C o que facilita seu aprendizado. Alem da caracteristica de seus codigos serem interpretados e não traduzidos.
  110. permitindo que um mesmo código seja interpretado por vários computadores diferentes desde que haja um interpretador apto,
  111. evitando a recompilação do código toda vez que se deseja portabiliza-lo para uma nova màquina.
  112.  
  113. // Nota Pessoal: Lua é uma linguagem criada aqui no brasil e esta na 11° posição de uso no site que o professor mostrou :P.
  114.  
  115. PHP é outra linguagem muito popular.
  116. Qual o motivo?
  117. Acesso rápido ao banco de dados,
  118. Outro motivo é que o PHP é uma linguagem dinamicamente tipada diferente de java e C.
  119.  
  120. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  121.  
  122. CONCEITOs:
  123. Tradução é o ato de se tranformar um código em uma linguagem de maior nível X para uma equivalente de menor nível Y.
  124. Interpretação é o ato de ler uma linguagem de maior nível X e durante a leitura operar uma máquina de linguagem Y para que realize
  125. as tarefas indicadas pela linguagem em questão.
  126.  
  127. Existem traduções intermediarias que facilitam a criação de novas linguagens que é por exemplo o caso do java e de seus interpretadores.
  128. Maquina virtual é uma máquina que lê um tipo de código e traduz para um tipo de hardware,
  129. A maquina virtual java traduz o código para um ponto intermediario, e então para cada hardware existente cria uma maquina virtual
  130. com isso consegue-se que qualquer programa na linguagem java uma vez traduzido para o código intermediario chamado java Bytecode
  131. possa ser executado por toda e qualquer máquina para a qual já exista uma maquina virtual java.
  132.  
  133. É possível uma interpretação ser mais rapida que uma execução de um código já traduzido?
  134.  
  135. Sim, na verdade sim. Porque a interpretação permite otimizações em tempo de execução
  136. como por exemplo saber qual posição da memória esta armazenando uma função ao invés de guardar
  137. essa informação em uma variável, e outras coisas do tipo.
  138.  
  139. Qual a linguagem mais poderosa? É a boa e velha maquina de turing,
  140. A verdade é que todas nossas otimizações tem a intenção de nós facilitar o uso
  141. das linguagens mas a verdade é que qualquer coisa que seja implementada em linguagem C, java ou qualquer outra
  142. pode também ser resolvida por uma maquina de turing e o mesmo para outras linguagens.
  143.  
  144. // A aula acabou por aqui, e se mostrou básicamente uma introdução aos vários tipos de linguagem, o professor é um cara bem animado
  145. // e que gosta de interagir com a turma, eu gostei da aula dele.
  146. // Bem, FIM
Advertisement
Add Comment
Please, Sign In to add comment