\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 & v = t & assigns the term t to the non-logical variable x \\ \x & t = v & 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 & new(c(t)) & creates an object executing c(t) \\ \cline{2-3} \x channels & C = new(channel) & creates a new channel \\ \cline{3-3} \x & C!t & output statement for term t over channel C \\ \x & C?t & 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 & O = new(c(t)) & creates an instance of object c \\ \cline{2-3} \x rendez-vous & O!m(t) & calls the method m(t) for O \\ \cline{3-3} \x & accept(m1,...,m_n) & accept methods m1,...,m_n \\ \hline \hline \multicolumn{3}{|c|}{\y {M DLP+ = DLP0 + DLP1 + DLP2 + process creation + resumptions M} } \\ \hline \hline \x object creation & O = new(c) & creates a passive instance of object c \\ \cline{2-3} \x process creation & Q = O!G & requests the evaluation of G by O \\ \cline{2-3} \x resumption & Q? & requests the answer substitutions resulting from a goal evaluation \\ \hline \hline \multicolumn{3}{|c|}{\y {M DLP* = DLP+ + allocation M} } \\ \hline \hline \x allocation & O = new(c@N) & creates a passive instance of object c at node N \\ \cline{3-3} \x & O = new(c(t)@N) & 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 & A & B :- Q = self!A, B, Q?. \\ \x synchronous rendez-vous & O!m(t) & O!G :- ismod(O),!, Q = O!G, Q?. \\ \x allocating goals & G@N & G@N :- symbolic(G), O = new(self@N), O!G. \\ \hline \e{tabular} \e{table}