Abstract:
Soft Interfaces is a module system for Scheme with typed interfaces. This makes it possible to declare the types of exported procedures in a language with union types, parametric polymorphism and recursion. Soft Interfaces statically checks calls to these procedures to ensure that the arguments meet the declared types. Implementations of exported procedures are checked to have a subtype of their declared type. Unlike other systems for reconstructing types in a dynamically typed language Soft Interfaces supports abstract types including the inference of their implementation types. We have implemented Soft Interfaces within Scheme 48.
Citations
|
719
|
On understanding types, data abstraction, and polymorphism
– Cardelli, Wegner
- 1985
|
|
304
|
Towards a theory of type structure
– Reynolds
- 1974
|
|
279
|
Subtyping recursive types
– Amadio, Cardelli
- 1993
|
|
251
|
Abstract types have existential type
– Mitchell, Plotkin
- 1988
|
|
228
|
Control-Flow Analysis of Higher-Order Languages or Taming Lambda
– Shivers
- 1991
|
|
175
|
On Understanding Types
– Cardelli, Wegner
- 1985
|
|
170
|
Soft typing with conditional types
– Aiken, Wimmers, et al.
- 1994
|
|
133
|
Operations on records
– Cardelli, Mitchell
- 1991
|
|
94
|
A practical soft type system for scheme
– Wright, Cartwright
- 1997
|
|
90
|
Type inference with simple subtypes
– Mitchell
- 1991
|
|
78
|
A Theory of Type Polymorphism
– Milner
- 1978
|
|
58
|
Finding bugs in the web of program invariants
– Flanagan, Flatt, et al.
- 1996
|
|
56
|
CLU Reference Manual
– Liskov
- 1979
|
|
54
|
A tractable Scheme implementation
– Kelsey, Rees
- 1995
|
|
24
|
Safe polymorphic type inference for a dynamically typed language: Translating scheme to ml
– Henglein, Rehof
- 1995
|
|
15
|
A scheme shell
– Shivers
- 1994
|
|
10
|
Practical Soft Typing
– Wright
- 1994
|
|
5
|
Polymorphic splitting: An eective polyvariant analysis
– Jagannathan, Wright
- 1998
|
|
1
|
Bigloo User's Manual for Bigloo 2.3a. http://kaolin.unice.fr/~serrano/bigloo
– Serrano
- 2001
|