Eiffel//

The Eiffel// programming language [22][21][20], an extension of Eiffel [72], is a parallel language supporting programming on multi-processors architectures. The Eiffel// language belongs to the category of asynchronous languages with asynchronous communications. As an extension of Eiffel, Eiffel// is an imperative actor language (as opposed to functional actor languages [67][2][1][60]), with strong typing and sequential processes.

The main goal of this language is to make easier programming of parallel programs. To achieve this goal, we aim at bringing to parallel programming the reuse aspect of object-oriented programming. With this end in mind, the following features have been developed:

All these concepts are provided in the language thanks to the following technical features of Eiffel//:

The Eiffel// language has been implemented as an extension of the commercial version ISE Eiffel (version 2.2 A) running on a network of Sun workstations. The implementation languages are Eiffel and C (for low-level system calls).

This implementation of Eiffel// maps each language process into a Unix operating system process, but nothing in the model prevents it from achieving an implementation in multithreaded address space for the sake of fine-grained concurrency. Inter-process communication is implemented through the socket mechanism. This allows execution of distributed applications across a local or even wide-area network. Processes are created with virtual machine names. The mapping to real network machines is dynamic: specified before each system execution, without re-compilation.


                  



Project