Disciplina Curricular
Fundamentos de Linguagens de Programação FLP
Mestrado Bolonha em Informática - 3_MI 2020/21
Contextos
Grupo: 3_MI 2020/21 > 2º Ciclo > Parte Escolar > Optativas > 892 - Mestrado em Informática - Geral > 1º semestre
Período:
Grupo: 3_MI 2020/21 > 2º Ciclo > Parte Escolar > Optativas > 787 - Mestrado em Informática - CTP
Período:
Peso
6.0 (para cálculo da média)
Objectivos
No final do curso, os alunos devem: - Compreender claramente as abstracções fundamentais das linguagens de programação, por oposição à sua concretização em linguagens de programação concretas, tal como habitualmente conhecidas pelos alunos. - Ser capazes de raciocinar formalmente sobre as propriedades das linguagens de programação. - Dominar alguns conceitos avançados em linguagens de programação, incluindo linearidade, traços, propriedade e empréstimo e tipos de sessão. - Ficar exposto a linguagens de programação convencionais, como Rust e Go.
Programa
Segue-se uma lista provisória dos temas a abordar. 1. Sistemas não tipado, incluindo expressões aritméticas e o cálculo lambda 2. Tipos simples, incluindo novamente expressões aritméticas e o cálculo lambda, mas também extensões simples 3. Tipos recursivos 4. Polimorfismo 5. Tipos lineares 6. Tipos de sessão 7. Traços 8. Propriedade e empréstimo 9. Memória partilhada e troca de mensagens
Métodos de ensino e avaliação
Composta por seis trabalhos individuais. Os trabalhos são de duas naturezas: a) definições e provas formais sobre a teoria das linguagens de programação e b) trabalhos de programação que implementando relações nos fundamentos formais ou aplicações dos conceitos avançados em linguagens de programação.