A Framework for Modular Linking in OO Languages
نویسندگان
چکیده
The successful assembly of large programs out of software components depends on modular reasoning. When the linking of component code is modular, components can be compiled and type checked separately, deployed in binary form, and are easier to reuse. Unfortunately, linking is not modular in many mainstream OO languages such as Java. In this paper we propose an intuitive and formal framework for enhancing a language with modular linking, which is applied to the specific problem of making linking in Java modular. In our proposed framework, the degree to which components can be reasoned about modularly is adversely affected by language features that limit abstraction. We show that most of Java’s core language features, such as inheritance, permit a high degree of modular linking even in the presence of cyclic dependencies.
منابع مشابه
Expressive Modular Linking for Object-Oriented Languages
In this paper we show how modular linking of program fragments can be added to statically typed, object-oriented (OO) languages. Programs are being assembled out of separately developed software components deployed in binary form. Unfortunately, mainstream OO languages (such as Java) still do not provide support for true modular linking. Modular linking means that program fragments can be separ...
متن کاملReconciling Software Extensibility with Modular Program Reasoning
Reconciling Software Extensibility with Modular Program Reasoning by Todd David Millstein Chair of Supervisory Committee: Professor Craig Chambers Computer Science & Engineering Programming languages that support the creation of reusable software components help make programs easier to create, maintain, and understand. To accrue these benefits in practice, a component must be extensible, able t...
متن کاملModular Verification of OO Programs with Interfaces∗ (Technical Report)
Interface type in OO languages supports polymorphism, abstraction and information hiding by separating interfaces from their implementations, and thus enhances modularity of programs. However, they cause also challenges to the formal verification. Here we present a study on interface types, and develop a specification and verification theory based on our former VeriJ framework. We suppose multi...
متن کاملA Rewriting-Based Approach to OO Language Prototyping and Design
This paper introduces a framework for the rapid prototyping of object oriented programming languages. This framework is based on specifying the semantics of a language using term rewriting and a continuation-based representation of control. The notation used, called K, has been developed specifically for programming languages to overcome limitations in more general rewriting notation, and provi...
متن کاملOO languages late-binding signature
Most comparisons among OO languages focus on structural or philosophical features but rarely on dynamic ones. Beyond all these structural properties, late-binding is, to our opinion, the key property of OO paradigm; the operational consequence of inheritance use. All OO languages use late-binding, but do they all have the same interpretation? We show that the answer is no, not very surprisingly...
متن کامل