This project addresses several related topics in the design and use of concurrent program languages. First, the implementation of the latest version of the SR distributed programming language is being polished so it can be acquired and used by interested parties. Second, various extensions to the language and its implementation are being examined. Specific topics include providing facilities to link new programs into an executing SR program, providing efficient support for data abstraction, developing a stand-alone implementation, and implementing a powerful macro-processor to facilitate experimentation with new language mechanisms. Third, aspects of fault-tolerant programming are being investigated. This work includes developing, implementing, and experimenting with language mechanisms to handle the asynchronous nature of processor failures; and devising analytical techniques for determining the performance of fault-tolerant programs. Fourth, work is continuing on the MLP system for constructing distributed mixed- language programs. The focus here is on adding concurrency to the system by including SR as one of the supported languages, developing distributed applications using MLP, and extending the system to include additional sequential languages. Fifth, ways are being examined to extend SR to provide support for parallel programming; specific topics include providing global, shared operations and providing mechanisms for group communication. The final topic being explored is the development of paradigms for systematically solving distributed and parallel programming problems. It is expected that this research will lead to significant improvements in our understanding of language support issues for building concurrent systems.