\setlength{\unitlength}{0.01cm}
\hspace{-2cm}\b{tabular}[t]{r @{\hspace{0.1cm}}p{11.5cm}}
&
\b{picture}(950,400)(-20,0)
\nop{
\put(100,300){ \oval(300,200) }
\put(200,420){\line(5,2){150} }
\put(-60,260){ \makebox(300,200){ constructor } }
}
\put(660,-100){
\makebox(50,500){
\b{tabular}[b]{|r|r@{\hspace{0.1cm}}p{2.0cm}|}
\multicolumn{3}{|c|}{\x {\bf object {M counter M} } }
\\ \hline \hline
{M instance variable M} & n & \\
\cline{2-3}
{M methods M} &
initialize & n \assignsym 0.
\\ %%\cline{2-3} \cline{2-3}
\x &
increment & n \assignsym n + 1. \\
\x & value & result n. \\
\nop{
\multicolumn{3}{|c|}{ {M state information M} }
\\ \hline
{M accept list M} & \multicolumn{2}{p{3.5cm}|}{ ctr } \\ \hline
{M accept queue M} & \multicolumn{2}{p{3.5cm}|}{ empty } \\ \hline
{M process stack M} & \multicolumn{2}{p{3.5cm}|}{ empty } \\ \hline
{M locked M} & \multicolumn{2}{p{3.5cm}|}{ true } \\ \hline
}
\e{tabular}
} }
\e{picture}
\\ \\
\nop{
\it explanation &
\multicolumn{1}{p{12.5cm}}{
\small When an instance of an object is created, a copy
is made of the object declared in the program.
Each instance has its own non-logical (instance) variables.
For active objects
a constructor process is started evaluating the constructor,
in this case the goal .
Since the is initially set to accept
a method with the name of the object, the constructor
goal will be the first goal that is accepted.
Other goals will then be put in the accept queue to
await a proper accept statement.
} \\ %%\cline{2-2}
}
\e{tabular}