IST_2012_simbolo_thumbnail

Comp – Compiladores

Curso

LEIC

Dificuldade

Média.

Carga horária

4 horas/semana, em média.

O que se aprende?

Nesta cadeira terás a oportunidade de desenvolver um compilador para uma linguagem simples, desenhada pelo teu professor, recorrendo a ferramentas como: o flex, byacc, burg e nasm.
A primeira parte da matéria é parecida com aquilo que foi dado em Teoria da Computação, os temas abordados incluem: expressões regulares, análise léxica, flex, gramáticas e byacc. As expressões regulares são uma matéria importante, pois são bastantes usadas no dia-a-dia de um engenheiro informático, por exemplo; Javascript tem suporte na linguagem para estas expressões.
A segunda parte é mais ‘low-level‘, a geração de código, o código postfix e, otimização serão os temas abordados. A avaliação da cadeira é feita através de um projeto e, um exame.

 

Devo comprar o livro?

Não. Os slides do professor, e os teus apontamentos, são suficientes. Não te esqueças, de escrever a resolução de todos os exercícios nas aulas, é muito importante!

Dicas

A primeira aula prática é interessante, nesta aula são apresentadas ferramentas Unix, que qualquer engenheiro deveria conhecer. Aproveita a aula para esclareceres dúvidas sobre ferramentas pois irás usá-las no projeto que efetuares. As restantes aulas são também importantes, pois os exercícios do exame não costumam ser muito diferentes dos exercícios realizados nas aulas práticas.

Infelizmente, as aulas práticas, não costumam ajudar muito no projeto. A maior ajuda que tens no projeto são os ‘horários de dúvidas’, dados nos laboratórios, onde deves aproveitar para esclarecer as dúvidas, mostrando ao professor o ‘código’ no teu computador.

A primeira parte do projeto é a mais acessível, deves olhar para o exemplo fornecido, o Compact, antes de escreveres o ‘código’. Não olhes para projetos realizados em anos anteriores são, por norma, complexos e de difícil compreensão, o exemplo fornecido é mais simples. A segunda parte do projeto implica gerar assembly, saber um pouco de assembly ajuda nesta parte do projeto, portanto aplica-te!

Quanto ao exame, costuma ser parecido com os exames anteriores, mas não existem exames resolvidos pelo professor, portanto deves tentar resolvê-los, e mostrar ao professor nos ‘horários de dúvidas’.

Boa sorte :)

Recursos

Página da cadeira

Teóricas, práticas, testes @SHELF (Cortesia: NEERCI)

Compiladores – David Matos

MOOC – Compilers @Coursera

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>