Académique Documents
Professionnel Documents
Culture Documents
Programação
• Marcelo Cruz
• marceloacruz@hotmail.com
Programação
• Conteúdo
• Importância no conhecimento das Linguagens
de Programação;
• O Que é Paradigmas de Linguagem de
Programação?
Ementa da Disciplina
Ementa
Características e tipos de aplicações dos diferentes
paradigmas de linguagens de programação: imperativo,
orientado a objetos, funcional e lógico.
REFERÊNCIAS:
• – PRESSMAN, Roger. Engenharia de Software. Rio de
Janeiro: McGraw Hill, 2006.
• – SOMERVILLE, Ian. Engenharia de Software. Addison
Wesley Editora, 2007.
Avaliações da Disciplina
• Conforme o que determina o regulamento institucional, o processo de avaliação ocorrerá em três etapas para
aferir os conhecimentos adquiridos através das provas N1, N2 e N3, assim determinadas:
• N1
• Avaliação 1
• Prova Institucional de 0 à 10,0 pontos
• Avaliação 2
• Avaliação continua Teste de 0 à 8,0 pontos + debate de 0 à 2,0 pontos
• N2
• Avaliação 1
• Prova Institucional de 0 à 10,0 pontos
• Avaliação 2
• Avaliação continua a critério do professor 0 à 8,0 pontos + Atividade Interdisciplinar de 0 à 2,0 pontos
• N3
• Avaliação 1
• Prova Institucional de 0 à 10,0 pontos
• Avaliação 2
• Avaliação continua a critério do professor 0 à 8,0 pontos + Atividade Transversal de 0 à 2,0 pontos
• Média (N1+N2+N3)/3
Paradigmas de Linguagem de
Programação
• O que veremos no curso?
– Conceitos de Linguagens de Programação
• Incluindo Paradigma Imperativo
– Paradigmas de Linguagens de Programação
• Orientação a Objetos, Funcional, Lógico e tipos
especiais….
Paradigmas de Linguagem de
Programação
Paradigmas de Linguagem de
Programação
Paradigmas de Linguagens de
Programação
• Por que estudar Linguagens de Programação
• Métodos de Implementação
PLP: Motivação
• Aumento da capacidade de expressar ideias
– O conhecimento da linguagem ajuda a expressar ideias e
novas estruturas
– O conhecimento dos recursos das linguagens reduz as
limitações
– Confiabilidade:
– Custo
PLP: Critérios de Avaliação da
Linguagem
PLP: Legibilidade
• A legibilidade pode afetar a leitura de um código-
fonte
– Vetores
• Em C:
– x = a[i];
– a[i] = y;
• Facilidade na manutenção
PLP: Legibilidade
• Simplicidade Global
– Muitos componentes básicos afetam o aprendizado
– Multiplicidade de recursos
– Sobrecarga de operadores (overloading)
• Ortogonalidade
– A falta de ortogonalidade acarreta exceções as regras da
linguagem
• Ex.: Pascal (funções): arquivos não podem ser passados por valor,
funções só podem devolver valores de um conjunto restrito de
tipos.
– Toda combinação de primitivas é legal e significativa
• Ex.: Python: passagem de funções como parâmetro
PLP: Legibilidade
• Ortogonalidade
– Falta de ortogonalidade em C (arrays vs structs)
• registros podem ser retornados de funções, arrays não;
• um elemento de array pode ser qualquer tipo de dado,
exceto void ou uma função;
• Parâmetros são passados por valor, a menos que sejam
arrays – que obrigatoriamente são passados por
referência
PLP: Legibilidade
• Instruções de controle
• Instruções Goto dificultam a legibilidade
Loop1:
if (inc >= 20) goto Out;
Loop2:
if (sum > 100) goto Next;
sum += inc;
goto Loop2;
Next:
inc ++;
goto Loop1;
Out:
• Tipos de dados e estruturas
– Declaração de variáveis
• int vs boolean e structs vs vector
PLP: Legibilidade
• Tipos de dados e estruturas
– Declaração de variáveis:
• a presença de facilidades adequadas para definir tipos
de dados e estruturas de dados em uma linguagem é
outro auxílio significativo para a legibilidade.
• Expressividade
– Maneiras convenientes de escrever
– Uma expressão representa muitas computações
• Em C, i++ em vez de i = i + 1
• Em java, for em vez de while
PLP: Capacidade de Escrita
• Expressividade
– Maneiras convenientes de escrever
– Uma expressão representa muitas computações
• Ex.: Readln do Pascal em vez de readLine do Java
•
BufferedReader teclado;
line: string[20]
String line;
readln(line)
teclado = new BufferedReader (
new InputStreamReader(
System.in));
line = teclado.readLine();