Saltar para:
Logótipo
Você está em: Início > CC320
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

Processamento de Linguagens

Código: CC320     Sigla: CC320

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

Ocorrência: 2010/2011 - 2S

Ativa? Sim
Unidade Responsável: Departamento de Ciência de Computadores
Curso/CE Responsável: Licenciatura 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
L:CC 31 Plano de estudos de 2008 até 2013/14 3 - 5 -
MI:ERS 39 Plano de Estudos a partir de 2007 3 - 5 -

Língua de trabalho

Português

Objetivos

Compreensão e implementação de um compilador e interpretador de uma linguagem de programação.

Programa

Introdução ao processamento de linguagens de programaçao. Compiladores versus Interpretadores. Análise Léxica. Geradores automáticos de analisadores léxicos. Análise sintáctica (parsers LL, LR e LALR). Geradores de parsers. Sintaxe abstracta. Análise semântica: tabelas de símbolos, verificação de tipos. Registos de activação. Tradução para código intermédio. Geração de código: grafos de fluxo de dados, alocação de registos. Optimização de ciclos.

Bibliografia Obrigatória

000002179. ISBN: 0-521-58390-X
000089025. ISBN: 0-321-48681-1
000088450. ISBN: 0-534-93972-4
000002180. ISBN: 0-521-58274-1

Tipo de avaliação

Avaliação distribuída com exame final

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

13/20 - Exame final
7/20 - Trabalho prático

Provas e trabalhos especiais

TRABALHO PRÁTICO DE PROCESSAMENTO DE LINGUAGENS

O objectivo do trabalho é fazer um compilador de uma linguagem imperativa simples (a descrição
está no final do email) para assembler (MIPS ou Apoo). A linguagem
utilizada é o C. O trabalho deverá ser enviado por email para mim até ao
final dia 29 de Maio e deverá ser apresentado na aula prática do dia 30
de Maio.

É um trabalho em grupo de 2 pessoas ou individual e a valorização (no
total 7 valores) é a seguinte:

- Analisador léxico: 0.5 valor
- Analisador sintáctico: 2 valores
- Construção da árvore sintáctica (numa estrutura em C): 1.5 valores
- Verificação de tipos: 1 valor
- Geração de código final: 2 valores

A linguagem tem comandos if then, if then else, atribuições instruções
de read e write e ciclos repeat until. Só tem variáveis e números
inteiros embora possa ter instruções booleanas nos testes.

Um exemplo de programa, para o factorial, é:

read x;
if x> o then
fact = 1;
repeat
fact = fact * x;
x = x - 1
until x == 0;
write fact
endif

Recomendar Página Voltar ao Topo
Copyright 1996-2024 © Faculdade de Ciências da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2024-11-04 às 12:34:42 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias