Departamento de Informática (UM)

Página de Unidade Curricular

DesignaçãoCódigoCursoRegimeRegente

Semântica das Linguagens de Programação

10865 [8506O8]

Licenciatura em Ciências da Computação [CCOM]

S6

Maria João Gomes Frade

Objetivos

Esta UC faz uma introdução à semântica formal das linguagens de programação. Na primeira parte são apresentadas diferentes abordagens (operacional, denotacional e axiomática) à semântica das linguagens imperativas. A segunda parte é dedicada à semântica das linguagens funcionais, tendo o lambda-calculus como núcleo central.

Programa

- A linguagem While: uma linguagem imperativa simples. Semântica das expressões. Diferentes abordagens à semântica da linguagem.
- Semântica operacional (natural e estrutural) para a linguagem While e suas diferentes extensões.
- Uma implementação correta dos programas While numa máquina abstrata.
- Semântica axiomática. Verificação dedutiva de programas While. Correção da Lógica de Hoare.
- Semântica denotacional para a linguagem While.
- Lambda-calculus puro e Lambda-calculus com tipos. Principais conceitos e propriedades. Estratégias de redução.
- Uma linguagem de programação funcional estrita. Sistema de tipos. Semântica de avaliação aplicativa ("call-by-value").
- Uma linguagem de programação funcional não estrita. Sistema de tipos. Semântica de avaliação normal ("call-by-name").

Bibliografia

Nielson, H., Nielson, F. (2007). Semantics with applications: a formal introduction. Springer.

Reynolds, J. C. (1998). Theories of Programming Languages. Cambridge University Press.

Resultados da aprendizagem

- Descrever as características das abordagens operacional, axiomática e denotacional à semântica das linguagens de programação.
- Construir árvores de derivação nos sistemas de inferência definidos pelas diferentes abordagens semânticas.
- Atribuir significado formal aos diferentes aspetos de uma linguagem imperativa ou funcional simples.
- Utilizar técnicas indutivas para argumentar sobre propriedades das linguagens de programação.
- Utilizar o lambda-calculus com modelo de computação e como sistema de reescrita.
- Utilizar sistemas de tipos para regular a boa formação de programas.

Método de avaliação

É adotado o método de avaliação periódica, constando de dois ou mais instrumentos de avaliação, a realizar individualmente ou em grupo. Os alunos que não obtenham aprovação no quadro de avaliação periódica, se cumprirem os requisitos de frequência à UC, caso existam, são admitidos a exame final de recurso.

Funcionamento

Turno: T 1; Docente: Maria João Gomes Frade; Dep.: DI; Horas: 30.
Turno: TP 1; Docente: Maria João Gomes Frade; Dep.: DI; Horas: 30.

[ Outras UCs do Departamento ]