Curso Superior em Análise e Desenvolvimento de Sistemas História da Ciência e da Tecnologia - (HCT) Linguagens de Programação Alunas: Érika H. Gamas Flávia G. Pereira Melissa B. Alcantud Thaynara da Silva
I Introdução às Linguagens de Programação - São linguagens usadas para a comunicação com o computador. -São constituídas de comandos, que quando utilizados corretamente, executam uma ação. - A programação não tem uma data correta de início. - Começou na década de 30, com os primeiros computadores elétricos.
I Surgimento das primeiras Linguagens Linguagem Plankalkul - Foi criada em 1942, a primeira linguagem de programação. - Considerada uma revolução na dinâmica das linguagens de programação. - Introduziu técnicas como: - Atribuições. - Expressões aritméticas. - Adição dos tipos derivados(inteiros, real, arranjos). - Laços e repetição.
I Surgimento das primeiras Linguagens - Foi na década de 50 que as primeiras linguagens modernas surgiram. - Assembly: Entender o funcionamento da máquina para conseguir lidar com tal linguagem. - Em comparação com a programação em código binário, é uma linguagem bem mais fácil de entender e utilizar.
I Surgimento das primeiras Linguagens Fortran: - Desenvolvida John Backus. - Surge em 1957 como uma alternativa mais prática à linguagem Assembly. - Base de desenvolvimento de diversas outras linguagens como por exemplo C.
I Surgimento das primeiras Linguagens LIST - Inicialmente criada por John McCarthy em 1958. - Diversas versões e desenvolvimentos, Principal linguagem utilizada para a exploração de inteligência artificia. ALGOL - Projeto que desenvolvesse uma linguagem universal, independente de máquina. - Três projetos: Algol 58. Algol 60. Algol 68.
I Surgimento das primeiras Linguagens COBOL - Linguagem criada em 1959 por um comité de investigadores de vários sectores. - Propósito a utilização com fins comerciais, financeiros e administrativos para empresas.
Surgimento das primeiras Linguagens PASCAL - Desenvolvida entre 1968/69 por Niklaus Wirth, professor da Faculdade Politécnica de Zurique na Suíça. - Forma de ensinar programação estruturada e é muito baseada em ALGOL.
Surgimento das primeiras Linguagens Small Talk - Desenvolvida em 1969 e lançada em 1972. C - Desenvolvida entre 1969 e 1973 por Dennis Ritchie para ser utilizada com o sistema operativo Unix. - É das linguagens mais utilizadas. - Influenciou outras linguagens como C++, que surgiu inicialmente como uma extensão para C.
Surgimento das primeiras Linguagens - Nos anos 90, a internet surgiu como um furacão, e mudou totalmente o rumo da programação. PYTHON - Criada por Guido van Rossum em 1991. -Torna o trabalho do programador relativamente mais simples. JAVA - Desenvolvida em 1995 por James Gosling. - Deriva das linguagens C e C++.
Surgimento das primeiras Linguagens JAVASCRIPT - Surge em 1995, criada por Brendan Eich. Actualmente é a principal linguagem para programação client-side utilizada em navegadores web. PHP - Importante para o desenvolvimento de aplicativos para WEB. Surgiu em 1995 para substituir scripts Perl que Rasmus Lerdorf (criador do PHP) utilizava na sua página pessoal.
I Paradigmas da Programação Introdução - O termo paradigma significa modelo. - Definição de um padrão a ser seguido. - Determina forma como o programador deve estruturar as instruções em uma dada linguagem. - São dois os principais paradigmas da programação atualmente, a programação imperativa e declarativa.
I Programação Imperativa - Preocupação quanto ao detalhamento do funcionamento do programa. - O programa é visto como um conjunto de rotinas e sub-rotinas. - Foco maior em como um programa deve executar uma tarefa. - Em vez de focar em o que o programa deve fazer.
I Subparadigmas - Pode-se encontrar alguns dos subparadigmas mais empregados atualmente: a programação estruturada, orientada a objetos e a concorrente.
I Estruturada Introdução - Instruções, estruturas de dados e sub-rotinas. - Sequência, decisão e interação. Exemplos - Algumas das linguagens Consideradas estruturadas são: Pascal,C, COBOL e Fortran.
I Estruturada Vantagens - São linguagens mais fáceis de aprender. - Conceitos pequenos e distintos. - Facilita o desenvolvimento e manutenção de sistemas. - São úteis na resolução de problemas mais simples.
I Estruturada Desvantagens - Dificuldades na representação de soluções para certos problemas do mundo real. - Apresentam baixa manutenabilidade em problemas mais complexos. - Conceitos como herança e polimorfismo poderiam ajudar a abstrair certas partes dos mesmos.
I Orientada a Objetos Introdução - Necessidade de compreender o problema por meio da relação existente entre as diversas classes que participam do mesmo. - A solução para o problema deve ser implementada levando-se em consideração os objetos e suas interações que sejam pertinentes ao universo do problema. Exemplos - Alguns exemplos são C++, Object Pascal e Java.
I Orientada a Objetos Vantagens - Organização do código, separado em classes e bibliotecas. - Melhor reaproveitamento do código, por meio de conceitos como herança. Funcionário Gerente Secretária Telefonista
I Orientada a Objetos Desvantagens - Apresenta um maior número de conceitos e abstrações. - Pode tornar seu aprendizado um pouco mais complexo.
I Concorrente Introdução - Com o desenvolvimento da tecnologia, surgiu o conceito do paralelismo. A possibilidade de executar mais de uma tarefa paralelamente, por meio de vários núcleos processadores, ou por meio de um só. - Desenvolver programas visando esse cenário, onde processos executam simultaneamente e concorrem por recursos, como a memória e o próprio processamento. Exemplos - Várias linguagens oferecem suporte à programação concorrente, como Java, C#,C++, C e Object Pascal.
I Concorrente Vantagens - Aumento do desempenho. - Possibilidade de melhor modelagem dos programas. - Determinados problemas computacionais são concorrentes por natureza.
I Concorrente Desvantagens - Programação mais complexa. - Possíveis erros decorrentes da própria concorrência.
Programação Declarativa - Apresenta-se como um paradigma oposto ao paradigma imperativo, uma vez que se preocupa com o que deve fazer, em vez de preocupar-se com como deve ser feito. - Na programação declarativa, não há a ideia de estado do programa, como ocorre na programação imperativa. - Dentro do paradigma declarativo, podemos identificar a programação funcional, a programação lógica e a programação restritiva.
Funcional - A programação funcional busca descrever o programa em torno de funções. - O código-fonte de um programa escrito em linguagem funcional pode ser interpretado como um conjunto de funções que recebem zero ou mais argumentos como entrada e retornam sempre um valor em sua saída. - Cada função, então, deve realizar um conjunto de operações sobre os parâmetros de entrada a fim de obter a saída. Exemplos APL, Lisp, ML, Haskell, OCaml e F#.
Funcional Vantagens - Há uma maior transparência referencial. - Uma vez que todo o programa é composto por funções, tornando-se mais fácil efetuar uma inspeção do código. Desvantagens - não oferece alocação explícita de memória ou declaração explícita de variáveis, necessários para a resolução de muitos problemas reais.
Lógica Esta é a abordagem da programação que faz forte uso da lógica matemática para a resolução de problemas, geralmente por meio de valores ou objetos e relações entre os mesmos, formulando-se assim proposições e regras. Exemplos Linguagens lógicas: Planner e Prolog. - Linguagens de programação derivadas de Planner: QA-4, Popler, Conniver e Qlisp. - Linguagens de programação derivadas de Prolog: Mercury, Visual Prolog, Oz e Frill.
Lógica Vantagens - Muito úteis em problemas que possam ser resolvidos por meio de dedução ou inferência. Desvantagens - Pode haver explosão combinatorial da base de conhecimento levando a grande desperdício de recursos computacionais.
Nível de facilidade de programação Baixo Nível - É a linguagem de máquina e a linguagem Assembler. Ou seja, a programação feita diretamente no nível de microarquitetura. Alto Nível Algorítmicas, imperativas, prescritivas, procedimentais (apoiadas sobre processos), determinísticas e quantitativas. Papel determinante do cálculo numérico.
Nível de facilidade de programação Nível Médio Alguns autores e pesquisadores consideram a linguagem C de médio nível e não de alto nível, devido aos seus recursos de uso direto da máquina e fácil interface com a linguagem de máquina.
Classificação e aplicação - Científicas ARGOL, FORTRAN, MATLAB; - Comerciais Cobol, Dataflex, Forms Developers; - Processamento de Listas LISP; - Gerais Pascal, C, Visual Basic; - Inteligência Artificial PROLOG; - Aplicativos para Internet PHP, Java, HTML;
Bibliografia PEREIRA,F. A história das linguagens de programação. <http://homepages.dcc.ufmg.br/~fernando/classes/dcc024/ementa/reading Mat/historyPL.pdf>. Acesso em: 12 jun. 2015. JORNAL PET NEWS. História da computação. Disponível em: <http://www.dsc.ufcg.edu.br/~pet/jornal/novembro2012/materias/historia_ da_computacao.html>. Acesso em: 10 jun. 2015. INFOESCOLA. História da programação. Disponível em: <http://www.infoescola.com/informatica/historia-da-programacao/>. Acesso: 12 jun. 2015. História das linguagens de programação. Disponível em: http://www.ppgia.pucpr.br/~alekoe/apb/historia-justino.pdf. Acesso em: 12 jun. 2015. HARDWARE.COM.BR. Linguagens de programação. Disponível em: <http://www.hardware.com.br/artigos/linguagens/>. Acesso em: 10 jun. 2015.
Bibliografia INFOESCOLA. O que são linguagens de programação.disponível em: <http://www.infoescola.com/informatica/o-que-sao-linguagens-deprogramacao/>. Acesso em: 09 jun. 2015.