BCC222 - Programação Funcional - 2024-2Carga horária da disciplina: 4 horas/aula Professor(es) em 2024-2
ObjetivosAo final do curso espera-se que os alunos possuam os seguintes conhecimentos e habilidades:- Conhecimento das características fundamentais de linguagens funcionais modernas e noções básicas sobre o modelo de execução de programas nessas linguagens; - Noções básicas sobre sistemas de tipos e inferência de tipos; - Capacidade de distinção entre polimorfismo paramétrico, de sobrecarga e de inclusão; - Entendimento dos diferentes mecanismos de avaliação em linguagens de programação; - Capacidade para comparar características de linguagens de diferentes paradigmas; - Habilidade para programar em uma linguagem funcional moderna; - Entendimento sobre a implementação da noção de estado em linguagens funcionais; - Noções de derivação de programas a partir da especificação e sobre prova de correção de programas em linguagens funcionais. EmentaCaracterísticas dos principais paradigmas de programação; princípios do paradigma de programação funcional; principais características de linguagens de programação funcional: recursão, abstração funcional, funções de ordem superior, tipos de dados algébricos, polimorfismo, inferência de tipos, avaliação estrita e avaliação lazy, sobrecarga; estudo de uma linguagem funcional moderna e desenvolvimento de programas nesta linguagem, enfocando aspectos de correção, modularidade e reuso de código.Conteúdo Programático- Introdução- Paradigmas de programação - Primeiros passos em haskell - Definindo funções - Tipos de dados - Expressão condicional - Funções recursivas - Tuplas, listas e polimorfismo paramétrico - Casamento de padrão - Programas interativos - Ações de e/s recursivas - Números aleatórios e argumentos da linha de comando - Arquivos - Expressão lambda - Funções de ordem superior - Tipos algébricos - Classes de tipos - Mônadas - Avaliação lazy - Prova de propriedades de programas Bibliografia- THOMPSON, Simon. Haskell: The Craft of Functional Programming. 3.. ed. Harlow: Addison-Wesley, 1986.- HUTTON, Graham. Programming in Haskell. Cambridge: Cambridge University Press, 2007. - SÁ, Claudio Cesar de; SILVA, Marcio Ferreira da. Haskell: Uma Abordagem Prática. São Paulo: Novatec Editora Ltda, 2006. Bibliografia complementar- BIRD, Richard. Introduction to Functional Programming using Haskell. 2. ed. London: Prentice Hall Press, 1998.- MILNER, R.; TOFTE, Mads; HARPER, Robert. The definition of standard ML. Cambridge: MIT, 1997. - ULLMAN, Jeffrey D. Elements of ML programming. New Jersey: Prentice-Hall. 1998. - PAULSON, Laurence C. ML for the working programming. 2. ed. Cambridge: Cambridge University, 1996. - PEYTON JONES, Simon L. The implementation of functional programming languages. New York: Prentice-Hall. 1987. |
Departamento de Computação | ICEB | Universidade Federal de Ouro Preto
Campus Universitário Morro do Cruzeiro | CEP 35400-000 | Ouro Preto - MG, Brasil
Telefone: +55 31 3559-1692 | decom@ufop.edu.br