Paradigmas de Linguagem de Programação -...

32
9/8/2018 1 Paradigmas de Linguagem de Programação Evolução das Linguagens de Programação Histórico das Linguagens de Programação Década de 40: código de máquina No início da década não havia nenhuma linguagem de programação de alto nível e nem linguagem de montagem; Problemas no desenvolvimento com código de máquina motivaram inventar os assemblers e as linguagens de montagem; “Problemas que demoravam duas semanas para rodar em código de máquina, podiam ser programados em algumas horas usando Speedcoding”. Linguagens Short code, Speedcoding. Professor Ariel da Silva Dias - www.arieldias.com

Transcript of Paradigmas de Linguagem de Programação -...

Page 1: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

1

Paradigmas de Linguagem de ProgramaçãoEvolução das Linguagens de Programação

Histórico das Linguagens de Programação

▪ Década de 40: código de máquina▪ No início da década não havia nenhuma linguagem de programação de alto nível e

nem linguagem de montagem;

▪ Problemas no desenvolvimento com código de máquina motivaram inventar osassemblers e as linguagens de montagem;

▪ “Problemas que demoravam duas semanas para rodar em código de máquina,podiam ser programados em algumas horas usando Speedcoding”.

▪ Linguagens

▪ Short code, Speedcoding.

Professor Ariel da Silva Dias - www.arieldias.com

Page 2: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

2

Histórico das Linguagens de Programação

▪ Década de 50: Programação Alto Nível▪ Formatação de entrada e saída;▪ Nome de variáveis de até 6 caracteres (no Fortran 1, pois no Fortran 0 eram apenas 2

caracteres);▪ Instrução de seleção IF e a instrução DO LOOP;▪ Interesse por IA em meados do século;

▪ Fortran mudou drasticamente e para sempre o uso de computadores.

▪ Linguagens▪ Primeira linguagem de alto nível compilada (Imperativa): Fortran▪ Linguagem para Inteligência Artificial (Funcional): LISP

Professor Ariel da Silva Dias - www.arieldias.com

Histórico das Linguagens de Programação

▪ Década de 60: Independência de Arquitetura▪ Algol influenciou as linguagens de programação subsequente;▪ Permitiu dois meios diferentes de passagem de parâmetros: por valor e por nome;▪ Permitiu que os procedimentos fossem recursivos;▪ Surge o acesso por terminal remoto a um computador (antes disso, a maioria dos

programas eram introduzidos por cartão perfurados ou fita de papel);

▪ Linguagens▪ Paradigma Estruturado: ALGOL▪ Paradigma Orientado a Objeto: COBOL▪ Paradigma Procedural: Basic

Professor Ariel da Silva Dias - www.arieldias.com

Page 3: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

3

Histórico das Linguagens de Programação

▪ Década de 70: Simplicidade de Projeto▪ Linguagem mais segura – PASCAL;

▪ A academia troca o ensino do FORTRAN para PASCAL;

▪ Pouca contribuição para o desenvolvimento de novas linguagens;

▪ Instruções de controle adequadas e facilidades de estruturação de dados;

▪ Linguagens▪ Paradigma Estruturado: PASCAL

▪ Paradigma Imperativo: C

Professor Ariel da Silva Dias - www.arieldias.com

Histórico das Linguagens de Programação

▪ Década de 80: modularização▪ Ênfase em mecanismos de LP e abstrações

▪ Correção de programas: verificação de tipos, exceções

▪ Programação em tempo real, e concorrente e distribuída

▪ Programação orientada a objetos (herança)

▪ Linguagens▪ Programação distribuída: ADA 83

▪ Orientada a Objetos: Smalltalk

Professor Ariel da Silva Dias - www.arieldias.com

Page 4: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

4

Histórico das Linguagens de Programação

▪ Década de 90: base na estrutura▪ Estruturação de Dados: encapsulamento▪ Estruturação da Computação: classe▪ Estruturação do Programa: classes e objetos▪ Programação para Internet: plataforma neutra

▪ Linguagens▪ Object Pascal▪ C++▪ ADA 95▪ Java

