Programmers use abstract data types to control the complexity of devel
oping serial programs. Abstract data types promote modular programming
by encapsulating state and operations on that state. In parallel envi
ronments abstract data types must also encapsulate the concurrency gen
eration and synchronization code required for their correct use and pr
esent interfaces that require no information about the global concurre
ncy pattern. An abstract data type is said to be implicitly synchroniz
ed if it meets these requirements. Implicitly synchronized abstract da
ta types promote modular parallel software and help programmers manage
the complexity of developing parallel programs. This paper defines th
e concept of implicitly synchronized abstract data types and shows how
the implicitly parallel language Jade supports their development and
use.