Caracterização (Teoria)

Propaganda
Introdução a CLP
Flávio Melo
Gabriel Fornari
1
Índice
•
•
•
•
•
•
Características das LPs;
Histórico;
Objetivos das LPs;
Abstração de dados;
Ambiente e escopo de variáveis;
Herança e polimorfismo.
2
Características das LPs
•
•
•
•
O que são?
Pra que servem?
Qual a importâcia?
O que são paradigmas de programação?
3
Um pouco de história
• Antes de 1940
– A máquina de tear com cartões perfurados;
– Ada Lovelace primeira programadora;
• 1940 a 1950
– Plankalkül;
– Linguagem de baixo
nível (Assembly);
– ENIAC coding system.
4
Um pouco de história
• 1950 a 1970
– Continuam a ser usadas ainda hoje:
• FORTRAN - FORmula TRANslator;
• COBOL - COmmon Business Oriented Language;
• ALGOL 60 - ALGOrithmic Language;
– “The ALGOL 60 Report”
• Blocos Estruturados Aninhados ;
• Variável “local”;
5
Mais um pouco de história
• 1970 a 1980
– C (1969 a 1973);
– Pascal;
– Smalltalk;
– Prolog;
– SQL;
6
O último pouco de história
• 1980...
– C++;
– Perl;
– Python;
– Java;
– Ruby;
– PHP;
– Etc.
7
Características das LPs
•
•
•
•
•
Interpretadas versus Compiladas;
Orientadas a objetos;
Estruturadas;
Linguagens lógicas;
Linguagens funcionais;
8
Objetivos das LPs
• Facilitar a comunicação com a máquina.
9
Abstração de dados
• “o processo de identificar certas propriedades
ou características de uma entidade material e
usá-las para especificar uma nova entidade
que representa uma simplificação da entidade
da qual ela foi derivada”.
10
Abstração de dados
• Exemplos:
– Listas lineares:
• Sequênciais;
• Simplesmente e duplamente encadeadas;
• Circulares.
– Pilhas e filas;
– Matrizes esparsas.
11
Ambiente e escopo de variáveis
• “Especificação do limite dentro do qual os
recursos de sistema podem ser utilizados”
• Local versus global;
• Passagem por parâmetros:
– Por valor;
– Por referência.
12
Polimorfismo
• Poli = muitas, morphos = formas;
• Existem três tipos de polimorfismo:
– De herança;
– Paramétrico;
– Ad hoc;
• Algumas linguagens orientadas a objetos não
possuem todo tipo de polimorfismo.
13
Dúvidas?
14
Download