Conteúdo / Main content
Menu Rodapé
  1. Início
  2. Cursos
  3. Engenharia Informática
  4. Linguagens de Programação e Compiladores

Linguagens de Programação e Compiladores

Código 14460
Ano 1
Semestre S1
Créditos ECTS 6
Carga Horária PL(30H)/T(30H)
Área Científica Informática
Objectivos de Aprendizagem • Compreender a contribuição dos compiladores para a fiabilidade dos sistemas de software;
• Compreender os diferentes aspectos das linguagens de programação através da sua compilação;
• Compreender os mecanismos subjacentes à compilação: a tradução de uma linguagem para outra, a sua otimização e a funcionalidade das diferentes fases;
• Compreender a relação entre linguagem de alto nível, representação intermédia, análises e optimizações;
• Compreender o processo de geração de código para arquitecturas de computadores modernas, incluindo máquinas virtuais;
• Implementar um compilador para uma linguagem de programação realista ou extender uma já existente;
• Selecionar ferramentas modernas para implementar partes de compiladores e interpretar a sua funcionalidade; e
• Comunicar os resultados obtidos de forma clara e precisa, utilizando um relatório técnico.
Conteúdos programáticos A. Programação Assembly RISC-V
B. Sintaxe abstracta, semântica e interpretadores
C. Análise lexical e sintáctica
D. Tipagem
E. Estratégias de avaliação e passagem de parâmetros
F. Compiladores de linguagens funcionais e orientadas a objectos
G. Optimização do compilador
H. Alocação de memória
Metodologias de Ensino e Critérios de Avaliação Os conteúdos desta unidade curricular são expostos em aulas teóricas (método expositivo e interativo) e a sua vertente prática é explorada em aulas práticas laboratoriais. Cada tipo de aula tem duas horas de contacto semanal.
As aulas práticas regem-se por guias laboratoriais que os estudantes executam em computadores de laboratórios. Os trabalhos individuais e de grupo propostos são desenhados de modo a que os estudantes desenvolvam as capacidades técnicas descritas nos objetivos através do projeto e implementação de labs. Avaliam-se as componentes teóricas e práticas recorrendo a 3 elementos principais:
- Labs 60% - 12 Valores;
- Project 40% - 8 Valores.
Bibliografia principal Alfred V. Aho, Monica S. Lam, Ravi Sethi et Jeffrey D. Ullman. Modern Compilers: Principles, Techniques, and Tools.
Benjamin C. Pierce. Types and Programming Languages.
Randal E. Bryant et David R. O'Hallaron. Computer Systems: A Programmer's Perspective.
Língua Português
Data da última atualização: 2024-09-23
As cookies utilizadas neste sítio web não recolhem informação pessoal que permitam a sua identificação. Ao continuar está a aceitar a política de cookies.