3 <title>Brief comparison of OO Languages</title>
\r
9 <H1 Align=center> <img align=middle src="loglanmm.gif"> A brief comparison of several object oriented languages </H1>
\r
10 <p Align=Left>In the table below you will find a comparison of several languages with respect to the most important features and tools of programming.</p>
\r
15 <th>Languages:<br> ________<br>________<br><em>Features</em><br>----v---- </th>
\r
16 <td valign=top> S<br>i<BR>m<br>u<br>l<br>a<br>6<br>7 </td>
\r
17 <td valign=top> o<br>b<br>j<br>.<br>P<br>a<br>s<br>c<br>a<br>l<br>s </td>
\r
18 <td valign=top> C<br>+<br>+ </td>
\r
19 <td valign=top> M<br>o<br>d<br>u<br>l<br>a<br> 3 </td>
\r
20 <td valign=top> S<br>m<br>a<br>l<br>l<br>t<br>a<br>l<br>k </td>
\r
21 <td valign=top> E<br>i<br>f<br>f<br>e<br>l </td>
\r
22 <td valign=top> A<br>d<br>a </td>
\r
23 <td valign=top> B<br>e<br>t<br>a </td>
24 <td valign=top> J<br>a<br>v<br>a </td>
25 <th valign=top> L<br>o<br>g<br>l<br>a<br>n<br>'<br>8<br>2 </th>
\r
28 <th><em> Modularisation</em> </th>
\r
35 <td> - nesting of modules</td>
\r
48 <td> - inheritance</td>
\r
61 <td> - - multilevel inheritance</td>
\r
74 <td> - - multiple inheritance</td>
\r
83 <td> +<sup>7)</sup> </td>
\r
84 <td> +<sup>1)</sup> </td>
\r
87 <td> -inherit in other modules<sup>2)</sup></td>
\r
100 <td> - static binding of names</td>
\r
113 <tr><td></td><td></td></tr>
\r
116 <td> <em>Classes & Objects </em></td>
\r
129 <tr><td></td><td></td></tr>
\r
132 <td><em> Coroutines </em></td>
\r
145 <tr><td></td><td></td></tr>
\r
148 <td> <em>Processes</em></td>
\r
161 <td> - alien call of methods <sup>3)</sup></td>
\r
174 <tr><td></td><td></td></tr>
\r
177 <td> <em>Signals & Exceptions</em></td>
\r
187 <td> +<sup>4)</sup> </td>
\r
190 <tr><td></td><td></td></tr>
\r
194 <th> <em>Safety</em></th>
\r
197 <td> - safe deallocation<sup>5)</sup></td>
\r
210 <td> - type checking</td>
\r
223 <td> - protection of private</td>
\r
236 <th> <em>Genericity & Polymorphism </em></th>
\r
239 <td> - types as formal param.</td>
\r
252 <td> - overloading of operators</td>
\r
265 <td> - virtual methods<sup>6)</sup></td>
\r
277 <tr><td></td><td></td></tr>
\r
284 <h4> Footnotes </h4>
\r
289 <li> multiple inheritance may be obtained from multi-level inheritance and
\r
291 <li> it is possible to inherit a class in a procedure, a function, a process, a coroutine, a block,
\r
292 <li> alien call is a truly object oriented protocol of executing a method of
\r
293 a callee process in cooperation between a calling and the callee processes,
\r
294 <li> exceptions are handled with continuations and lastwill actions,
\r
295 <li> i.e. absence of dangling references <em>& </em> possibility to deallocate no longer needed objects,
\r
296 <li> with virtual methods there is no need for overloading,<br>
\r
297 several languages admit only virtual methods, they do not admit usual methods
\r
298 \r<li> in Java there is no multiple inheritance of classes, quite reasonably
299 Java distinguishes between classes and interfaces. Multiple inheritance of interfaces is allowed.
302 <a href="quick.htm"><img src="/icons/prevpage.gif"></a>
\r
303 <a href="loghome.htm"><img src="/icons/homepage.gif"></a>
\r
304 <a href="microman/homepage.htm"><img src="/icons/nextpage.gif"></a>
\r
307 <a href="GMyAS.html">AS </a> Last update Tue 12 Mar 1996
\r