Buscar

Evolucao historica das linguagens de programacao

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Linguagens e Paradigmas de Programação
Aula 1 – História e evolução da linguagens de programação
Prof. Wilson Hissamu Shirado
Contato: hissamu.shirado@gmail.com
Linguagens de Programação
Definição:
Linguagens de programação são usadas para descrever algoritmos; 
Precisa suportar a definição de ações e prover meios para especificar operações básicas de computação; 
Permite que os usuários especifiquem como estes passos devem ser sequenciados para resolver um problema; 
Notação que pode ser usada para especificar algoritmos com precisão;.
Classificação das Linguagens de Programação
As linguagens de baixo nível são restritas a linguagem de máquina e tem uma forte relação entre as operações implementadas pela linguagem e as operações implementadas pelo hardware. 
A programação mesmo sendo com algoritmos simples resulta em longos programas, o que dificulta o processo de validação e detecção de erros. 
O cálculo de endereços de memória devem ser feitos manualmente, com um árduo trabalho e uma grande probabilidade de erros. 
Indicada para funções que precisam implementar instruções de máquina específicas 
A grande eficiência e o reduzido tamanho dos programas desenvolvidos
Classificação das Linguagens de Programação
Classificação das Linguagens de Programação
As linguagens de alto nível aproximam-se das linguagens utilizadas por humanos para expressar problemas e algoritmos. 
Cada declaração numa linguagem de alto nível equivale a várias declarações numa linguagem de baixo nível 
A vantagem principal das linguagens de alto nível é a abstração. 
Provê facilidades para a depuração, como visualização dos valores das variáveis, dos registradores e da pilha. 
Classificação das Linguagens de Programação
Processamento de Linguagens:
Problema básico: 
linguagem de nível mais alto implementada para/em baixo nível 
Duas abordagens básicas:
Programas Interpretados;
Programas traduzidos (Compilados).
Atividade: Fazer um comparativo entre vantagens e desvantagens de linguagens compiladas e interpretadas
6
Classificação das Linguagens de Programação
Interpretação 
Diretamente executadas 
Sequência: 
Obter a próxima instrução (aquela cujo endereço é especificado no indicador de instruções da máquina). 
Deslocar o indicador de instruções (obtendo o endereço da próxima instrução a ser executada). 
Decodificar a instrução. 
Executar a instrução.
Classificação das Linguagens de Programação
Tradução:
traduzidos para versões equivalentes em linguagem de máquina, antes de serem executadas.
Sequência: 
Subprogramas podem ser inicialmente traduzidos para código Assembly (compilador) 
este pode depois ser traduzido para código relocável (objeto), em linguagem de máquina (montador) 
em seguida, unidades em código relocável (objeto) podem ser ligadas em uma única unidade relocável /um único código objeto (linker) 
e, finalmente, o programa inteiro é carregado na memória principal, como código executável de máquina (carregador)
Breve atividade...
Pesquise na internet quais as vantagens e desvantagens de códigos compilados e interpretados.
Programas Compilados 
Vantagens:
Pronto para ser executado;
Execução mais rápida
compilação somente se tiver sem nenhum erro
estruturas de dados mais completas
otimização de codigo fonte
mais segurança ao código
Desvantagens:
processo de correção de erro é mais demorado
complexidade para compilação
necessita de mais memória
Programas Interpretados
Vantagens
Não precisa ser compilado
Consome menos memória
Correções são mais rápidas de serem realizadas
resultado imediato do programa
depuração mais simples
pode rodar em diversas plataformas
Desvantagens
Processo de interpretação é mais lento
Necessário fornecer o código fonte ao usuário
necessita sempre ser lido o código orinal para ser executado 
verificação de erros acontece durante a execução
Evolução histórica das Linguagens de Programação
Gerações de linguagens de programação:
1ª Geração;
2ª Geração;
3ª Geração;
4ª Geração;
5ª Geração;
nª Geração
Primeira geração
Remonta aos dias da codificação em linguagem de máquina, surgidas com o início da computação na década de 50, especificamente de 1950 a 1962. 
A Linguagem de máquina e Assembly representam esta primeira geração das linguagens de programação. 
Totalmente dependentes da máquina, exibem o mais baixo nível de abstração que uma linguagem pode ser representada
Segunda Geração
Desenvolvida de 1962 a 1974; 
Serviu de base para o desenvolvimento das modernas linguagens de programação; 
Amplo uso com grande familiaridade e aceitação no mercado e a grande quantidade de bibliotecas de software; 
Permitiram a programação multi-usuário, sistemas de execução em tempo real e desenvolvimento de gerenciadores de base de dados; 
As linguagens Fortran, Cobol, Algol e algumas extensões como Basic, foram os representantes dessa geração.
Terceira geração
São caracterizadas pela grande capacidade procedural e estrutural de seus dados - de 1974 a 1986; 
Possibilidade de criar sistemas distribuídos, incorporar recursos mais inteligentes, e exigir um hardware menos robusto; 
Categorias: 
linguagens de propósito geral; 
Linguagem Algol: aplicações envolvendo desde a área científica a área comercial: linguagens C, Pascal, PL/1 e Modula-2; 
linguagens especializadas 
forma sintática não usual;
Lisp (lista/símbolos); Prolog (conhecimento); SmallTalk (objetos); APL (vetores) e Forth (microprocessadores).
Quarta geração
A quarta geração das linguagens de programação foram desenvolvidas a partir de 1986; 
Geração de sistemas especialistas, o desenvolvimento de inteligência artificial e a possibilidade de execução dos programas em paralelo;
Conhecidas também como linguagens artificiais contém uma sintaxe distinta para representação de estruturas de controle e dos dados.
Quarta geração
categorias: linguagens de consulta, geradoras de programas e outras linguagens (4GL) 
Consulta: 
manipular bases de dados, permitindo o gerenciamento de um grande número de informações armazenados em arquivos. 
Geradoras de programas: 
criar facilmente programas complexos em linguagens de terceira geração, utilizando bem menos declarações e comandos 
Outras: 
apoio à decisão, linguagens utilizadas para modelagem de sistemas, linguagens de prototipação, e linguagens de especificação formal que produzem código de máquina
Principais LP’s ao longo da história
957 FORTRAN 
1958 ALGOL 
1960 LISP 
1960 COBOL 
1962 APL 
1962 SIMULA 
1964 BASIC 
1964 PL/1 
1966 ISWIM 
1970 Prolog 
1972 C 
1986 C++ 
1986 CLP(R) 
1986 Eiffel 
1988 CLOS 
1988 Mathematica 
1988 Oberon 
1990 Haskell 
1995 Delphi 
1995 Java
1975 Pascal 
1975 Scheme 
1977 OPS5 
1978 CSP 
1978 FP 
1980 dBase II 
1983 Smalltalk 80 
1983 Ada 
1983 Parlog 
1984 Standard ML 
Tendências atuais
Aplicação com metodologias orientadas a objetos. 
Ambiente de geração automática de código, onde o programador especifica através de ferramentas visuais as características do programa e a ferramenta se encarrega de gerar a codificação na linguagem específica. 
“Quinta geração ” baseada em métodos de consulta e utilizam comandos escritos em linguagens naturais, permitindo uma fácil comunicação com o computador.
Evolução: FORTRAN
Desenvolvida a partir da década de 1950;
Opção à linguagens de baixo nível (Assembly);
Foi a primeira linguagem de programação imperativa;
O Fortran permite a criação de programas que primam pela velocidade de execução;
Evolução: COBOL
A linguagem COBOL (Common Business Language) foi publicada pelo Departamento de Defesa americano em1960, logo após o surgimento de FORTRAN. 
Sua área de aplicação é a de computação de negócios. 
Ela teve pouco efeito no desenvolvimento de outras linguagens, em função de sua área específica de aplicação. 
Desde o seu surgimento, houveram poucas iniciativas de desenvolvimento de novas linguagens de negócios, uma vez que COBOL já atendia aosprincipais requisitos desta área.
Evolução: BASIC
A linguagem BASIC (Beginner ’ s All-purpose Symbolic Instruction Code) foi projetada em 1964 por dois matemáticos, John Kemeny e Thomas Kurtz, da universidade de Dartmouth;
BASIC teve como objetivos: 
ser uma linguagem fácil de aprender e usar; 
ser amigável; 
permitir acessos públicos e privados; 
considerar o tempo do usuário mais importante que o do computador. 
As razões para a sua popularidade foram a facilidade de aprendizado para iniciantes e a sua implementação em computadores com memórias pequenas. 
As versões contemporâneas de BASIC são o QuickBASIC e o Visual BASIC. 
Evolução: PASCAL
A linguagem Pascal, assim como diversas outras linguagens imperativas, evoluiu de ALGOL. 
Desenvolvida por Niklaus Wirth, que propôs uma versão com pequenas contribuições e alterações de ALGOL 60. 
Esta versão foi chamada de Pascal (1971) e foi amplamente utilizada
Pascal foi projetada para ser uma linguagem de ensino de programação; 
Em função disso, ela não possui algumas características necessárias para projetos de grande porte, como arrays de tamanhos variáveis. 
Como características positivas de Pascal estão a simplicidade e a expressividade. Além disso, é uma linguagem um pouco mais segura do que FORTRAN e C. 
Na metade dos anos 90 a popularidade de Pascal entrou em declínio.a no ensino de linguagens de programação. 
Evolução: C
A linguagem C (1972) deriva de ALGOL 68, CPL, BCPL e B, e foi desenvolvida e implementada por Dennis Ritchie, dos laboratórios BELL;
O sistema operacional Unix foi originalmente escrito em linguagem assembly, e posteriormente reescrito em linguagem C; 
C possui declarações de controle e facilidades de estruturação de dados que permitem o seu uso em diversas áreas de aplicação. Além disso, possui um grande conjunto de operadores.;
A inclusão de C em Unix permitiu a sua gratuidade e consequente popularidade.
Evolução: ADA
Linguagem derivada do Pascal;
A linguagem Ada foi criada em função da grande quantidade de linguagens diferentes existentes em computadores do Departamento de Defesa em 1974;
O objetivo principal da criação de Ada foi o de desenvolver uma linguagem de alto-nível para sistemas embarcados;
Ada possui quatro características principais: 
pacotes para o encapsulamento de dados, especificações para tipos de dados e procedimentos; 	
manuseio de exceções; 
procedimentos com tipos genéricos definidos em tempo de execução; 
execução concorrente de unidades especiais de programas, chamadas de tarefas. 
A extensão mais recente de Ada (Ada 95) provê o suporte para a programação orientada a objetos e o compartilhamento de dados.
Evolução: Smalltalk
Os computadores no final dos anos 60 eram usados exclusivamente por programadores profissionais e cientistas. 
Alan Kay desenvolveu em seu trabalho de doutorado em 1969 uma previsão de que os futuros computadores seriam poderosos, e utilizados por não programadores. 
Suas idéias foram apoiadas pela Xerox e foi desenvolvida a linguagem Smalltalk (1980). 
Smalltalk introduziu os conceitos de sistemas de janelas e de desenvolvimento orientado a objetos.
Evolução: C++
A linguagem ”C++” (1985) combina as características dos paradigmas imperativo e orientado a objetos (O.O.); 
C++ evoluiu de C através de uma sequência de modificações para melhorar as suas características imperativas e suportar a O.O.; 
A parte mais essencial do suporte à orientação a objetos é o mecanismo de classes e objetos. 
C++ provê uma coleção de classes pré-definidas, juntamente com a possibilidade de o usuário definir suas classes. 
As classes de C++ podem ser instanciadas inúmeras vezes;
C++ tornou-se uma linguagem popular em função de sua compatibilidade com a linguagem C.
Evolução: Java
Desenvolvida a partir de 1995 pela Sun Microsystems;
Busca portabilidade entre diversas plataformas usando o conceito das máquinas virtuais;
Possui um mecanismo automático de desalocação de memória, chamado de garbage collection, que livra o programador da tarefa de eliminar variáveis e posições de memória não mais utilizadas;
Conversão implícita de tipos de dados de um tipo menor para outro maior, p.ex. de int para float 
O uso de Java vem crescendo mais do que o das outras linguagens. 
Dúvidas, Perguntas, Questionamentos?

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes