Podcasts de Compiladores
No primeiro semestre de 2009, comecei a gravar minhas aulas ao vivo e a disponibilizá-las aos meus alunos através de podcasts. Apesar do procedimento simples que estou usando para a gravação (um microfone banal), a qualidade do som me parece suficientemente boa, após edição, para que este material possa ser útil à comunidade.
Para assinar o podcast, basta copiar/colar a URL seguinte em seu cliente de podcasts favorito: http://www.inf.ufrgs.br/~nicolas/compil/podcast-compiladores-nicolas-maillard-ufrgs.xml. Alternativamente, clicar na URL deve possibilitar o accesso aos arquivos mp3.
Slides de Compiladores
A seguir, encontra-se parte de minhas lâminas na disciplina de Compiladores. Esses documentos são renovados a cada semestre e a versão de referência atualizada se encontra no Moodle, junto com muito mais material.
- Análise lexical
- Gramáticas livres de contexto
- Análise sintática top-down e LL
- Análise sintática bottom-up e Yacc
- Geração de código: expressões, arrays
- Suporte ao run-time
- Compiladores e linguagens de script
Projeto de Compiladores
Em 2008/2, reformatei a disciplina para que os alunos implementassem um pequeno compilador, chamado pico. O projeto durou o semestre todo, sendo decomposto em 7 etapas de duração média 3 semanas. Cada etapa obrigava os alunos (em grupo de três) a revisar e implementar uma das fases do compilador (análise lexical, sintática, semântica, geração de código, assembly), usando o Lex e o Yacc. Afinal, eles chegavam a ter um compilador funcional, gerando código executável.
Para ter uma noção, você pode consultar a especificação do pico em PDF, bem como baixar e olhar os casos de testes. Os testes da etapa 6 incluem código completo compilado pelo pico.
—
Fri Apr 02 16:48:12 -0300 2010