\begin{figure}[htbp] \caption{Communication between processes} \setlength{\unitlength}{1cm} \hspace{1.7cm} \b{tabular}[t]{|p{4.0cm}|p{4.0cm}|p{4.0cm}|} \hline \b{picture}(4.0,4.5)(-0.3,-0.5) \put(0.3,2.6){\makebox(0,0){ O!m(t) } } \put(2.1,2.6){\makebox{ m(t) } } \put(1.0,2.5){\circle{0.1}} \multiput(1.1,2.5)(0.1,0){9}{\line(6,0){0.05}} \put(2.0,2.5){\circle*{0.1}} \put(1.0,2.6){\line(0,6){0.8}} \e{picture} & \b{picture}(4.0,4.5)(-0.3,-0.5) \put(0.3,2.6){\makebox(0,0){ O!m(t) } } \put(2.1,2.6){\makebox{ m(t) } } \put(0.6,1.1){\makebox(0,0){ Q? } } \put(1.0,1.0){\circle{0.1}} \put(1.0,1.0){\line(0,6){1.4}} \put(1.0,2.5){\circle{0.1}} \multiput(1.1,2.5)(0.1,0){9}{\line(6,0){0.05}} \put(2.0,2.5){\circle*{0.1}} \put(1.0,2.6){\line(0,6){0.8}} \multiput(2.0,1.1)(0,0.2){7}{\line(0,6){0.1}} \e{picture} & \b{picture}(4.0,4.5)(-0.3,-0.5) \put(0.3,2.6){\makebox(0,0){ O!m(t) } } \put(2.1,2.6){\makebox{ m(t) } } \put(0.6,1.1){\makebox(0,0){ Q? } } \put(2.1,1.1){\makebox{ %h_1,%h_2,... } } \put(1.0,0.1){\line(0,6){0.8}} \put(1.0,1.0){\circle{0.1}} \put(1.0,1.0){\line(0,6){1.4}} \put(1.0,2.5){\circle{0.1}} \multiput(1.1,2.5)(0.1,0){9}{\line(6,0){0.05}} \multiput(1.1,1.0)(0.1,0){9}{\line(6,0){0.05}} \put(1.15,1.0){\vector(-4,0){0.1}} \put(2.0,2.5){\circle*{0.1}} \put(1.0,2.6){\line(0,6){0.8}} \multiput(2.0,1.1)(0,0.2){7}{\line(0,6){0.1}} \put(2.0,1.0){\circle{0.1}} \e{picture} \\ \hline \hline \leftcomment{goal} Q = O!m(t) & m(t) & Q? \\ \leftcomment{effect} \small \sloppy A new process is created, \n to evaluate the method call m(t). The goal O!m(t) is first rewritten to the sequence Q = O!m(t), followed by Q?, in order to request for the resulting answer substitutions. & \small \sloppy The goal m(t) is evaluated by a processes refering to the object for which the method is called. The calling process must wait for the results. & \small \sloppy Backtracking over the results may take place as long as there are any alternative solutions. Backtracking is initiated by the processes that invoked the rendez-vous. \\ \hline \e{tabular} \e{figure}