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