Você está na página 1de 4

From CompUFC

Ementa: LinguagensDeProgramacaoII
Linguagens de Programao II Justificativa
Reconhecer as caractersticas essenciais dos paradigmas declarativo e funcional e compar-las s caractersticas dos paradigmas imperativo e orientado a objetos; saber programar em PROLOG e ML para resolver problemas com caracterstica de busca exponencial (problemas da rea de Inteligncia Artificial); ser capaz de projetar uma linguagem de programao declarativa e funcional.

Ementa
Contexto Histrico do Paradigma Declarativo e Funcional, Interpretao Lgica e Algortmica dos Programas Declarativos, Lambda Calculus, Recursividade, Polimorfismo, Inferncia de Tipos, Prova e Transformao de Programas, Aplicaes.

Descrio do Contedo
Paradigma Declarativo Introduo Contexto Histrico: prova automtica de teoremas Exemplo de um Programa em Lgica: Fatos Universais Regras Consultas Existenciais Principais caractersticas: Recursividade Retrocesso Unificao Negao por Falha Interpretao Lgica Definio da Linguagem: Alfabeto Termos Frmulas (frmulas atmicas) Clusulas (clusulas de Horn) Interpretao Semntica: Universo de Herbrand Interpretao Satisfao Conseqncia Semntica Interpretao Sinttica: Substituio

Unificao Resoluo Conseqncia Sinttica Interpretao Algortmica rvore de Pesquisa: Ordem das Clusulas Ordem dos Objetivos Unificao Satisfao e Falha Retrocesso Recursividade Programas Recursivos com Nmeros Listas Aritmtica Grafos e rvores Busca em Profundidade Busca em Amplitude Busca Best-First Ordenao Predicados Extra-lgicos Controlando o Retrocesso: Cut Negao por Falha: Not Fail Repeat Entrada / Sada Funes que alteram a memria Definio de operadores Sistema de Depurao em Prolog Melhorando a Eficincia Aplicaes Jogos Sistemas Especialistas Aprendizado de Mquina Paradigma Funcional Introduo: Contexto Histrico: definio de funo computvel Caractersticas Funcionais: Expresses (versus comandos) Funes Recurso Casamento de Padres Checagem de tipos polimrficos Funes de alta ordem Estrutura de dados infinita 2*Lambda Calculus Definio da Linguagem: Alfabeto Expresses Lambda

Axiomas e Regras de Inferncia Regras de Substituio Estratgias de Reduo: alpha, beta, eta Formas Normais: teoremas de Church-Rosser Lambda Calculus como uma linguagem de programao Estrutura de Dados Definies Recursivas ML Padro Valores Tipos de Dados Bsicos e Compostos Avaliao lazy e por valor Polimorfismo: Inferncia e Checagem de Tipos Tipos Recursivos Listas Funes polimrficas Aritmtica polimrfica rvores Declaraes de tipos de dados Excees rvores binrias Funes como valores e tipo de dados infinitos Raciocinando sobre programas Induo Estrutural e Geral Especificao e Verificao Tipo Abstrato de Dados e Functores

Bibliografia
Bratko, I. Prolog, Programming for Artificial Intelligence. 2nd ed., Addison-Wesley, Harlow, 1990. Sterling, L. and Shapiro, E. The Art of Prolog. Cambridge, MIT Press, 1986 Vidart, J. and Tasistro, A Programacin Lgica y Funcional. Curitiba, III EBAI, 1988. Kelly, J. The Essence of Logic. London, Prentice Hall, 1997 Shoham, Y. Artificial Intelligence Techniques in Prolog. San Francisco, Morgan Kaufmann, 1994. Paulson, L.C. ML for the working programmer. 2nd edition, Cambridge University Press, 1996. Vidart, J. and Tasistro, A Programacin Lgica y Funcional. Curitiba, III EBAI, 1988.

Bibliografia Complementar
Chang, C. & Lee, R.C. Symbolic Logic and Mechanical Theorem Proving. Academic Press, 1973. Casanova, M.A et al. Programao em Lgica e a Linguagem Prolog. So Paulo, Edgard Blcher, 1987. Apt, K.R. From Logic Programming to Prolog. London, Prentice Hall, 1997. Rowe, N. C. Artificial Intelligence through Prolog. London, Prentice Hall, 1988. Barendregt, H.P. The Lambda Calculus: its syntax and semantics. North-Holland, Amsterdam, 1984 Bird, R. and Wadler, P. Introduction to Functional Programming. New York, Prentice Hall, 1988. Harper, R. Introduction to Standard ML. Edinburgh, Computation Science Department, 1993. Harper, R et al. The Definition of Standard ML (version 3). Edinburgh, CS Department, 1989. Thompson, S. Haskell, The Craft of Functional Programming. Harlow, Addison-Wesley, 1996.
Retrieved from http://wiki.dc.ufc.br/index.php/Ementa/LinguagensDeProgramacaoII

Page last modified on October 02, 2007, at 09:27 AM

Você também pode gostar