Vulcan
provides
linguistic support for object oriented programming
based on the computation model of concurrent logic programming.
[KTMB86].
To accomodate the need of programmers to use convenient
program cliches, a preprocessor has been built that allows
to dispose of the verbosity adhering to
programming object oriented programs directly in Concurrent Prolog.
A program in Vulcan consists of clauses for classes
and clauses for methods, possibly mingled
with plain Concurrent Prolog clauses.
The object oriented features supported include message sending,
class inheritance and inheritance by delegation.
The advantage of such an approach is that it allows to offer
the programmer a variety of constructs, that are nevertheless
based on a simple and clean semantics.
Another advantage may lay in the concurrent nature of the language.
As a drawback, in comparison with the two previous approaches,
we may mention that backtracking is not supported;
more specifically backtracking over method calls
is not possible due to the committed choice character
of Concurrent Prolog.