Professor Ariel da Silva Dias - www.arieldias.com

Histórico das Linguagens de Programação

Professor Ariel da Silva Dias - www.arieldias.com

Page 5: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

5

Classificação das Linguagens de Programação

1 – Quanto ao Nível

2 – Quanto a Geração

3 – Quanto ao Paradigma

Professor Ariel da Silva Dias - www.arieldias.com

Classificação das LPs - Quanto ao Nível

1.1 – Baixo Nível

1.2 – Médio Nível

1.3 – Alto Nível

Professor Ariel da Silva Dias - www.arieldias.com

Page 6: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

6

Classificação das LPs - Quanto ao Nível – Baixo Nível

▪ São linguagens voltadas para a máquina;

▪ Genericamente são chamadas de linguagens Assembly.

Professor Ariel da Silva Dias - www.arieldias.com

Classificação das LPs - Quanto ao Nível – Baixo Nível

▪ Vantagens: Maior velocidade de processamento; ocupa menos espaço namemória.

▪ Desvantagens: Pouca portabilidade, logo, um código gerado para um tipo deprocessador não serve para outro; difícil de ser programado.

Professor Ariel da Silva Dias - www.arieldias.com

Page 7: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

7

Classificação das LPs - Quanto ao Nível – Médio Nível

▪ São linguagens voltadas ao ser humano e a máquina;

▪ Possuem comandos muito simples e outros muito complicados;

▪ Exemplo: Linguagem C – Pode-se acessar registros do sistemas, acessardiretamente a memória e, ao mesmo tempo, realizar operações de alto nívelcomo condicionais e estrutura de repetição.

Professor Ariel da Silva Dias - www.arieldias.com

Classificação das LPs - Quanto ao Nível – Baixo Nível

▪ Vantagens: Linguagens poderosas, permitindo o desenvolvimento de diversostipos de softwares, desde os mais simples aos mais complexos.

▪ Desvantagens: Alguns comandos com sintaxe muito difícil de compreender.

Professor Ariel da Silva Dias - www.arieldias.com

Page 8: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

8

Classificação das LPs - Quanto ao Nível –Alto Nível

▪ São linguagens voltadas ao ser humano;

▪ Utilizam sintaxe mais estruturada, tornando o seu código mais fácil de entendere de reparar;

▪ São linguagens independentes da arquitetura do computador*;

Professor Ariel da Silva Dias - www.arieldias.com

Classificação das LPs - Quanto ao Nível – Alto Nível

▪ Vantagens: por serem compiladas ou interpretadas, possuem maiorportabilidade, podendo ser executadas em várias plataformas com o mínimo dealterações; Por ser uma linguagem menos estruturada, a programação torna-semais fácil

▪ Desvantagens: As rotinas geradas (em linguagem de máquina) são maisgenéricas e, por tanto, mais complexas e assim, são mais lentas e ocupam maismemória.

Professor Ariel da Silva Dias - www.arieldias.com

Page 9: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

9

Classificação das LPs - Quanto a Geração

2.1 – 1ª Geração

2.2 – 2ª Geração

2.3 – 3ª Geração

2.4 – 4ª Geração

2.5 – 5ª Geração

Professor Ariel da Silva Dias - www.arieldias.com

Classificação das LPs - Quanto a Geração – Primeira Geração

▪ Os primeiros computadores eram programados em linguagem de máquina, emnotação binária

▪ A instrução 0010 0001 0110 1100, quando executada, realiza a soma do valorarmazenado no registrador 0001, com o dado armazenado na posição dememória 01101100

Professor Ariel da Silva Dias - www.arieldias.com

Page 10: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

10

Classificação das LPs - Quanto a Geração – Segunda Geração

▪ Compreende as linguagens simbólica ou de montagem (Assembly);

▪ Foi projetada para minimizar as dificuldades da programação em notação binária

▪ Códigos de operação e endereços binários foram substituídos por mnemônicos: mov,mul, add, label, goto

▪ Assim, a instrução de máquina 0010 0001 0110 1100 evoluiu para:

ADD R1, Total

Professor Ariel da Silva Dias - www.arieldias.com

