Linguagens de Programação. História da Ciência e Tecnologia - ADS Professor: Kleber Manrique Trevisani. Ana Luiza Lima. Carolina Pedrosa. Diana Ferreira. Marielly Barros. Sumário • Surgimento das primeiras linguagens de programação. • Linguagens X Aplicabilidade X Época. • Principais paradigmas de linguagens de programação. • Imperativa. • Estruturada. • Orientada a objetos. • Orientada a aspectos. Surgimento. (I) • As linguagens de programação são linguagens usadas para a comunicação com o computador. Surgimento. (II) • Estas linguagens são constituídas de comandos, que quando utilizados corretamente, executam uma ação. Linguagem Java Linguagem assembly Surgimento.(III) Altos, médios níveis. • • • • • • • • As linguagens de alto nível, possuem instruções simples, normalmente próximas do inglês e das notações matemáticas. Como: Fortran -1957 Java - 1990 COBOL - 1959 Python - 1991 Basic- 1964 PHP - 1995 C - 1972 C++ - 1985 C# - 2000 Smalltalk - 1972 Linguagem Fortran. (I) • Criada por John Backus e pela empresa americana International Business Machines (International Business Machines), no ano de 1957. • Fortran é a contração de "Formula Translator". • O Fortran permite a criação de programas que primam pela velocidade de execução. • A linguagem Fortran tinha a intenção de traduzir equações científicas para códigos de computadores. Linguagem Fortran. (II) • Uma das línguas mais utilizadas na ciência e na engenharia. • Primeira linguagem de Paradigma Imperativa. Linguagem Fortran 90 Linguagem COBOL. (I) • O COBOL foi criado por um comitê de investigadores de várias instituições civis e governamentais durante o ano de 1959. • Ná década de 60 tinha a aplicação de uma plataforma de desenvolvimento para aplicações bancárias e financeiras e administrativos para empresas e governos. • Paradigma Orientada a objeto Linguagem COBOL. (II) • O COBOL, possuía excelentes capacidades de auto documentação, bons métodos de manuseio de arquivos, e excepcional modelagem de dados para a época. • Linguagem COBOL. Linguagem Basic.(I) • Criada por 1964, por John G. Kemeny,Thomas E. Kurtz • A ideia por trás da criação de BASIC é permitir aos estudantes da época (década de 60) diferentes áreas de conhecimento, e escreverem simples programas que não dependam de profundos conhecimentos técnicos. Linguagem Basic.(II) • Paradigma Imperativo, estruturado. • Possuía apenas 15 comandos. Linguagem Basic. Linguagem C. (I) Criada em 1972 por Dennis Ritchie. • C foi originalmente desenvolvido para a implementação do sistema Unix (sistema operacional portátil). • Paradigma Estruturada, Imperativa. Linguagem C. (II) • C tem influenciado muitas outras linguagens de programação. Principalmente a C++. Linguagem C. Linguagem C++ Surgiu em 1985, criada por Bjarne Stroustrup Linguagem C++ • "C++", sugere que seria um C com algo mais. • é uma linguagem de programação multi-paradigma. • Abstração de dados, orientação a objeto, programação genérica, programação procedural Linguagem C# (I) • Criada por Anders Hejlsberg, publicada no ano 2000. • C# ou C Sharp é uma linguagem de programação orientada a objetos criada pela Microsoft, faz parte da sua plataforma .Net. A companhia baseou C# na linguagem C++ e Java. Linguagem C# (II) • Exemplo: Linguagem Smalltalk. (I) • Criafa por Alan Kay, em 1972. • Smalltalk é o nome da mais popular linguagem orientada para objetos existente. • Tudo são objetos: variáveis, constante, classes, registros de ativação, etc. • Influenciou uma geração de linguagens orientadas por objetos. Linguagem Java. (I) • Java é uma linguagem de programação desenvolvidade na década de 90 em Califónia, por uma equipe de programadores chefiada po James Gosling, na empresa Sun Microsystems. • Sintaxe similar a C/C++. Linguagem Java. (II) • Exemplo: Linguagem Python. (I) • Foi lançada por Guido van Rossum em 1991. • É uma linguagem de programação de alto nível,interpretada, imperativa, orientada a objeto, de tipagem dinâmica e forte. • Um dos focos primordiais de Python era aumentar a produtividade do programador. • É um software de código aberto. Linguagem Python (II) • Exemplo: Linguagem PHP (I) • O PHP foi criado em 1995, por Rasmus Lerdorf. • É uma linguagem de programação muito usada atualmente para gerar conteúdo para a WEB rápido, simples e eficientes. Linguagem PHP (II) • O PHP permitia, inicialmente, os programadores criarem aplicativos simples para a web. Linguagem orientado a objeto + imperativo. • Foi disponibilizado o código fonte do PHP para usuários poderem aperfeiçoar e melhorar o código. Linguagem PHP (III) • Exemplo: Linguagens e quanto são usadas. ( 2010-2009) Paradigmas da linguagem de programação Um paradigma de linguagem é a metodologia de construção de programas adotada na implementação da linguagem. Ex: escreva: "Qual é a nota do aluno?" leia nota se nota maior ou igual a sete então: escreva "Ele passou" senão: escreva: "Ele foi reprovado" fim do se fim do programa Imperativa.(I) Programas concentrados em um estado e ações. Denominado procedural. • Primeiro paradigma a surgir e ainda é o dominante. • Imperativa. (II) Modelo Computacional do Paradigma Imperativo Vantagens/ Desvantagens. • Eficiência Representação do mundo eficiente,fácil compreensão. • real de forma Problema Difícil legibilidade, erros introduzidos durante manutenção. Estruturada. (I) • Linguagens puramente imperativas, com em o Assembly, é muito fácil o programador criar códigos de difícil leitura, pois esse tipo de linguagem possui o que se chama de saltos (jumps) em sua estrutura. • Estes saltos funcionam da seguinte forma: o programador define uma marcação (label) no código e depois, a partir de qualquer parte do programa, ele pode executar um desvio de fluxo de execução (salto) para aquela marcação. Estruturada. (II) Exemplo: #include <iostream> using namespace std; int main() { cout << "Olá mundo." << endl; return 0; } Exemplo. (II) print "Tabuada!" a = int(raw_input("Entre com a tabuada que deseja [0-9]: ")) print # Apenas para deixar uma linha em branco. if 0 <= a <= 9: for i in range(10): print "%d x %d = %.2d" % (a, i, a * i) else: print "Entre ZERO e NOVE!" código Python Vantagens. • Provê um melhor controle sobre o fluxo de execução do código, quando comparada com a programação imperativa. • É fácil de se entender, sendo amplamente usada em cursos introdutórios de programação. Desvantagens. • Ainda se foca em como a tarefa deve ser feita e não em o que deve ser feito. • Tende a gerar códigos confusos, onde tratamento dos dados são misturados com o comportamento do programa. Orientada a objetos Ela foi criada para tentar simular o mundo real dentro do computador e para isso utiliza objetos. • Vantagens Provê uma melhor organização do código. Contribui para o reaproveitamento de código. • Desvantagens Não possui o mesmo desempenho de códigos estruturados similares. • Seus conceitos são de difícil compreensão se comparados aos conceitos da Programação estruturada. • Exemplo.(I) Agora vamos fazer um looping por todos esses objetos, enviando para cada um deles a mensagem "fale". O que iria acontecer? Inicialmente, vamos supor que a classe abstrata Animal possui o método "fale", e que ele seja implementado (de forma algorítmica) da seguinte forma: Classe Animal { método fale() { imprimaNaTela(" Eu sou mudo! "); } } Exemplo.(II) using namespace std; #include <iostream> #include <iomanip> #include <string.h> #include <stdlib.h> #include <conio.h> class pessoa { private: char nome[30]; int matricula; char cpf[16]; char endereco[30]; Vantagens da POO • Programação Orientada a Objeto • Os sistemas, em geral, possuem uma divisão de código um pouco mais lógica e melhor encapsulada do que a empregada nos sistemas não orientados a objetos. • É mais fácil gerenciar o desenvolvimento deste tipo de software quando temos uma equipe grande. Desvantagens Dificilmente uma linguagem orientada a objetos conseguirá ter um desempenho em tempo de execução superior a linguagens não orientadas a objetos. Orientada a aspectos • A programação orientada a aspectos foi criada para resolver a implementação destes interesses transversais para os sistemas modelados com orientação a objetos. Usando AOP é possível separar estes interesses em unidades chamadas aspectos. Separação de interesses. • De forma geral, os vários interesses do sistema devem ser separados em módulos. • Pode se classificar os interesses de sistemas de software em: • Interesses do negócio capturam a funcionalidade central de um módulo, por exemplo, procedimento de quitação de uma compra; Fontes. • Linguagem C++. Disponível em : <http://pt.wikipedia.org/wiki/C%2B%2B> Acesso em 10 Jun 2013. • Linguagem C.Disponível em: <http://pt.wikipedia.org/wiki/C_(linguagem_de_progr ama%C3%A7%C3%A3o)> A acesso em 24 mai 2013. • Linguagem Basic.Disponível em :< http://pt.wikipedia.org/wiki/BASIC> Acesso em 23 mai 2013. Fontes. (II) • Llinguagem COBOL. Disponível em: <https://pt.wikipedia.org/wiki/Cobol> acesso em 20 mai 2013. • Llinguagem Fortran. Disponível em:<https://pt.wikipedia.org/wiki/Fortran> acesso em 08 mai 2013. • ANDRADE G. O que são linguagens de programação. <http://www.infoescola.com/informatica/o-que-saolinguagens-de-programacao/>. acesso em 05 mai 2013. Fontes.(III) • MORIMOTO C. E. linguagens de programação. • <http://www.hardware.com.br/artigos/linguagensprogramacao/> acesso em 05 mai 2013. • <http://www.slideshare.net/RodrigoGonalves8/linguag em-da-programao-9144180> acesso em 9 Jun 2013. • <http://pipeless.blogspot.com.br/2009/01/programaoestruturada-versus-programao.html> acesso em 9 Jun 2013. • <http://pt.scribd.com/doc/2625512/ProgramacaoOrientada-a-Aspectos> acesso: em 12 Jun 2013. Fontes.(IV) • <http://www.inf.pucrs.br/~gustavo/disciplinas/pli/mate rial/paradigmas-aula12.pdf > acesso em 9 Jun 2013. • DAVID F.M< http://www.hardware.com.br/artigos/programacaoorientada-objetos >acesso em 9 Jun 2013. • http://www.slideshare.net/rafaelcianci/atpsparadigmas-da-linguagem-12575783 acesso em 24 maio 2013. Vídeos. • Vídeo Aula de Orientação a Objetos: <http://www.youtube.com/watch?v=t9Cd7EWL0eo> • Orientação a Objetos - Aprenda de uma forma simples : <http://www.youtube.com/watch?v=hnrQR7Pgak> Paradigma Estruturado: <http://www.youtube.com/watch?v=gHYs4YKUI6U>