Código: | CC444 | Sigla: | CC444 |
Áreas Científicas | |
---|---|
Classificação | Área Científica |
OFICIAL | Ciência de Computadores |
Ativa? | Sim |
Página Web: | http://www.dcc.fc.up.pt/~pbv/aulas/linguagens |
Unidade Responsável: | Departamento de Ciência de Computadores |
Curso/CE Responsável: | Mestrado Integrado em Engenharia de Redes e Sistemas Informáticos |
Sigla | Nº de Estudantes | Plano de Estudos | Anos Curriculares | Créditos UCN | Créditos ECTS | Horas de Contacto | Horas Totais |
---|---|---|---|---|---|---|---|
M:CC | 4 | PE do Mestrado em Ciência de Computadores | 1 | - | 7,5 | 67 | 202,5 |
MI:ERS | 4 | Plano de Estudos a partir de 2007 | 4 | - | 7,5 | 67 | 202,5 |
Fornecer aos alunos fundamentos teóricos e técnicas práticas de implementação de linguagens de programação declarativas.
Os alunos deverão adquirir as seguintes competências: compreender os princípios utilizados para a implementação de linguagens funcionais (como Scheme, ML ou Haskell) e lógicas (Prolog ) em arquitecturas convencionais,os problemas tecnológicos associados ao seu desenvolvimento e as soluções existentes.
Implementação de linguagens funcionais: Introdução ao cálculo-lambda; definição de uma linguagem funcional mínima baseada no cálculo-lambda. Semântica estrita vs. não estrita. Estratégias de redução call-by-value e call-by-name. Implementação de funções de ordem superior usando "closures". A máquina abstracta SECD. Estratégia call-by-need e redução de grafos. A máquina abstracta STG. Utilização da linguagem Haskell como meta-linguagem para especificar interpretadores e compiladores da uma linguagem funcional mínima.
Implementação de linguagens lógicas: pequena revisão da resolução SLD e da linguagem Prolog. Arquitectura da máquina WAM (usada na implementação de Prolog): compilação, unificação, pilhas de execução, ambientes, pontos de escolha, backtracking e indexação. Extensões à WAM: tabulação. O sistema de tabulação YapTab: modelo básico de execução, representação e organização da tabela, suspensão/recuperação da computação, compilação de predicados tabelados.
Aulas teóricas de exposição e discussão dos conceitos fundamentais da teoria e prática do desenho e implementação de linguagens. Aulas práticas para resolução de exercícios ilustrativos dos conceitos introduzidos nas aulas teóricas.
Designação | Peso (%) |
---|---|
Exame | 60,00 |
Trabalho laboratorial | 40,00 |
Total: | 100,00 |
A avaliação dos alunos faz-se por realização de 2 trabalhos práticos e de um exame final escrito. Cada trabalho prático terá um peso total de 4 em 20 valores na classificação final da disciplina e o exame final escrito terá um peso de 12 em 20 valores na classificação final da disciplina. A classificação mínima no exame é de 40%.