\setlength{\unitlength}{1cm}
\hspace{1.9cm}
\b{tabular}[t]{|p{3.8cm}|p{3.8cm}|p{3.8cm}|} \hline
\b{picture}(3.5,3.6)(0.9,1)
\put(2.5,3.5){
\b{tabular}[b]{|p{1.4cm}|} \hline
{\small\it object} ctr \\
{\small\it var} n = 0 \\ \hline
\e{tabular}
}
\put(1.2,3.2){ \circle*{0.5} }
\put(0.8,3.7){ \makebox{ ctr() } }
\put(1.5,3.3){\line(5,2){1.1} }
\e{picture}
&
\b{picture}(3.5,3.6)(0.9,1)
\put(2.5,3.5){
\b{tabular}[b]{|p{1.4cm}|} \hline
{\small\it object} ctr \\
{\small\it var} n = 1 \\ \hline
\e{tabular}
}
\put(1.2,3.2){ \circle*{0.5} }
\put(0.8,3.7){ \makebox{ ctr() } }
\put(1.5,3.3){\line(5,2){1.1} }
\put(1.8,2){ \circle{0.5} }
\put(0.9,2.4){ \makebox{ inc() } }
\put(2.1,2.3){\line(2,3){0.7} }
\e{picture}
&
\b{picture}(3.5,3.6)(0.9,1)
\put(2.5,3.5){
\b{tabular}[b]{|p{1.4cm}|} \hline
{\small\it object} ctr \\
{\small\it var} n = 1 \\ \hline
\e{tabular}
}
\put(1.2,3.2){ \circle*{0.5} }
\put(0.8,3.7){ \makebox{ ctr() } }
\put(1.5,3.3){\line(5,2){1.1} }
\put(1.8,2){ \circle{0.5} }
\put(0.9,2.4){ \makebox{ inc() } }
\put(2.1,2.3){\line(2,3){0.7} }
\put(3.6,1.5){ \circle{0.5} }
\put(3.4,2.1){ \makebox{ value(X) } }
\put(3.6,1.8){\line(-1,6){0.26} }
\e{picture}
\\ \hline \hline
\leftcomment{goal}
O = new(ctr()) & O!inc() & O!value(X) \\
\leftcomment{effect}
\small \sloppy A new object is created,
and its non-logical variable is initialized
to zero.
& \small \sloppy The value of the non- \n logical variable n is
incremented by one.
& \small \sloppy The value of the non- \n logical variable is bound to
the logical variable X.
\\ \hline \hline
\leftcomment{method}
ctr() :- accept(any), ctr().
& inc() :- n = n + 1.
& value(N) :- N = n.
\\ \hline
\e{tabular}