/tpl

Primary LanguageTeX

Types and Programming Languages (a first course)

Este repositório contém notas de aulas (e código fonte) usados durante um curso sobre Tipos e Linguagens de Programação, conduzido no semestre 2017/2 em uma disciplina sobre Linguagens Declarativas- Programa de Pós-graduação em Informática (UnB)

Bibliografia

  • Livro Types and Programming Languages (B. Pierce)

Sugestões de leitura adicionais:

  • Software Foundations (B. Pierce)

  • Practical Foundations of Programming Languages (R. Happer)

  • An Introduction to Functional Programming Through Lambda Calculus (G. Michaelson)

  • Real World Haskell (B. O'Sullivan, et al.)

  • Programming in Haskell (G. Hutton)

Projetos da Disciplina

Estão previstos dois projetos na disciplina, cada um com duas entregas.

Primeira Entrega do Projeto 1 (entrega: 18/09)

a) Elabore um resumo com uma discussão sobre alfa-equivalência, destando (a) o porquê de termos que aplicar conversões alfa no calculo lambda e (b) apresentando a implementação de um algoritmo para conversão alfa (aplicado na nossa implementação do cálculo lambda).

b) Implemente um tradutor entre as linguagens RBL-Calculus e o Lambda Calculus, usando como base as implementações em sala de aula. Para isso, implemente uma biblioteca de funções para o Lambda Calculus, incluindo funções para representar valores e operadores envolvendo booleanos e inteiros.

c) Implemente cenários de teste para a nossa linguagem de Lambda Calculus, em particular cenários que exercitam o fix-point combinator para definir funções recursivas.