20 aprilie 2015

Princeton Compilers design (SML) --- lista de teme rezolvate

Enunturile sunt prezentate pe pagina COS 320, prof. Andrew Appel (Princeton) dar si in folderul dropbox aferent _ENUNT_.html.

Rezolvarile, dupa cum urmeaza:
(2) Alpha convert 
(3) Type checking
(4) Lexical analyzer 
(5) Parser
(6) Simple MIPS code for solving Fibonacci
(7), (8), (9), (10) aici :
(7) Assembler code generation for Fun  - codegen.sml
(8) Liveness analysis - interference graph - liveness.sml - nu este 100% corect
(9) Graph coloring & register allocation - color.sml
(10) Spills / Putting it together  - regalloc.sml , mips.sml

Pentru compilare si rulare, stergeti toate extensiile .txt puse doar pentru pre-vizualizare in dropbox. 
> sml
Compilare: 
> CM.make "sources.cm";
Rulare (variaza, dupa caz):
> Test.run();
> RunLex.runlex "test.fun";      (* a #4 *)
> Compile.compile "test.fun";   (* a #5  si restul*)

Nota: sunt rezolvari personale care nu sunt ferite de bug-uri sau alte defecte, insa marele lor merit este ca au reusit ca limbajele de asamblare sa nu-mi mai para ca un fel de cutie neagra..

Niciun comentariu: