Garbage Collection (GC) is a critical memory management process in programming languages based on dynamic object creation and automatic reclamation of storage. The problem of the GC for uni-processor systems has been well understood with many efficient solutions proposed and used. GC algorithms have been also proposed and used for shared memory systems. However, few GC algorithms have been proposed for distributed memory system. In this thesis, a new GC algorithm for distributed memory system, called Mark and Copy Garbage Collection (M&CGC) is proposed. The algorithm is based on parallel copying GC algorithm combining with some aspects of Mark & Sweep GC and Copying GC algorithms. M&CGC has been implemented and evaluated using an underlying architecture with different network topology (linear, ring and mesh). The performance of our algorithm is compared with the Mark and Sweep Garbage Collection (M&SGC) which proposed by McCarthy but in distributed environment. Analysis of evaluation results shows that our algorithm always out-performs the M&SGC algorithm with respect to total execution time.