Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # # # # # # # # # # # # # #
- # Linguagens de Programação #
- # Prof. Fernando Pereira #
- # notasdogarcia.blog.com #
- # # # # # # # # # # # # # #
- Prof. Fernando.
- A pagina do curso é www.dcc.ufmg.br/~linguagensdeprogramacao (eu acho, ele me mandou olhar isso no site depois)
- (haverão listas todo semana, para entregar na segunda seguinte)
- (existem exercicios na internet para se obter pontos extras)
- Como descrever uma linguagem?
- Um primeiro passo é a necessidade de se enumerar cada palavra, para se entender o conjunto que forma a linguagem.
- O segundo passo seria então entender a gramática descritiva do funcionamento da linguagem
- E por fim seria necessário descrever a semantica de cada palavra, ou seja o significado prático da mesma.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- Quantas linguagens existem?
- Mips
- intel
- power pc
- mais um tanto.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- Um pouco de história das linguagens de programação:
- Como descrever a linguagem binária?
- Quantos simbolos? dois, o 0 e o 1.
- As palavras são instruções simples, diretas, inabstratas.
- E tem como caractéristica uma programação lenta e ardua devido ao distanciamento da perspectiva humana de transmissão de informações.
- E então devido a essa dificuldade no uso da linguagem de máquina é que surgem as primeiras linguagem de programação
- no intuito de facilitar o acesso humano ao código e a facilidade de compreensão humana do mesmo.
- Uma das primeiríssimas linguagens de programação foi o assembly, que por característica
- possui uma instrução para cada palavra binária, por assim dizer.
- E na prática é um modo de evitar que o programador tenha de memórizar zeros, uns e posições de registradores.
- Assim surgiu o assemble que altera o alfabeto da linguagem sem no entanto alterar a gramática
- Os códigos que diferenciam as intruções foram convertidos em mneumonicos para facilitar o uso humano.
- E os registradores ganharam nomes como $R0, $Ax para que o programador não esquente tanto a cabeça memórizando tudo.
- Porem havia também uma dificuldade na limitação da gramatica dessa linguagem.
- Como ela é traduzida diretamente para a linguagem de máquina é uma linguagem muito lenta e pouco abstrata.
- E isso suprime a capacidade avançada dos humanos de compreensão de linguagens desperdiçando o potencial e tempo do programador.
- Para contornar isso foram criadas linguagem de maior complexidade que comprimem um conjunto de instruções binárias
- para gerar instruções de nível mais compativel com o nível humano.
- Estas linguagens são chamadas de linguagem de alto nível.
- E tem como características palavras intuitivas aos seres humanos e traduções nem sempre diretas para a linguagem de máquina.
- Uma destas primeiras linguagens é o fortran (FORmula TRANslation) e foi criada pela empresa IBM (ou pelo professor frederico segundos os colegas de sala xP).
- (john backus estava com preguiça de assemble e assim criou o fortran!)
- (a preguiça salvando a humanidade novamente)
- (esse cara é famoso o professor nos sugeriu decorar o nome dele, ganhou o prémio turin)
- Qual o grande chan do fortran?
- Bem, nós nao gostamos de pensar em registradores,
- nao gostamos de ficar implementando ifs com duas ou tres instruções e pensando em bits
- e também nao gostamos de loops complicados,
- Portanto no fortran loops, ifs e variáveis foram criadas contornando estes 3 problemas
- e distanciando o programador do contato técnico com o hardware permitindo maior concentração na parte algoritimica.
- O problema enfrentado na viabilização do fortran, sendo ele o predecessor das verdadeiras linguagens de alto nível, é a realização do parsing,
- que transforma a linguagem fortran para linguagens assemble e então binárias legíveis pela máquina.
- E isso acontece devido a inextencia de uma mapeamento direto entre instruções fortran para instruções de máquina.
- E assim surgiram os primeiros compiladores.
- O fortran era muito eficiente ao ser traduzido para binário pois era uma linguagem ainda de baixo nível.
- porém não tinha facilidades para a implementação de recursão.
- 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.
- Isso facilitou a implementação da recursão nos algoritimos. E aumentou a flexibilidade do ato de programar.
- (O(s) criadores também ganharam o prémio turing)
- (o(um dos) criador era o John McCarthy)
- Nesse ponto surgiram duas vertentes de linguagens de programação:
- - O "Calculo Lambida" cujo a linguagem LISP seria o patriarca.
- - E a vertente "Maquinas de Turing" sendo o Fortran o patriarca.
- Outras linguagens que merecem citação são:
- ALGOL que foi uma linguagem criada por um comitê de cientistas industriais com o objetivo de criar uma linguagem
- que englobasse todas as demais, e se tornasse dessa forma um padrão global.
- A linguagem gerou então as bases para várias linguagens modernas, entre suas inovações
- 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.
- COBOL
- Foi montada por academicos com o objetivo de ser usado por não-cientistas da computação
- como professores e etc e focava em grande parte aplicações comerciais.
- A criadora dessa linguagem era uma militar americana de nome Grace Hopper que trabalhou decodificando códigos japoneses.
- // 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"
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- Bem agora uma analise dos rankings de uso de algumas linguagens:
- A linguagem mais usada hoje é JAVA seguida por C e então C++.
- Um dos principais motivos da linguagem JAVA ser tão popular hoje é o apoio coorporativo,
- Outros motivos são a eficiencia da linguagem, o fato dela ser orientada a objetos o que facilita o escalonamento dos programas,
- sua semelhança com a linguagem C o que facilita seu aprendizado. Alem da caracteristica de seus codigos serem interpretados e não traduzidos.
- permitindo que um mesmo código seja interpretado por vários computadores diferentes desde que haja um interpretador apto,
- evitando a recompilação do código toda vez que se deseja portabiliza-lo para uma nova màquina.
- // Nota Pessoal: Lua é uma linguagem criada aqui no brasil e esta na 11° posição de uso no site que o professor mostrou :P.
- PHP é outra linguagem muito popular.
- Qual o motivo?
- Acesso rápido ao banco de dados,
- Outro motivo é que o PHP é uma linguagem dinamicamente tipada diferente de java e C.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- CONCEITOs:
- 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.
- 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
- as tarefas indicadas pela linguagem em questão.
- Existem traduções intermediarias que facilitam a criação de novas linguagens que é por exemplo o caso do java e de seus interpretadores.
- Maquina virtual é uma máquina que lê um tipo de código e traduz para um tipo de hardware,
- A maquina virtual java traduz o código para um ponto intermediario, e então para cada hardware existente cria uma maquina virtual
- com isso consegue-se que qualquer programa na linguagem java uma vez traduzido para o código intermediario chamado java Bytecode
- possa ser executado por toda e qualquer máquina para a qual já exista uma maquina virtual java.
- É possível uma interpretação ser mais rapida que uma execução de um código já traduzido?
- Sim, na verdade sim. Porque a interpretação permite otimizações em tempo de execução
- como por exemplo saber qual posição da memória esta armazenando uma função ao invés de guardar
- essa informação em uma variável, e outras coisas do tipo.
- Qual a linguagem mais poderosa? É a boa e velha maquina de turing,
- A verdade é que todas nossas otimizações tem a intenção de nós facilitar o uso
- das linguagens mas a verdade é que qualquer coisa que seja implementada em linguagem C, java ou qualquer outra
- pode também ser resolvida por uma maquina de turing e o mesmo para outras linguagens.
- // 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
- // e que gosta de interagir com a turma, eu gostei da aula dele.
- // Bem, FIM
Advertisement
Add Comment
Please, Sign In to add comment