Partie 2
Sujet (seconde partie)
Archive contenant les nouveaux fichiers mips.ml et compile.ml (à compléter) ainsi que des modifications des fichiers typechecker.ml (la fonction principale de type-checking renvoie maintenant le programme au lieu de unit) et mgoc.ml (ajout de la phase de compilation) - voir diff ci-dessous.
Attention à ne pas écraser vos propres fichiers lors de la décompression de l'archive!
diff micro-go1/typechecker.ml micro-go2/typechecker.ml
59c59,60
< Env.iter (fun _ fd -> check_function fd) fenv
---
> Env.iter (fun _ fd -> check_function fd) fenv;
> ld (* ici on renvoie le programme initial, mais on peut aussi appliquer des transformations en vue de la compilation *)
diff micro-go1/mgoc.ml micro-go2/mgoc.ml
39c39,42
<
---
> let code = Compile.tr_prog f in
> let c = open_out (Filename.chop_suffix file ".go" ^ ".s") in
> Mips.print_program c code;
> close_out c