Static Checking of Interoperating Components
Mark Grechanik, William R. Cook, Don S. Batory, Karl J. Lieberherr · 2006
Components (objects, modules, or programs) access and manipulate each others data. When components are written in the same language, the static checking of component references is well-understood. In contrast, when a component references another component, called a foreign component, that is written in a different language or that is hosted on a different platform, the static checking of references may not be performed, delaying discovery of type errors to runtime. Foreign Object REification Language (FOREL) is an extension of object-oriented languages that provides a common abstraction for foreign component access and manipulation. Using type checking and static analysis, illegal references to foreign components in FOREL can be discovered at compiletime. We describe our implementation, prove the soundness of the FOREL type system, and give our type checking algorithm. We used FOREL on a commercial system and discovered errors that were not detected during its initial design and testing.