Designação | Código | Curso | Regime | Regente |
---|
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. |