Aula 1 – Profª Danielle Costa [email protected].

23
Paradigmas de Linguagens de Programação Aula 1 – Profª Danielle Costa [email protected]

Transcript of Aula 1 – Profª Danielle Costa [email protected].

Page 1: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Paradigmas de Linguagens de Programação

Aula 1 – Profª Danielle [email protected]

Page 2: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Linguagens de Programação (LP)

O objetivo de LPs é tornar mais efetivo o Processo de Desenvolvimento de Software (PDS)

PDS visa geração e manutenção de softwares de modo produtivo e com garantias de padrões de qualidade

Page 3: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Propriedades desejadas em Softwares

Confiabilidade

Manutenibilidade

Eficiência

Desempenho

Page 4: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Propriedades desejáveis em LPs

Legibilidade

Marcadores de Blocosif (x>1)

if (x==2)x=3;

else x=4;

Desvios Incondicionais (goto)

Page 5: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Propriedades desejáveis em LPs

Facilidade de Aprendizado Excesso de Características é Prejudicial

c = c + 1;c+=1;c++;++c;

Eficiência Verificação Dinâmica de Tipos Confiabilidade Tratamento de Exceções

Page 6: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Propriedades desejáveis em LPs

Reusabilidade

Redigibilidade Tipos de Dados Limitados (FORTRAN) Ausência de Tratamento de Exceções

Portabilidade Rigor no Projeto Pode Contrastar com Eficiência

Um dos principais benefícios do POO

Page 7: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Conceitos Básicos

Paradigma

Léxico

Sintaxe

Semântica

Page 8: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Paradigma

Conjunto de regras que estabelecem fronteiras (domínios) e descrevem como resolver os problemas dentro destas fronteiras.

Exemplo ou modelo que servem de norma.

Forma de representar e manipular o conhecimento.

Page 9: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Léxico e Sintaxe

Léxico: é o conjunto de palavras que compõem a linguagem (também chamadas de palavras reservadas)

Sintaxe: em LPs é a forma de suas expressões, de suas instruções e de suas unidades de programas.

Page 10: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Semântica

Em LPs é o significado das expressões, instruções e definição de unidades de programas: Exemplo: a sintaxe do IF no Pascal é:

IF <expressão condicional> THEN <instrução>

Significado: se o resultado da expressão condicional for verdadeiro, excecuta a instrução, do contrário não.

Necessidade de Padronização (ISSO, IEEE, ANSI)

Page 11: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Implementação de LPs

Page 12: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Implementação de LPs

Compilação Eficiência Problemas com Portabilidade e Depuração

Interpretação Pura Flexibilidade, Portabilidade e Facilidade de

Depuração Problemas com Eficiência

Híbrido Une Vantagens dos Outros Métodos JVM

Page 13: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Pense...

Se as linguagens interpretadas são menos eficientes que as linguagens compiladas, por que elas foram criadas e ainda existem?

Page 14: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Paradigmas de LPs

Page 15: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Exemplos

Programação estruturada, em contraste a POO Programação imperativa, em contraste de programação declarativa Programação de passagem de mensagens Programação procedural, em contraste de programação funcional Programação orientada a fluxos, em contraste de programação

orientada a eventos Programação escalar, em contraste de programação vetorial Programação restritiva, que complementa a programação lógica Programação orientada a aspecto Programação orientada a regras Programação orientada a tabelas Programação orientada a fluxo de dados Programação orientada a políticas Programação orientada a testes Programação genérica Programação multiparadigma

Page 16: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Paradigmas de LPs

Imperativo Processo de Mudanças de Estados Variável, Valor e Atribuição Células de Memória

Declarativo Especificações sobre a Tarefa a Ser

Realizada Abstrai-se de Como o Computador é

Implementado

Page 17: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Paradigmas de LPs: Imperativo Estruturado

Refinamentos Sucessivos Blocos Aninhados de Comandos Desestímulo ao uso de desvio incondicional

Orientado a Objetos Abstração de Dados

Concorrente Processos Executam Simultaneamente e

Concorrem por Recursos

Page 18: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Paradigmas de LPs: Estruturado

Funcional Programa Composto por Funções

Matemáticas

Lógico Predicados Dedução Automática

Page 19: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Histórico: Evolução de LPs

Dificuldade de Programação em Linguagens de Máquina

Foco de Primeiras LPs era Eficiência de Processamento e Consumo de Memória

Baixa Produtividade de Programação Programação Estruturada Tipos Abstratos de Dados Orientação a Objetos

Page 20: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Histórico: Evolução de LPs

FORTRAN (1957) aplicações numéricas

LISP (1959) programação funcional

ALGOL (1960) programação estruturada

COBOL (1960) aplicações comerciais

Page 21: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Histórico: Evolução de LPs

BASIC (1964) ensino para leigos

PASCAL (1971) ensino de programação estruturada

simplicidade C (1972)

implementação de UNIX PROLOG (1972)

programação lógica

Page 22: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Histórico: Evolução de LPs SMALLTALK (1972)

programação orientada a objetos ADA (1983)

programação concorrente C++ (1985)

disseminação da programação orientada a objetos

JAVA (1995) mais simples e confiável que C++ Internet

Page 23: Aula 1 – Profª Danielle Costa danielle.fcosta@terra.com.br.

Próxima Aula..

Tipos de Dados

Estrutura de Controles