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

 1. 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.

 2. 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.

 3. 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.