The Computer Journal · 2000 · 43 citations · 9 references
ComputingComputer ScienceCompilersProgramming LanguagesSystems ProgrammingApplication Programming InterfacesCompiler ConstructionObject-oriented ProgrammingType CheckingType SystemsAbstract TypesAbstractionAbstraction MechanismsCompiler SupportRemote Method InvocationRuntime Type SystemsStructural Interface DesignType Safety
In Java, an interface specifies public abstract methods and associated public constants. Con-formance of a class to an interface is by name. We propose to allow structural conformance to interfaces: Any class or interface that declares or implements each method in a target interface conforms structurally to the interface, and any expression of the source class or interface type can be used where a value of the target interface type is expected. We argue that structural con-formance results in a major gain in flexibility in situations that require retroactive abstraction over types. Structural conformance requires no additional syntax and only small modifications to the Java compiler and optionally, for performance reasons, the virtual machine, resulting in a minor performance penalty. Our extension is type-safe: A cast-free program that compiles without errors will not have any type errors at run time. Our extension is conservative: Existing Java programs still compile and run in the same manner as under the original language defini-tion. Finally, structural conformance works well with recent extensions such as Java remote method invocation.
9
Matthew Flatt, Shriram Krishnamurthi, Matthias Felleisen · 1998 · 491 citations · Full text
Roberto M. Amadio, Luca Cardelli · ACM Transactions on Programming Languages and Systems · 1993 · 353 citations · Full text
AXIOM: the scientific computation system
Choice Reviews Online · 1993 · 240 citations