Classificação das LPs - Quanto a Geração – Segunda Geração

Professor Ariel da Silva Dias - www.arieldias.com

Page 11: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

11

Classificação das LPs - Quanto a Geração – Segunda Geração

Projeto em Delphi ➔ 22 linhas, revertendo para Assembly terá aproximadamente 15 mil linhas!

Professor Ariel da Silva Dias - www.arieldias.com

Classificação das LPs - Quanto a Geração – Terceira Geração

▪ Linguagem orientada ao usuário

▪ Surgiram na década de 60

▪ Algumas são voltadas a solução de problemas científicos: Fortran, Pascal, Algol.

▪ Outras são voltadas para solução de problemas comerciais: Cobol

▪ Linguagens Procedimentais (procedurais ou imperativas) e Linguagens Declarativas

Professor Ariel da Silva Dias - www.arieldias.com

Page 12: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

12

Classificação das LPs - Quanto a Geração – Terceira Geração

▪ Linguagem Procedimentais: o programa específica uma sequência de passos(procedimentos) para solucionar um problema

▪ As instruções pertencem geralmente a três classes:

- instruções de entrada e saída

- instruções de cálculos aritméticos e lógicos

- instruções de controle de fluxo de execução.

Professor Ariel da Silva Dias - www.arieldias.com

Classificação das LPs - Quanto a Geração – Terceira Geração

▪ Linguagens Declarativas: dividem-se em duas classes:

▪ Funcionais

- Baiseiam-se na teoria das funções recursivas (LISP)

▪ Lógicas

- A base é a lógica matemática, um programa declara fatos (dados e relações entreeles) e cláusulas lógicas (regras de dedução), permitindo deduzir novas verdades(PROLOG)

Professor Ariel da Silva Dias - www.arieldias.com

Page 13: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

13

Classificação das LPs - Quanto a Geração – Terceira Geração

Exemplo Prolog:

gosta(joão,flores).gosta(joão,maria).gosta(paulo,maria).

Em seguida realizaremos uma questão:?- gosta(joão,X).

Professor Ariel da Silva Dias - www.arieldias.com

Classificação das LPs - Quanto a Geração – Terceira Geração

Exemplo Prolog:

Dados os fatos:pai(arthur,silvio).pai(arthur,carlos).pai(carlos,xico).pai(silvio,ricardo).

Utilizaremos a seguinte regra:avo(X,Z) :- pai(X,Y), pai(Y,Z).

Se colocarmos as querys abaixo, qual serão as saídas (YES ou NO)?

?- avo(arthur,xico),avo(arthur,ricardo).

?- avo(carlos,arthur),avo(silvio,arthur).

Professor Ariel da Silva Dias - www.arieldias.com

Page 14: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

14

Classificação das LPs - Quanto a Geração – Terceira Geração

Professor Ariel da Silva Dias - www.arieldias.com

Classificação das LPs - Quanto a Geração – Quarta Geração

▪ Linguagens orientadas à aplicação

▪ Os programas escritos em linguagens de quarta geração necessitam de menornúmero de linhas de código

▪ Em geral, essas linguagens são projetadas para atender a classes específicas deaplicações

▪ Facilita a programação e o produto final é intuitivo para o usuário*

▪ Mais agilidade para o desenvolvimento de aplicações

▪ Minimiza o problema de depuração

▪ Exemplo de linguagens: SQL, PHP

Professor Ariel da Silva Dias - www.arieldias.com

Page 15: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

15

Classificação das LPs - Quanto a Geração – Quinta Geração

▪ São usadas principalmente na área de IA – sistemas especialistas, processadoresde linguagem natural e sistemas com bases de conhecimento

▪ Facilitam a representação do conhecimento que é essencial para a simulação decomportamentos inteligentes

▪ Armazena conhecimento complexo de modo que a máquina pode obterinferências a partir da informação codificada

Professor Ariel da Silva Dias - www.arieldias.com

Classificação das LPs – Quanto ao Paradigma

Dicionário:

1. Algo que serve de exemplo geral ou de modelo;

2. Conjunto das formas que servem de modelo de derivação ou de flexão;

