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.

Disciplinas Execução

2024/2025 - 1 Semestre

2022/2023 - 1 Semestre

2021/2022 - 1 Semestre