Conceitos e Tcnicas
Introduo
Prof.
Especificao de Requisitos
Projeto do Software
Implementao
Validao
Manuteno
Marcadores de Blocos
if (x>1)
if (x==2)
x=3;
else
x=4;
Desvios Incondicionais
goto
Duplicao de Significado de Vocbulos
this (em JAVA)
*p = (*p)*q;
Declarao de Tipos
boolean u = true;
int v = 0;
while (u && v < 9) {
v = u + 2;
if (v == 6) u = false;
}
Tratamento de Excees
try {
System.out.println(a[i]);
} catch (IndexOutofBoundsException) {
System.out.println(Erro de Indexao);
}
Facilidade de Aprendizado
Excesso de Caractersticas Prejudicial
c = c + 1;
c+=1;
c++;
++c;
Modificabilidade
const float pi = 3.14;
10
Portabilidade
Rigor no Projeto
Pode Contrastar com Eficincia
11
Especificao de LPs
Lxico x Sintaxe x Semntica
a = b;
Sintaxe
expresso valor valoroperadorexpresso
valor nmero sinalnmero
nmero semsinal semsinal.semsinal
semsinal dgito dgitosemsinal
dgito 0 1 2 3 4 5 6 7 8 9
sinal +
operador +
*
12
Especificao de LPs
Semntica
Enfoque Operacional
Necessidade de Padronizao
ISO, IEEE, ANSI, NIST
13
Implementao de LPs
Compilao
LP
Interpretao Pura
Fonte
LP
Hbrido
Fonte
LP
Compilao
Interpretao
Fonte
Compilao
L.M.
Cdigo
Intermedirio
L.M.
Dados
Dados
Execuo
Execuo
Interpretao
L.M.
Dados
Execuo
14
Implementao de LPs
Compilao
Eficincia
Problemas com Portabilidade e Depurao
Interpretao Pura
Hbrido
15
Paradigmas de LPs
Paradigmas
Imperativo
Estruturado
Orientado
a Objetos
Concorrente
Declarativo
Funcional
Lgico
16
Paradigmas de LPs
Imperativo
Processo de Mudanas de Estados
Varivel, Valor e Atribuio
Clulas de Memria
Estruturado
Refinamentos Sucessivos
Blocos Aninhados de Comandos
Desestmulo ao uso de desvio incondicional
17
Paradigmas de LPs
Orientado a Objetos
Abstrao de Dados
Concorrente
Processos
Executam
Concorrem por Recursos
Simultaneamente
18
Paradigmas de LPs
Declarativo
Especificaes sobre a Tarefa a Ser Realizada
Abstrai-se de Como o Computador Implementado
Funcional
Programa Composto por Funes
Lgico
Predicados
Deduo Automtica
19
Evoluo de LPs
Dificuldade de Programao em Linguagens de
Mquina
Foco de Primeiras LPs era Eficincia de
Processamento e Consumo de Memria
Baixa Produtividade de Programao
Programao Estruturada
Tipos Abstratos de Dados
Orientao a Objetos
20
Origem de LPs
FORTRAN (1957)
aplicaes numricas
LISP (1959)
programao funcional
ALGOL (1960)
programao estruturada
COBOL (1960)
aplicaes comerciais
21
Origem de LPs
BASIC (1964)
PASCAL (1971)
C (1972)
implementao de UNIX
PROLOG (1972)
programao lgica
22
Origem de LPs
SMALLTALK (1972)
ADA (1983)
programao concorrente
C++ (1985)
JAVA (1995)