3. Conjunto dos termos ou elementos que podem ocorrer na mesma posição ou contexto de uma estrutura.

Professor Ariel da Silva Dias - www.arieldias.com

Page 16: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

16

Classificação das LPs – Quanto ao Paradigma

▪ Forma utilizada para resolver um problema computacional;

▪ O paradigma de uma linguagem de programação é a sua identidade

Pode dizer-se que um paradigma é um ponto de vista que determina como uma realidade é entendida e como se atua sobre ela

Professor Ariel da Silva Dias - www.arieldias.com

Classificação das LPs – Quanto ao Paradigma

Algumas linguagens criadas durante a história, introduziram novas formas de sepensar sobre programação, resultando em formas (paradigmas) distintas desoluções para problemas de algoritmos

Fortran: imperativa

LISP: funcional

Simula: orientada a objetos

Prolog: lógica

Professor Ariel da Silva Dias - www.arieldias.com

Page 17: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

17

Classificação das LPs – Quanto ao Paradigma

▪ Outras linguagens são evolução de linguagens mais antigas

▪ Exemplo: Linguagem C++ ➔ Trata-se de uma evolução da linguagem C (imperativa)com características de orientação a objetos, importadas de Simula

▪ Exemplo: Linguagem C++ ➔ Paradigma orientada a objetos + paradigma concorrente

▪ Exemplo: ADA ➔ Paradigma Imperativo + paradigma concorrente

Professor Ariel da Silva Dias - www.arieldias.com

Classificação das LPs – Quanto ao Paradigma

Professor Ariel da Silva Dias - www.arieldias.com

Page 18: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

18

Alguns dos Principais Paradigmas

▪ Paradigma Imperativo (estado, atribuição, sequência)▪ Basic, Pascal, C, Assembly, ADA

▪ Paradigma Funcional (função, aplicação, avaliação)▪ Lisp, Miranda, Haskell, SCHEME

▪ Paradigma Lógico (relação, dedução)▪ Prolog

▪ Paradigma Orientado a Objetos (objeto, troca de mensagem)▪ C++, JAVA, Eiffel, Ocaml, Python

▪ Paradigma Concorrente (processo, comunicação – síncrona ou assíncrona)▪ Ada, JAVA

Professor Ariel da Silva Dias - www.arieldias.com

Histórico das Linguagens de Programação

▪ As linguagens a seguir foram selecionadas com base nos rankings TIOBE e IEEESpectrum;

▪ Como os rankings sofrem atualizações constantes, serão apresentadas aslinguagens que ficaram nos primeiros lugares e outras com tendência de subir noranking.

Professor Ariel da Silva Dias - www.arieldias.com

Page 19: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

19

Ranking IEEE Spectrum

Figura1 – Ranking IEEE Spectrum (2017)

Professor Ariel da Silva Dias - www.arieldias.com

Ranking IEEE Spectrum

Figura2 – Ranking IEEE Spectrum – WEB (2017)

Professor Ariel da Silva Dias - www.arieldias.com

Page 20: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

20

Ranking IEEE Spectrum

Figura3 – Ranking IEEE Spectrum – MOBILE (2017)

Professor Ariel da Silva Dias - www.arieldias.com

Ranking IEEE Spectrum

Figura4 – Ranking IEEE Spectrum – Acadêmico e Empresarial (2017)

Professor Ariel da Silva Dias - www.arieldias.com

Page 21: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

21

Ranking IEEE Spectrum

Figura5 – Ranking IEEE Spectrum – Embarcado (2017)

Professor Ariel da Silva Dias - www.arieldias.com

Ranking TIOBE

Figura6 – Ranking TIOBE (2017)

Professor Ariel da Silva Dias - www.arieldias.com

Page 22: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

22

▪ História▪ Década de 70: Dennis Ritchie – AT&T Bell Labs;

▪ Seu uso inicial ficou restrito a alguns laboratórios;

▪ 1978 - Kernighan e Ritchie lançaram o livro The C ProgrammingLanguage;

▪ A partir desta publicação, C ganhou novas características: Bibliotecapadrão de I/O, structs, long int, unsign int;

