Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Linguagens de
Programação
Aula 01: Introdução e
Conceitos Básicos
l Confiabilidade
l Manutenibilidade
l Eficiência
l Desempenho
Fernando Prass 3
(fprass@gmail.com)
Propriedades
desejáveis em LPs
l Legibilidade
l Marcadores de Blocos
if (x>1)
if (x==2)
x=3;
else x=4;
l Desvios Incondicionais (goto)
Fernando Prass 4
(fprass@gmail.com)
Propriedades
desejáveis em LPs
l Facilidade de Aprendizado
l Excesso de Características é Prejudicial
c = c + 1;
c+=1;
c++;
++c;
l Eficiência
l Verificação Dinâmica de Tipos
l Confiabilidade
l Tratamento de Exceções
Fernando Prass 5
(fprass@gmail.com)
Propriedades
desejáveis em LPs
Um dos principais benefícios do
l Reusabilidade Paradigma Orientado a Objetos
l Redigibilidade
l Tipos de Dados Limitados (FORTRAN)
l Portabilidade
l Rigor no Projeto
Fernando Prass 6
(fprass@gmail.com)
Conceitos Básicos
l Paradigma
l Léxico
l Sintaxe
l Semântica
Fernando Prass 7
(fprass@gmail.com)
Paradigma
l Conjunto de regras que estabelecem fronteiras
(domínios) e descrevem como resolver os
problemas dentro destas fronteiras.
Fernando Prass 8
(fprass@gmail.com)
Léxico e Sintaxe
l Léxico: é o conjunto de palavras que
compõem a linguagem (também chamadas
de palavras reservadas)
Fernando Prass 9
(fprass@gmail.com)
Semântica
l Em LPs é o significado das expressões,
instruções e definição de unidades de
programas:
l 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.
Compilação
Compilação
Interpretação
L.M.
Código
L.M. Intermediário
Dados
Dados
Execução
Fernando Prass 11
(fprass@gmail.com)
Implementação de LPs
l Compilação
l Eficiência
l Problemas com Portabilidade e Depuração
l Interpretação Pura
l Flexibilidade, Portabilidade e Facilidade de Depuração
l Problemas com Eficiência
l Híbrido
l Une Vantagens dos Outros Métodos
l JVM
Fernando Prass 12
(fprass@gmail.com)
Pense...
e ainda existem?
Fernando Prass 13
(fprass@gmail.com)
Paradigmas de LPs
Paradigmas
Imperativo Declarativo
Fernando Prass 14
(fprass@gmail.com)
Paradigmas de LPs
l Imperativo
l Processo de Mudanças de Estados
l Variável, Valor e Atribuição
l Células de Memória
l Declarativo
l Especificações sobre a Tarefa a Ser Realizada
l Abstrai-se de Como o Computador é Implementado
Fernando Prass 15
(fprass@gmail.com)
Paradigmas de LPs: Imperativo
l Estruturado
l Refinamentos Sucessivos
l Blocos Aninhados de Comandos
l Desestímulo ao uso de desvio incondicional
l Orientado a Objetos
l Abstração de Dados
l Concorrente
l Processos Executam Simultaneamente e Concorrem por
Recursos
Fernando Prass 16
(fprass@gmail.com)
Paradigmas de LPs: Estruturado
l Funcional
l Programa Composto por Funções Matemáticas
l Lógico
l Predicados
l Dedução Automática
Fernando Prass 17
(fprass@gmail.com)
Histórico: Evolução de LPs
l Dificuldade de Programação em Linguagens de
Máquina
l Foco de Primeiras LPs era Eficiência de
Processamento e Consumo de Memória
l Baixa Produtividade de Programação
l Programação Estruturada
l Tipos Abstratos de Dados
l Orientação a Objetos
Fernando Prass 18
(fprass@gmail.com)
Histórico: Origem de LPs
l FORTRAN (1957)
l aplicações numéricas
l LISP (1959)
l programação funcional
l ALGOL (1960)
l programação estruturada
l COBOL (1960)
l aplicações comerciais
Fernando Prass 19
(fprass@gmail.com)
Histórico: Origem de LPs
l BASIC (1964)
l ensino para leigos
l PASCAL (1971)
l ensino de programação estruturada
l simplicidade
l C (1972)
l implementação de UNIX
l PROLOG (1972)
l programação lógica
Fernando Prass 20
(fprass@gmail.com)
Histórico: Origem de LPs
l SMALLTALK (1972)
l programação orientada a objetos
l ADA (1983)
l programação concorrente
l C++ (1985)
l disseminação da programação orientada a objetos
l JAVA (1995)
l mais simples e confiável que C++
l Internet
Fernando Prass 21
(fprass@gmail.com)