Implicitly synchronized abstract data types: data structures for modular parallel programming
Martin Rinard · Journal of programming languages · 1998
Programmers use abstract data types to control the complexity of developing serial programs. Abstract data types promote modular programming by encapsulating state and operations on that state. In parallel environments abstract data types must also encapsulate the concurrency generation and synchronization code required for their correct use and present interfaces that require no information about the global concurrency pattern. An abstract data type is said to be implicitly synchronized if it meets these requirements. Implicitly synchronized abstract data types promote modular parallel software and help programmers manage the complexity of developing parallel programs. This paper defines the concept of implicitly synchronized abstract data types and shows how the implicitly parallel language Jade supports their development and use.