Vous êtes sur la page 1sur 27

Paradigmas de Linguagem de

Programação

Esp. Marcelo Cruz


Paradigmas de Linguagem de
Programação
• Mini Curriculum Professor
– Analista de Tecnologia da Informação e
Comunicação – Prefeitura de Manaus
– Especialista em Desenv de Aplicações para WEB
– Graduação em Redes de Computadores
– Experiencia em Redes de Computadores,
Servidores (Windows, Linux).
– Lecionando desde 1991.
– CETAM e Rede Amazonica
Paradigmas de Linguagem de
Programação

“De que vale o conhecimento sem a


possibilidade de partilhá-lo e trocar experiências
??”
Marcelo Cruz
Paradigmas de Linguagem de
Programação

• Para que eu Preciso Saber Paradigmas de


Linguagem de 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

• Critérios de Avaliação das Linguagens de


Programação

• Paradigmas de 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

• Maior embasamento para a escolha de linguagens


apropriadas
– Alguns programadores tiveram pouca educação formal em
Ciência da Computação
• Especialmente treinados para projetos específicos
– Não possuem embasamento para novos projetos
PLP:Motivação
• Capacidade aumentada para aprender novas
linguagens
– LPs, ferramentas, metodologias

• Entender melhor a importância da implementação


– Ajuda a utilizar a linguagem de forma mais inteligente
– Ajuda na detecção e correção de erros
– Ajuda a visualizar como o processador executa as
instruções da linguagem
– Ex: métodos syncronized e DCL em Java -
http://www.javaworld.com/javaworld/jw-02-2001/jw-
0209-double.html?page=1
PLP:Motivação
• Aumento da capacidade de projetar novas
linguagens

• Avanço global da computação


PLP:Domínios de Programação
• Aplicações Científicas
• Aplicações Comerciais
• Inteligência Artificial
• Programação de Sistemas
• Linguagens de scripting
• Linguagens para Web
PLP: Linguagens de Programação
• Como uma linguagem de programação surge e
se torna bem-sucedida?

• Quais são as características-chave que tornam


uma linguagem de programação ideal?

• Por que existem tantas linguagens de


programação?
PLP: Critérios de Avaliação da
Linguagem
• Critérios de Avaliação
– Legibilidade:

– Capacidade de Escrita (Writability):

– 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;

• Em Scheme (dialeto de LISP)


– (set! x (vector-ref a i))
– (vector-set! 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.

• Ex.: int end = 1 vs boolean = true


• Ex.: structs vs vector
PLP: Legibilidade
• Considerações sobre a sintaxe
– Nome das variáveis
• Algumas LPs restrigem o tamanho dos nomes (Ex.: BASIC;
FORTRAN 77, máximo 6 caracteres; BASIC ANSI, uma letra ou uma
letra e um número)
– Palavras especiais
• métodos para formar instruções compostas
– FORTRAN e ADA utilizam pares distintos (PASCAL não)
» ”end if” e ”end loop” (Pascal BEGIN-END para todas as
estrutruras – exceto repeat)
» Simplicidade vs legibilidade
– Forma e significado
• Definições das estruturas de acordo com o significado.
– Ex.: static em C e grep em shell
PLP: Capacidade de Escrita
• Simplicidade e ortogonalidade
– Grande número de diferentes construções
• Familiaridade com todas
• Desuso de alguns recursos
• Formas ineficientes de implementação

– Ortogonalidade em excesso pode comprometer a


capacidade de escrita
• Uso incorreto de alguns recursos
• Subutilização de alguns recursos mais eficientes

– Deve ser considerada no contexto do domínio de


problema-alvo da linguagem.
PLP: Capacidade de Escrita
• Suporte para Abstração
– Definir uma estrutura e reutilizá-la
– Duas categorias distintas:
• Processos: ex.: subprogramas
• Dados: ex.: organização das estruturas de dados e de tipos

• 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();

Vous aimerez peut-être aussi