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.