Enunturile sunt prezentate pe pagina COS 320, prof. Andrew Appel (Princeton) dar si in folderul dropbox aferent _ENUNT_.html.
Rezolvarile, dupa cum urmeaza:
(1) Interpreter
(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
(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*)
> 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:
Trimiteți un comentariu