Abstract data type support in prolog and its relatio to parallelism
Abstract Data Type (ADT) support extends the variety of a system's types and facilitates code development, specification and verification. Moreover, when supported in a parallel environment, parallelism can be more easily detected and expressed. However, many issues arise when considering the introduction of ADTs in Prolog, especially if parallelism is taken into account. In this paper, an ADT support as extension to Prolog is presented. Its behaviour with respect to OR-parallelism is discussed. This support has various powerful characteristics and properties desirable for ADTs. Moreover, it retains the semantics of sequential execution and imposes no implications to parallelism. A complementary approach, suitable for deterministic parts of an application or for cases where globality is desired, is also included. Both approaches impose few requirements to the underlying Prolog system. An informal semantics which forms the basis of the implementation of the ADT support is also provided.