This idea is suggested by one of our site's reader and later edited our team to make it more informative for you.Garbage collector is very important program to free unused memory. Garbage collection is used to free unused memory automatically without using explicit free method by programmer. As a programmer, you may think that this freeing unused memory should not be your concern but this thinking has been changed by Boehm-Diemers-Weiser GC library which can be used and added easily inside the program.
This project seems difficult but if you break it into parts than it becomes lot easier to understand. If you google this topic, you will find the Boehm-Demers-Weiser collector which you can fork using git. Though it is very easy and explanation given on this page is great but still, I would like you to consider this article(http://web.engr.illinois.edu/~maplant2/gc.html) for better understanding.
This project needs to be understood in three functions:
1) First one is for allocating memory
2) Second is for scanning memory and
3) Third is used for removing unused memory.
This project is about Automatic Dynamic Memory Management.
Download it from here http://www.hboehm.info/gc/