This paper reports our experiences on the Scalable Network Of Workstation (SNOW) project, which implements a novel methodology to support user-level process migration for traditional stack-based languages such as C and Fortran in heterogeneous distributed environments. Our methodology addresses the three outstanding problems of transferring execution state, memory state, and communication state. The concepts of migration point analysis and buffered data transfer mechanism are proposed for execution state migration. A memory space representation model is introduced to obtain the machine-independent format of the underlying data structures for memory state migration. Finally, process migration and communication protocols are developed to migrate the communication state and maintain the functionality and correctness of data communication. The coordinated software systems consisting of compilation and runtime systems have been proposed to support these mechanisms. A prototype compilation ...