Abstract interpretation  has been long regarded as a promising optimization and analysis technique for high-level languages. In this article, we describe an implementation of a concurrent abstract interpreter. The interpreter evaluates programs written in an expressive parallel language that supports dynamic process creation, first-class locations, list data structures and higher-order procedures. Synchronization in the input language is mediated via first-class shared locations. The analysis computes intraand inter-thread control and dataflow information. The interpreter is implemented on top of Sting , a multi-threaded dialect of Scheme that serves as a high-level operating system for modern programming languages.