Open Access
Expressive Modular Linking for Object-Oriented Languages
Sean McDirmid,Wilson C. Hsieh,Matthew Flatt +2 more
- 01 Jan 2002
TL;DR: This paper shows how modular linking with both cyclic linking and mixin-style inheritance can be supported using a type-checking architecture that can be added on top of existing OO languages, such as Java.
read more
Abstract: 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 separately compiled and type checked, and that linking can ensure global program type correctness without analyzing program fragment implementations Supporting modular linking in OO languages is complicated by two expressive features that current OO languages do not support together: mixin-style inheritance across program fragment boundaries, and cyclic dependencies between program fragments In a previous paper at OOPSLA 2001, we have demonstrated the practical uses for such expressiveness When such expressiveness is permitted, link-time type checking rules must ensure that method collisions and inheritance cycles do not occur after program fragments are linked into a program In this paper, we show how modular linking with both cyclic linking and mixin-style inheritance can be supported using a type-checking architecture that can be added on top of existing OO languages, such as Java
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Aspect-oriented programming with Jiazzi
Sean McDirmid,Wilson C. Hsieh +1 more
- 17 Mar 2003
TL;DR: Jiazzi enhances Java with separately compiled, externally linked code modules called units, which act as effective "aspect" constructs with the ability to separate crosscutting concern code in a non-invasive and safe way.
•Journal Article
A formal framework for Java separate compilation
TL;DR: In this article, the authors define a formal notion, called compilation schema, suitable for specifying different possibilities for performing the overall process of Java compilation, which includes typechecking of source fragments with generation of corresponding binary code, type checking of binary fragments, extraction of type information from fragments and definition of dependencies among them.
22
Mool: an object-oriented programming language with generics and modules
María Lucía Barrón Estrada,Ryan Stansifer +1 more
- 01 Jan 2004
TL;DR: MOOL is a class-based object-oriented language that supports modular programming and genericity, and contains separated mechanisms for different concepts like classes and modules, which are unified in other languages.
References
•Book
Design Patterns: Elements of Reusable Object-Oriented Software
Erich Gamma,Richard Helm,Ralph E. Johnson,John Vlissides +3 more
- 01 Jan 1994
TL;DR: The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns, which most experienced OOP designers will find out they've known about patterns all along.
24.8K
Featherweight Java: a minimal core calculus for Java and GJ
Atsushi Igarashi,Benjamin C. Pierce,Philip Wadler +2 more
- 01 Oct 1999
TL;DR: A proof of type safety for Featherweight Java illustrates many of the interesting features of a safety proof for the full language, while remaining pleasingly compact.
MultiJava: modular open classes and symmetric multiple dispatch for Java
Curtis Clifton,Gary T. Leavens,Craig Chambers,Todd Millstein +3 more
- 01 Oct 2000
TL;DR: MultiJava is presented, a backward-compatible extension to Java supporting open classes and symmetric multiple dispatch, and adapt previous theoretical work to allow compilation units to be statically typechecked modularly and safely, ruling out any link-time or run-time type errors.
Import is Not Inheritance - Why We Need Both: Modules and Classes
Clemens Szyperski
- 29 Jun 1992
TL;DR: In this paper, the need for having modules besides classes is claimed and constructs in several languages are discussed that indicate that modules and classes should indeed be kept separate.
The design of a class mechanism for Moby
Kathleen Fisher,John Reppy +1 more
- 01 May 1999
TL;DR: This paper relies on a rich ML-style module system to provide features such as visibility control and parameterization, while providing a minimal class mechanism that includes only those features needed to support inheritance.
99