Submitted to TOOLS USA 2003 Concurrent Object-Oriented Programming: The MP-Eiffel Approach Miguel Oliveira e Silva, Departamento de Electr´onica e Telecomunica¸ c˜oes–IEETA Universidade de Aveiro Aveiro, Portugal This article evaluates several possible approaches for integrating concurrency into object-oriented programming languages, presenting afterwards, a new language named MP-Eiffel. MP-Eiffel was designed attempting to include all the essential prop- erties of both concurrent and object-oriented programming with simplicity and safety. A special care was taken to achieve the orthogonality of all the language mechanisms, allowing their joint use without unsafe side-effects (such as inheritance anomalies). 1 INTRODUCTION In this article a new concurrent object-oriented programming language is presented. This language – named MP-Eiffel (Multi-Processor Eiffel) – is developed as an extension to the sequential object-oriented language Eiffel. This choice is not accidental. Eiffel’s powerful, safe, and simple object-oriented semantics proved to be an excellent framework to introduce concurrency mechanisms. The choices made for the language concurrent mechanisms, and their semantics, resulted from an attempt to provide a safe and simple integration of the essential properties of both worlds: concurrent and sequential object-oriented programming. In section 2 the essential characteristics, requirements, problems, and elementary solutions of concurrent programming are briefly reviewed. Object-oriented sequen- tial programming is then briefly introduced, giving emphasis to its fundamental and useful properties. Since this work is about creating programming language mechanisms, some im- portant language design rules are enumerated and succinctly justified. Those rules will be used to justify the choices made in MP-Eiffel. Several existing possibilities for integrating concurrency in an object-oriented language are presented and evaluated in section 4. A special care is taken to study the conditions under which unsafe interference may arise from the joint use of some mechanisms, such as the well known problem of “inheritance anomalies”. It is shown that such problems can be prevented without compromising neither of the essential properties of both worlds. Cite this article as follows: Miguel Oliveira e Silva: Concurrent Object-Oriented Programming: The MP-Eiffel Approach, in Journal of Object Technology, Submitted to TOOLS USA 2003 http://www.jot.fm/issues/issues /