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



Modifié le: dimanche 23 novembre 2025, 09:19