▪ De 1983 a 1989 comitê ANSI.

▪ Características▪ Paradigma Imperativo;

▪ Acesso direto a memória e disco.

C (2º IEEE, 2º TIOBE)

Professor Ariel da Silva Dias - www.arieldias.com

#include <stdio.h>

int main(void)

{

for(int i=0; i<4; i++)

printf("Hello, world!\n");

return 0;

}

Hello, World!

Professor Ariel da Silva Dias - www.arieldias.com

Page 23: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

23

▪ História▪ Década de 80: Bjarne Stroustrup;

▪ Objetivo inicial era criar uma nova versão para o Kernel Unix;

▪ Durante o desenvolvimento do novo kernel, novas funcionalidadesforam adicionadas a linguagem C;

▪ O nome inicial era C com classes, 3 anos depois passou a ser chamadade C++.

▪ Características▪ Multi-Paradigma;

▪ Compatibilidade com C;

▪ Portabilidade.

C++ (4º IEEE, 3º TIOBE)

Professor Ariel da Silva Dias - www.arieldias.com

#include <iostream>

int main()

{

for(int i=0; i<4; i++)

std::cout << "Hello, world!\n";

}

Hello, World!

Professor Ariel da Silva Dias - www.arieldias.com

Page 24: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

24

▪ História▪ Década de 90: Projeto Green – Sun Microsystem;

▪ Criar novas tecnologias que permitissem a comunicação entrediferentes dispositivos (TV, vídeo cassete, etc);

▪ O projeto não deu certo – origem à Linguagem Java;

▪ A expansão da internet permitiu o crescimento e popularização dalinguagem.

▪ Características▪ Sintaxe similar a outras mais antigas como C e C++;

▪ Paradigma Orientado a Objetos;

▪ Portabilidade: WORA.

JAVA (3º IEEE, 1º TIOBE)

Professor Ariel da Silva Dias - www.arieldias.com

import java.util.*;

import java.lang.*;

class Rextester

{

public static void main(String args[])

{

for(int i=0; i<4; i++)

System.out.println("Hello, World!");

}

}

Hello, World!

Professor Ariel da Silva Dias - www.arieldias.com

Page 25: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

25

▪ História▪ Início dos anos 90 – Instituto de Pesquisa Nacional para Matemática e

Ciência da Computação (CWI) – Países Baixos;

▪ Parte da sintaxe deriva de C;

▪ Terceira versão da linguagem foi lançada em dezembro de 2008;

▪ Características▪ Legibilidade do código, com sintaxe moderna e clara;

▪ Suporte a múltiplos paradigmas de programação;

▪ Poema: The Zen of Python

Python (1º IEEE, 5º TIOBE)

Professor Ariel da Silva Dias - www.arieldias.com

for x in range(0, 4):

print ("Hello, World!")

Hello, World!

Professor Ariel da Silva Dias - www.arieldias.com

Page 26: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

26

▪ História

▪ JavaScript ≠ Java;

▪ Desenvolvida pela Netscape com nome de LiveScript;

▪ Criada para navegadores com objetivo de proporcionar maiorinteratividade nas páginas;

▪ Sua última versão é de março de 2011;

▪ Influenciada por C e Java;

▪ Características

▪ Não é exatamente uma linguagem de programação;

▪ Pode ser executada dentro de programas ou dentro de outras linguagens;

▪ Client-Side.

JavaScript (7º IEEE, 7º TIOBE)

Professor Ariel da Silva Dias - www.arieldias.com

for (var i = 0; i < 4; i++) {

print("Hello, world!")

}

Hello, World!

Professor Ariel da Silva Dias - www.arieldias.com

Page 27: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

27

▪ História▪ Criada em 1994;▪ Em 1997 foi lançado um pacote trazendo um interpretador de comandos

SQL;▪ A terceira versão (PHP 3) contava com o recurso de orientação a objetos;▪ Em 1998, Zeev e Gutmans escreveram o PHP 4, abandonando

completamente o PHP 3;▪ O PHP 5 veio para corrigir algumas falhas em relação a OO presente no

PHP5;

