Foundations of a simple and unified component-oriented language
Component-oriented programming (COP) is actually a key research track in software engineering. A variety of component-oriented languages (COLs) have been proposed with new or adapted abstractions and mechanisms to support this new paradigm. However, the proposed features vary quite widely from one proposal to another. There is a need for a closer analysis and synthesis of these features to really discover the new possibilities of COP. In this article we present SCL, our proposition of simple language dedicated to COP. Through the presentation of SCL, we discuss and compare the main features of COLs such as component class, component, interface, port, service or connector. But these features are not enough to build a COL. Indeed, unanticipated connection of independently developed components is one of the key issues of COP. Most approaches use language primitives or connectors and shared interfaces to connect components. But shared interfaces are in contradiction with the philosophy of independently developed components. The approach of SCL is to provide a uniform component connection mechanism based on special components called connectors. SCL also integrates component properties which enable connections based on component state changes with no requirements of specific code in components.
component-oriented language connector component connection component property