Professional Documents
Culture Documents
Vinicius Petrucci
vpetrucci@ufba.br
Objetivos do curso
Pode reprovar por falta (em hora aula): >= 17h (~ 9 aulas)
mas no reprova caso nota final >= 70%
Projeto do compilador
Construir um compilador a melhor forma de aprender!
Trabalho feito em dupla ou individualmente
Requisitos
Deve ser implementado na linguagem C/C++
Deve executar no ambiente Linux/Unix
Pode usar ferramentas Lex (Flex) & Yacc (Bison)
Dividido em 3 fases
1) Analisador lxico: 15%
2) Analisador sinttico/semntico: 35%
3) Gerador de cdigo: 50%
Projeto do compilador
Compilador final deve receber 2 argumentos (argv)
./compilador <input> <output>
Exemplo: ./compilador codigo.jsc codigo.asm
Codigo gerado (assembly MIPS) executa no simulador SPIM
.data
_newline: .asciiz
add $a0, $a0, $t1
"\n"
addiu $sp, $sp, 4
.text
function main() li $v0, 1
.globl main
{ print(7+5); } syscall
main:
li $a0, 7
li $v0, 4 12
la $a0, _newline
sw $a0, 0($sp)
syscall
addiu $sp, $sp, -4
li $v0, 10
li $a0, 5
syscall
lw $t1, 4($sp)
Projeto do compilador Plgio
O projeto , em geral, difcil, ento...
execute por partes (filosofia do Jack, o Estripador)
comece por mdulos e construes mais simples
no deixe pra ltima hora!
2015 / 2
Eu sei o que vocs fizeram no semestre passado...
2016 / 1
Eu sei o que vocs fizeram no semestre passado...
2016 / 2
Disciplina no Google Classroom
https://classroom.google.com
Codigo: 7pdbthu