Friday, April 23, 2010

A Garbage Collector For the C Programming Language

ABSTRACT

Garbage collection absolves the developer from tracking memory usage and knowing when to free memory. If unreferenced locations are not collected, they pollute the memory and may lead to exhaustion of available memory during the execution of the program. Garbage collection (GC) is an important part of many modern language implementations. The benefits of garbage collection in comparison with manual memory management techniques are well known to programmers who have used high-level languages like Java and C#. Software professionals estimate that the programming effort required to manually perform dynamic memory management is approximately 40% of the total cost of developing a large software system. Unfortunately, these benefits have not traditionally been available to developers in ‘C’ programming language because of the lack of support for the GC feature.

We through our project have developed a library that builds in this feature, into the ‘C’ programming language and thus improving its functionality. We have in our library a set of routines that embed the feature of automatic dynamic memory management in to the ‘C’ programming language. These routines defined in our library form, the programmer’s Interface to our garbage collector. The interface is simple and the syntax is very much similar to that of the one already available in the standard library (stdlib.h) with very little modifications. In addition to the routines that support GC we also have routines that support Finalizers amongst others.


No comments:

Post a Comment