Saltar para:
Logótipo
Você está em: Início > CC4023
Mapa das Instalações
FC6 - Departamento de Ciência de Computadores FC5 - Edifício Central FC4 - Departamento de Biologia FC3 - Departamento de Física e Astronomia e Departamento GAOT FC2 - Departamento de Química e Bioquímica FC1 - Departamento de Matemática

Implementação de Linguagens

Código: CC4023     Sigla: CC4023     Nível: 400

Áreas Científicas
Classificação Área Científica
OFICIAL Ciência de Computadores

Ocorrência: 2019/2020 - 2S Ícone do Moodle

Ativa? Sim
Página Web: http://www.dcc.fc.up.pt/~ricroc/aulas/1920/il
Unidade Responsável: Departamento de Ciência de Computadores
Curso/CE Responsável: Mestrado em Ciência de Computadores

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
M:CC 12 PE a partir do ano letivo de 2014 1 - 6 42 162
MI:ERS 0 Plano Oficial desde ano letivo 2014 4 - 6 42 162

Língua de trabalho

Português - Suitable for English-speaking students

Objetivos

Fornecer aos estudantes fundamentos teóricos e técnicas práticas de implementação de linguagens de programação declarativas.

Resultados de aprendizagem e competências

Os estudantes deverão adquirir as seguintes competências: compreender os princípios utilizados para a implementação de linguagens funcionais (como ML ou Haskell) e lógicas (como Prolog) em arquitecturas convencionais, os problemas tecnológicos associados ao seu desenvolvimento e as soluções existentes.

Modo de trabalho

Presencial

Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)

Pré-requisitos: conhecimentos elementares de programação funcional e lógica; conhecimentos de programação de baixo-nível (e.g. linguagem C).

Programa

Implementação de linguagens funcionais: 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. Tabulação em programação lógica: 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.

Bibliografia Obrigatória

Ait-Kaci Hassan; Warren.s abstract machine. ISBN: 0-262-01123-9
S.L. Peyton Jones; The implementation of functional programming languages. ISBN: 0-13-453325-9
S.L. Peyton Jones; Implementing functional languages. ISBN: 0-13-721952-0

Métodos de ensino e atividades de aprendizagem

Aulas de exposição, discussão e resolução de exercícios ilustrativos dos conceitos fundamentais da teoria e prática do desenho e implementação de linguagens.

Tipo de avaliação

Avaliação distribuída com exame final

Componentes de Avaliação

Designação Peso (%)
Exame 60,00
Trabalho laboratorial 40,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Estudo autónomo 84,00
Frequência das aulas 42,00
Trabalho laboratorial 36,00
Total: 162,00

Obtenção de frequência

N/A

Fórmula de cálculo da classificação final

A avaliação dos alunos faz-se por realização de 2 trabalhos práticos e de um exame 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%. 

As regras acima aplicam-se igualmente para melhoria de classificação e avaliações especiais.
 

Avaliação especial (TE, DA, ...)

Aplicam-se as mesmas regras de cálculo da classificação final.

Melhoria de classificação

Aplicam-se as mesmas regras de cálculo da classificação final.
Recomendar Página Voltar ao Topo
Copyright 1996-2025 © Faculdade de Ciências da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z
Página gerada em: 2025-07-31 às 09:04:29 | Política de Privacidade | Política de Proteção de Dados Pessoais | Denúncias | Livro Amarelo Eletrónico