TY - JOUR
T1 - Type-Directed Specialization of Polymorphism
AU - Ohori, Atsushi
N1 - Funding Information:
1A preliminary version of this article was published in ‘‘Proceedings of TACS Conference,’’ Lecture Notes in Computer Science, Vol. 1281, pp. 107 137, September 1997, as an invited paper under the title: ‘‘A type system for specializing polymorphism.’’ 2Partly supported by the Japanese Ministry of Education Grant-in-Aid for Scientific Research on Priority Area 275; ‘‘advanced databases,’’ and by the Parallel and Distributed Processing Research Consortium, Japan.
PY - 1999/11/25
Y1 - 1999/11/25
N2 - Flexibility of programming and efficiency of program execution are two important features of a programming language. Unfortunately, however, these two features conflict with each other in design and implementation of a modern statically typed programming language. Flexibility is achieved by a high-degree of polymorphism, which is based on generic primitives in an abstract model of computation, while efficiency requires optimal use of low-level primitives specialized to individual data structures. The motivation of this work is to reconcile these two features by developing a mechanism for specializing polymorphic primitives based on static type information. We analyze the existing methods for compiling a record calculus and an unboxed calculus, extract their common structure, and develop a framework for type-directed specialization of polymorphism.
AB - Flexibility of programming and efficiency of program execution are two important features of a programming language. Unfortunately, however, these two features conflict with each other in design and implementation of a modern statically typed programming language. Flexibility is achieved by a high-degree of polymorphism, which is based on generic primitives in an abstract model of computation, while efficiency requires optimal use of low-level primitives specialized to individual data structures. The motivation of this work is to reconcile these two features by developing a mechanism for specializing polymorphic primitives based on static type information. We analyze the existing methods for compiling a record calculus and an unboxed calculus, extract their common structure, and develop a framework for type-directed specialization of polymorphism.
UR - http://www.scopus.com/inward/record.url?scp=0012574756&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0012574756&partnerID=8YFLogxK
U2 - 10.1006/inco.1999.2831
DO - 10.1006/inco.1999.2831
M3 - Article
AN - SCOPUS:0012574756
SN - 0890-5401
VL - 155
SP - 64
EP - 107
JO - Information and Computation
JF - Information and Computation
IS - 1-2
ER -