A brief comparison of several object oriented languages

In the table below you will find a comparison of several languages with respect to the most important features and tools of programming.

Languages:
________
________
Features
----v----
S
i
m
u
l
a
6
7
o
b
j
.
P
a
s
c
a
l
s
C
+
+
M
o
d
u
l
a
3
S
m
a
l
l
t
a
l
k
E
i
f
f
e
l
A
d
a
B
e
t
a
J
a
v
a
L
o
g
l
a
n
'
8
2
Modularisation
- nesting of modules + + - - - - + + - +
- inheritance + + + + + + - + + +
- - multilevel inheritance - - - - - - - + - +
- - multiple inheritance - - + - + + - - +7) +1)
-inherit in other modules2) - - - - - - - + - +
- static binding of names + + - + - - + + - +
Classes & Objects + + + + + + - + + +
Coroutines + + - - - - + + - +
Processes - - - + - - + + + +
- alien call of methods 3) - - - - - - - - - +
Signals & Exceptions - - - - - - + + ? +4)
Safety
- safe deallocation5) - - - - - - - ? - +
- type checking + + - - - - + + +? +
- protection of private + - - + - - + + + +
Genericity & Polymorphism
- types as formal param. - - - - - -+ -+ -+ -+ +
- overloading of operators - ? + + ? + + + + -
- virtual methods6) + - + ? + -+ - + + +

Footnotes

In Loglan'82:
  1. multiple inheritance may be obtained from multi-level inheritance and coroutines,
  2. it is possible to inherit a class in a procedure, a function, a process, a coroutine, a block,
  3. alien call is a truly object oriented protocol of executing a method of a callee process in cooperation between a calling and the callee processes,
  4. exceptions are handled with continuations and lastwill actions,
  5. i.e. absence of dangling references & possibility to deallocate no longer needed objects,
  6. with virtual methods there is no need for overloading,
    several languages admit only virtual methods, they do not admit usual methods
  7. in Java there is no multiple inheritance of classes, quite reasonably Java distinguishes between classes and interfaces. Multiple inheritance of interfaces is allowed.


AS Last update Tue 12 Mar 1996
ppp