MC336 - Paradigmas de Programação

Pre-Req.: MC202
 
 

Ementa: Visão comparativa de paradigmas de programação.
Programação funcional, lógica e orientada a objetos.
 

Programa

 (i)  programação orientada a  objetos:  abstração  de dados,  objetos,
classes e tipos, herança, hierarquias de generalização/especialização,
hierarquias    de  agregação/decomposição,    polimorfismo,    classes
abstratas,  interfaces,   pacotes/módulos,  tratamento de    exceções,
metaclasses.

 (ii) programação funcional: ênfase em recursão e modularidade;
ausência de atribuições, efeitos colaterais em geral e controle de fluxo.
 Escolha de uma linguagem funcional para ilustrar suas características em
relação a tipos, modo de avaliação de expressões e argumentos, operações
primitivas, estruturas de dados, funções de funções, entrada e saída de
dados.

 (iii) programação lógica: fatos, regras, inferencia. Modelo de execução. Listas,
operadores e predicados primitivos para numeros e listas. Cut. Estruturas de
controle. Outras linguagens lógicas.

Bibliografia:
1.Java Programming Language, Arnold Gosling et al, Addison Wesley Publishing Company, 3. edição.
2.ANSI Common Lisp, Paul Graham, Prentice Hall 1996
3.Prolog Programming for Artifical Intelligence, Ivan Bratko.