CS 224 Project 5 - Memory Allocation

Objectives
Implement memory allocation for the Jack Compiler

Description:
Take a look at the project in Chapter 12.1.3 on pp252-256 of N2T and Webber Chapter 14 and implement the Memory library module for the Jack Compiler.  Your memory manager should recycle memory and you can use either first-fit or best-fit heuristic to find the block in the free-List to allocate.

Process:
You will find the file Memory.jack in the project/12 directory with method stubs.  Complete this file and compile it with a Jack compiler.  Then use your Memory.vm file rather than the given one to test the given Jack programs like Pong.

Academic integrity is very important as you embark upon this project.  Wrestling and finally mastering the concepts needed to complete this project will greatly improve your understanding of how programming languages work. Since your learning is the highest priority to me, I want to clearly emphasize the following:

  1. The process of figuring out what you need to do to complete the project is where the learning is happening.  By cheating and looking at an online or another student solution, you are robbing yourself of this learning.  Remember that learning is why you are here, right?!
  2. You will sometimes find yourself frustrated and stuck as you embark upon this learning process.  When this happens, instead of cheating yourself by looking at a solution, talk out your problem with me or a fellow student. 
  3. Helping a fellow student does not involve giving them code but you can explain to them how to proceed.  Doing so benefits both the student getting assistance and the student helping out.

Submission and Grading:
Submit your Memory.jack code in GoucherLearn by the due date even if it is not working perfectly.  After I have graded on the correctness of your code and made comments, if you have errors I will ask you to resubmit after making the changes I suggest.  In doing so, you will have the opportunity to earn back up to 50% of the points you lost in the first submission.