Disciplina Curricular
Fundamentos de Linguagens de Programação FLP
Mestrado Bolonha em Engenharia Informática - 4_MEI 2020/21
Contextos
Grupo: 4_MEI 2020/21 > 2º Ciclo > Parte Escolar > 721 - MEI Grupo Opcional Geral
Período:
Grupo: 4_MEI 2020/21 > 2º Ciclo > Parte Escolar > Agrupamento Curricular de Especialização > Ciência da Computação > 719 - Ciência da Computação - Nucleares
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.