A Type System for Implicit Scaling

Abstract We describe a novel application of subtyping in which a small orthogonal set of structural subtyping rules are used to capture the notion of scaling—an unusual variety of polymorphism found in APL-like languages which is attracting renewed interest due to its applications in data parallel programming. The subtyping approach allows us to provide a simple coercion-based semantics for an orthogonal interpretation of scaling whose generality goes well beyond what is available in APL dialects. Moreover, the results are independent of the structure to which scaling is applied—they apply equally well to lists, vectors, trees, or to any other structure usable for representing sets.

[1]  Robin Milner,et al.  A proposal for standard ML , 1984, LFP '84.

[2]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Information and Computation.

[3]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[4]  Satish R. Thatte Quasi-static typing , 1989, POPL '90.

[5]  Philip Wadler,et al.  Theorems for free! , 1989, FPCA.

[6]  Ravi Sethi,et al.  A semantic model of types for applicative languages , 1982, LFP '82.

[7]  M. A. Jenkins,et al.  Operators in an APL containing nested arrays , 1978, APLQ.

[8]  Prasad Vishnubhotla Data parallel programming on transputer networks , 1990 .

[9]  Thierry Coquand,et al.  Inheritance and explicit coercion , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[10]  J. Philip Benkard Control of structure and evaluation , 1985, APL '85.

[11]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[12]  W. Daniel Hillis,et al.  Data parallel algorithms , 1986, CACM.

[13]  E. Blum,et al.  A programming language , 1899, AIEE-IRE '62 (Spring).

[14]  John C. Mitchell,et al.  Polymorphic Type Inference and Containment , 1988, Inf. Comput..

[15]  John C. Reynolds,et al.  Using category theory to design implicit conversions and generic operators , 1980, Semantics-Directed Compiler Generation.

[16]  Giorgio Ghelli,et al.  Coherence of Subsumption , 1990, CAAP.

[17]  John C. Reynolds,et al.  Three Approaches to Type Structure , 1985, TAPSOFT, Vol.1.

[18]  Satish R. Thatte,et al.  Type Inference with Partial Types , 1988, Theor. Comput. Sci..

[19]  Thomas M. Breuel Data-Level Parallel Programming in C++ , 1988, C++ Conference.