▪ Características▪ Modularizada, ideal para servidores web;▪ Suporte a programação estruturada e a orientação a objetos;▪ Server-side.

PHP (8º IEEE, 6º TIOBE)

Professor Ariel da Silva Dias - www.arieldias.com

<?php

for($i = 0; $i < 4; $i++){

echo "Hello, world! ";

}

?>

Hello, World!

Professor Ariel da Silva Dias - www.arieldias.com

Page 28: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

28

▪ História▪ Julho 2002: Microsoft;▪ Faz parte de um conjunto de ferramentas oferecidas na plataforma .NET, a

qual foi criada para melhorar a comunicação entre diferentes tecnologiasutilizadas pela empresa;

▪ Pensava-se que C# era uma sobreposição de 4 símbolos +;▪ Porém, a cerquilha se refere ao sinal sustenido, o qual aumenta em meio

tom uma nota;▪ Foram realizadas 6 versões, e a sétima está em desenvolvimento.

▪ Características▪ Paradigma orientado a objetos;▪ Interface Web;▪ Componentes de softwares de diferentes linguagens podem interagir;▪ Sintaxe simples e de fácil compreensão.

C# (5º IEEE, 4º TIOBE)

Professor Ariel da Silva Dias - www.arieldias.com

public class Program

{

public static void Main(string[] args)

{

for(int i=0; i<4; i++)

Console.WriteLine("Hello, world!");

}

}

Hello, World!

Professor Ariel da Silva Dias - www.arieldias.com

Page 29: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

29

▪ História▪ Junho de 2011 - JetBrains;

▪ Segundo o criador, Dmitry Jemerov, a maioria das linguagens nãopossuíam as características que eles estavam procurando;

▪ O objetivo era criar uma linguagem que compilasse tão ou mais rápidoque o java;

▪ Em 2017 o google anunciou suporte oficial para o Kotlin;

▪ Características

▪ Paradigma orientado a objetos;

▪ Interoperável com código java;

▪ Influenciada por java, C# e Scala.

Kotlin (- IEEE, 44 TIOBE)

Professor Ariel da Silva Dias - www.arieldias.com

fun main(args: Array<String>) {

for (i in 1..4)

println("Hello, world!")

}

Hello, World!

Professor Ariel da Silva Dias - www.arieldias.com

Page 30: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

30

▪ História▪ Apresentada pela Apple em 2015;

▪ Sua criação levou 5 anos;

▪ A linguagem é uma alternativa a objective-c;

▪ Linguagem open source – liberdade para os programadores;

▪ Características▪ Uso geral;

▪ Multi-paradigmática.

Swift (10º IEEE, 12º TIOBE)

Professor Ariel da Silva Dias - www.arieldias.com

for i in 0..<4 {

print("Hello, world!")

}

Hello, World!

Professor Ariel da Silva Dias - www.arieldias.com

Page 31: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

31

▪ O programador deve escolher a mais adequada para usar em cada aplicação;

▪ A escolha da LP está diretamente ligada a três fatores:▪ Complexidade do sistema a ser desenvolvido;

▪ Características peculiares da aplicação;

▪ Facilidades que as linguagens oferecem ao suporte de metodologias dedesenvolvimento.

Escolha de uma linguagem de programação

Professor Ariel da Silva Dias - www.arieldias.com

▪ Veja a atividade no site www.arieldias.com

Atividade

Professor Ariel da Silva Dias - www.arieldias.com

Page 32: Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula1.pdf · Programação em tempo real, e concorrente e distribuída ... Exemplo de linguagens:

9/8/2018

32

Referências

▪ Material de aula professor Celso Olivete Júnior UNESP

▪ SEBESTA, Robert W. Conceitos de linguagens de programação. 9ª ed. PortoAlegre: Bookman, 2011. 792 p. ISBN 978-85-7780-791-8.

▪ IEEE Spectrum. Disponível em:https://spectrum.ieee.org/computing/software/the-2017-top-programming-languages.

▪ TIOBE. Disponível em: https://www.tiobe.com/tiobe-index/.

Professor Ariel da Silva Dias - www.arieldias.com