COM139 - Linguagens de Programação 2 - BCC - UFLA

Ano/Semestre:

2003/1

Professor:

Bruno de Oliveira Schneider

Ementa (síntese do conteúdo):

Paradigmas de linguagens de programação: imperativas, funcionais e lógicas. Comparação de características dos vários paradigmas. Recursão comum e de cauda. Prova de corretude por indução matemática.

Bibliografia:

Livro Texto: MITCHELL, J.C. Foundations for programming languages. MIT Press. 1996.
Referências: SEBESTA, R.W. Concepts of programming languages. Addison-Wesley.  1999.
HUDAK, P.; PETERSON, J. & FASEL, J.H. A Gentle Introduction to Haskell 98. 1999.
WIELEMAKER, J. SWI-Prolog 3.2 Reference Manual. 1999.

Conteúdo Programático:

  1. Introdução
    1. Apresentação do plano de curso e avaliação
    2. A disciplina no currículo e integração com outras disciplinas
    3. A disciplina na formação do profissional
  2. Histórico da Evolução da Programação
    1. Programação não-estruturada
    2. Programação estruturada
    3. Programação orientada por objetos
    4. Outros paradigmas (funcional e lógico)
  3. Programação Funcional
    1. Apresentação de uma linguagem funcional
    2. Recursão simples e recursão de cauda usando programação funcional
    3. Resolução de problemas usando programação funcional
    4. Análise da independência e reusabilidade de programas funcionais
    5. Prova de corretude usando indução matemática
    6. Avaliação preguiçosa e listas infinitas
  4. Programação Lógica
    1. Apresentação de uma linguagem lógica
    2. Recursão simples e recursão de cauda usando programação lógica
    3. Resolução de problemas usando programação lógica
    4. Análise da independência e reusabilidade de programas lógicos
  5. Programação Imperativa
    1. Vantagens e desvantagens da programação imperativa
  6. Avaliação
    1. Avaliação do conteúdo do curso
    2. Avaliação de atuação do aluno e do professor
    3. Avaliação das condições em que se desenvolve o curso

    4.