\b{table}[hp]
\caption{DLP - an overview}
\b{tabular}[t]{|r||l|p{7.5cm}|} \hline
\multicolumn{3}{|c|}{\y {M DLP0 = Prolog + objects + non-logical variables M} }
\\ \hline \hline
\x non-logical variables & & assigns the term t to
the non-logical variable x
\\ \x & & unifies the term t with the value of
the non-logical variable x
\\ \hline \hline
\multicolumn{3}{|c|}{\y {M DLP1 = DLP0 + communication over channels M} }
\\ \hline \hline
\x object creation & & creates an object executing
\\ \cline{2-3}
\x channels & & creates a new channel
\\ \cline{3-3}
\x & & output statement for term t over channel C
\\ \x & & input statement for term t over channel C
\\ \hline \hline
\multicolumn{3}{|c|}{\y {M DLP2 = DLP0 + method call by rendez-vous M} }
\\ \hline \hline
\x object creation & & creates an instance of object c
\\ \cline{2-3}
\x rendez-vous & & calls the method for O
\\ \cline{3-3}
\x & & accept methods
\\ \hline \hline
\multicolumn{3}{|c|}{\y {M DLP+ = DLP0 + DLP1 + DLP2 + process creation + resumptions M} }
\\ \hline \hline
\x object creation & & creates a passive instance of object c
\\ \cline{2-3}
\x process creation & & requests the evaluation of G by O
\\ \cline{2-3}
\x resumption & & requests the answer substitutions resulting from a
goal evaluation
\\ \hline \hline
\multicolumn{3}{|c|}{\y {M DLP* = DLP+ + allocation M} }
\\ \hline \hline
\x allocation & & creates a passive instance of object c at node N
\\ \cline{3-3}
\x & & creates an active instance of object c at node N
\\ \hline \hline
\multicolumn{2}{|c|}{\y Abbreviations } & Definition
\\ \hline \hline
\x and-parallel operator & & A & B :- Q = self!A, B, Q?. \\
\x synchronous rendez-vous & & O!G :- ismod(O),!, Q = O!G, Q?. \\
\x allocating goals & & G@N :- symbolic(G), O = new(self@N), O!G.
\\ \hline
\e{tabular}
\e{table}