Semânticas de Linguagens de Programação
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Ciência de Computadores |
Ocorrência: 2021/2022 - 1S
Ciclos de Estudo/Cursos
Língua de trabalho
Português
Objetivos
Introdução aos diferentes paradigmas de linguagens de programação e às suas diferentes escolhas/conceitos. Pretende-se estudar as componentes principais das linguagens de programação e algumas das ferramentas usadas para descrever de forma precisa o comportamento das suas primitivas principais.
Resultados de aprendizagem e competências
No final do semestre pretende-se que o estudante seja capaz de descrever e formalizar os aspetos essenciais de cada paradigma, assim como compreender as ferramentas necessárias ao desenvolvimento de novas linguagens de programação.
Modo de trabalho
Presencial
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
Lógica computacional, Modelos de computação, conhecimentso de linguagens de programação imperativas e funcionais
Programa
Introdução aos diferentes paradigmas de linguagens de programação. Sintaxe, semântica e implementação de linguagens. Sistemas de transição.
- Linguagens de programação imperativas:
* Conceitos gerais: variáveis, atribuição, instruções de controle, blocos;
* Semânticas operacionais: máquinas abstratas, semânticas operacionais estruturais;
- Linguagens de programação funcionais:
* Conceitos gerais, definição de funções, recursão
* Sistemas de tipos
* Semântica operacional
- Linguagens de programação lógicas:
* Conceitos gerais: termos, predicados, clausulas
Bibliografia Obrigatória
Maribel Fernández;
Programming languages and operational semantics. ISBN: 0-9543006-3-7
Bibliografia Complementar
Hanne Riis Nielson;
Semantics with applications. ISBN: 978-1-84628-691-9
Flemming Nielson;
Formal methods. ISBN: 978-3-030-05156-3 (Ebook)
Richard Bird;
Introduction to functional programming using Haskell. ISBN: 978-0-13-484346-9 pbk
Kent D. Lee; Foundations of Programming Languages, Springer, 2017. ISBN: 978-3-319-70789-1
Métodos de ensino e atividades de aprendizagem
Aulas expositivas e aulas de resolução de problemas e casos de estudo.
Avaliação distribuída sem exame final. Serão propostos dois testes com peso de 50%.
Serão propostos trabalhos de resolução de problemas sobre os diversos tópicos da matéria. Poderão ser também propostos trabalhos práticos de implementação dos conceitos expostos. Assim serão assegurados os objetivos propostos. Os testes e exame final têm como objetivo garantir que os objetivos principais da aprendizagem foram atingidos.
Tipo de avaliação
Avaliação distribuída sem exame final
Componentes de Avaliação
Designação |
Peso (%) |
Exame |
50,00 |
Teste |
50,00 |
Total: |
100,00 |
Componentes de Ocupação
Designação |
Tempo (Horas) |
Estudo autónomo |
106,00 |
Frequência das aulas |
56,00 |
Total: |
162,00 |
Obtenção de frequência
Os alunos deverão obter um mínimo de 6 valores (em 20) em cada um dos testes. O primeiro realiza-se a meio do semestre e o segundo na data prevista para o exame normal.
Todos os alunos poderão realizar o exame de recurso.
Fórmula de cálculo da classificação final
Teste intercalar (50% de peso na nota final).
Exame final (50% de peso na nota final).
Sendo TI a classificação obtida no teste intercalar e EF a
classificação obtida no exame final, então a nota final é dada por:
F = TI*(0.5) + EF*(0.5)
TI,EF >= 6 e F >= 9.5
Avaliação especial (TE, DA, ...)
Os critérios de avaliação são os mesmos para todos os estudantes.
Melhoria de classificação
Será possível fazer melhoria de classificação em época de recurso.