apresentação do powerpointrogerio/material_auxiliar/clp20122... · 2014-03-17 · história 1950...

35
Conceitos de Linguagens de Programação - Características Paavo Soeiro

Upload: others

Post on 10-Apr-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Conceitos de

Linguagens de

Programação -

Características Paavo Soeiro

Page 2: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Motivação Para que possa escolher uma linguagem

apropriada ao problema.

Melhorar o entendimento da linguagem utilizada.

Facilitar o aprendizado de uma nova linguagem.

Fazer um melhor uso de determinada linguagem.

Facilitar o projeto de uma nova linguagem, ou uma

nova funcionalidade.

Page 3: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Pré-história

1842-1843

Ada Lovelace criou um

algoritmo para o cálculo

da sequência de Bernoulli

usando a máquina

analítica de Charles

Babbage

Page 4: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

História 1950 a 1960

1954 – FORTRAN

Desenvolvida pela IBM por uma equipe

liderada por John W. Backus.

1958 – LISP

Desenvolvida por John McCarthy durante um

projeto de pesquisa em inteligência artificial.

1959 – COBOL

Criado por um comitê de investigadores de

várias instituições civis e governamentais

Page 5: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

1967 a 1978 Nascimento dos paradigmas fundamentais

1962 – Simula

1964 – BASIC

1970 – Pascal

1969 a 1973 – C Dennis Ritchie, no AT&T Bell Labs

1972 – Smalltalk Orientação a objetos

1972 – Prolog Programação logica

Page 6: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

1980

Módulos, performance

1983 – Ada

Sistemas modulares

1983 – C++

Fortalecimento da orientação a objetos

1987 – Perl

Page 7: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

1990 – Era da Internet

1990 – Haskell

1991 – Python

1991 – Java

1993 – Ruby

1993 – Lua

1995 – JavaScript

1995 – PHP

2000 – C#

Page 8: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Fonte: TIOBE

Page 9: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Objetivos

Permitir que uma pessoa escreva

programas que ajudem a resolver

problemas.

Facilitando a comunicação entre o

programador e a máquina.

Page 10: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Programação estruturada

Programação modular

Programação orientada a objetos

Programação linear

Page 11: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Paradigma

Paradigma Imperativo:

Procedural

Estrutura de blocos

Orientação a objetos

Computação distribuída

Paradigma Declarativo:

Funcional

Lógica

Page 12: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Grau de abstração

Linguagem de programação de baixo nível

Assembly

Linguagem de programação de médio nível

C

Linguagem de programação de alto nível

Java

Page 13: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Geração

Segundo Henri Bal e Dick Grune:

Primeira geração - linguagem de máquina.

Segunda geração - linguagens de montagem (assembly).

Terceira geração - Linguagens procedurais.

Quarta geração - Linguagens aplicativas.

Quinta geração - Linguagens voltadas a Inteligência artificial como as linguagens lógicas (Prolog) e as linguagens funcionais (Lisp).

Sexta geração - Redes neurais.

Page 14: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Interpretada x Compilada

Interpretada:

Programa é executado instrução a

instrução

Cada comando é traduzido depois

executado

Compilada:

Programa é executado somente após a

tradução completa do código fonte.

Page 15: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Características

Simplicidade

Abstração de dados

Ortogonalidade

Expressividade

Eficiência

Portabilidade

Leitura

Confiabilidade

Page 16: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Abstração de dados

Descrever famílias de objetos focando

nos aspectos fundamentais, sem entrar

em possíveis detalhes específicos sobre

um objeto em particular.

A abstração de dados torna-se cada fez

mais importante a medida que o grau de

complexidade do problema aumenta.

Page 17: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Encapsulamento

Técnica que permite a separação de

aspectos internos e externos de um

objeto.

Impedir o acesso direto aos atributos.

Provê métodos de acesso para esses

atributos.

Page 18: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Herança

Permite que características comuns a um

grupo de classes, seja encapsulado em

uma superclasse, a qual é estendida em

subclasses que herdam as características

da classe base e adiciona características

especificas.

Herança simples

Herança múltipla

Page 19: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Polimorfismo

“Muitas formas”

Permite que classes derivadas de uma

classe base invoquem métodos com

mesma assinatura, porem com

comportamentos diferentes.

Page 20: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Tipos de polimorfismo

Inclusão – O mais básico, ponteiro (referencia) da classe pai, aponta para instancia da classe filha.

Animal animal = new Cachorro();

Paramétrico

Generics em Java

Sobrecarga

Coerção

Casting implicito

Page 21: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Escopo de variáveis

Escopo diz respeito a visibilidade de uma

variável.

Qual porção de código enxerga a variável?

O escopo pode ser:

Dinâmico

Estático

Quanto a visibilidade:

Local

Global

Page 22: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

C vs Java

Características Gerais:

C

Paradigma procedural

Compilado

Java

Orientado a objetos

Hibrido (bytecode + interpretador)

Page 23: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Tipos de dados int

float

double

char

int

float

double

char

byte

short

long

boolean

Page 24: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Estruturas de repetição e controle if

else

switch

for

while

do while

break

continue

return

if

else

switch

for

while

do while

break

continue

return

try

catch

finally

Page 25: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Palavras reservadas C

Page 26: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Java

Reservadas porem não utilizadas

Page 27: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Operadores aritméticos Operador binário Descrição

= Atribuição

+ Soma

- Subtração

/ Divisão

% Modulo (obtém o resto da divisão)

Page 28: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Incremento e decremento Operador Instrução Pós-fixado Pré-fixado

++ var = var+1;

var = var++;

ou

var++;

var = ++var;

ou

++var;

-- var = var-1;

var = var--;

ou

var--;

var= --var;

ou

--var;

Page 29: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Relacional

Operador Descrição

> Maior

>= Maior igual

< Menor

<= Menor igual

== Igualdade

!= Diferente

Page 30: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Logico

Operador Descrição

&& AND

|| OR

! NOT (operador de negação)

Page 31: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Bit a bit

Operador Descrição

& AND

| OR

^ XOR (OR exclusivo)

<< Deslocamento para esquerda

>> Deslocamento para direita

Page 32: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Portabilidade

O programa em C precisa é distribuído

em formato binário executável e precisa

ser compilado em cada arquitetura que

for executado.

Em Java, o programa é distribuído em

bytecode e necessita de uma maquina

virtual para ser executado.

Page 33: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Segurança

O programador C possui mais liberdades

ao escrever seus códigos.

Ex.: acessando regiões de memoria fora

do escopo da aplicação por meio de

ponteiros.

Page 34: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Encapsulamento

Java prove mecanismos de

encapsulamento:

public

protected

private

C

Através de struct

Page 35: Apresentação do PowerPointrogerio/material_auxiliar/CLP20122... · 2014-03-17 · História 1950 a 1960 1954 – FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W

Aplicações

C

kernel Linux

Excel

Java

Netbeans