1989 · 51 citations · 10 references
ComputingComputer ScienceInformation RetrievalProgramming LanguagesSoftware EngineeringComponent-based Software EngineeringData TypesPolymorphic TransformationsPolymorphism AnalysisType CheckingType SystemsComponent IdentificationPolymorphic CodePolymorphic Type SystemsPolymorphic TypesPolymorphism StudiesSoftware ComponentsStatic PolymorphismType Polymorphism
Polymorphic types are labels classifying both (a) defined components in a library and (b) contexts of free variables in partially written programs. We propose to help programmers make better use of software libraries by providing a system that, given (b), identifies candidates from (a) with matching types. Assuming at first that matching means unifying (ie having a common instance) we discuss efficient ways of implementing such a retrieval system, and also indicate its likely effectiveness based on a quantitative study of currently available libraries. Later we introduce the applicative instance relation between types, which captures some intuitions about generalisation/specialisation, and discuss its use as the basis of a more flexible system. 1. INTRODUCTION Much programming effort can be saved by making good use of libraries of pre-defined components. In a functional language the majority of such components are functions and many of them are higher order functions, extensive use o...
10
Hypertext: An Introduction and Survey
A theory of type polymorphism in programming
Robin Milner · Journal of Computer and System Sciences · 1978 · 2.2K citations · Full text
The implementation of functional programming languages
Microprocessors and Microsystems · 1987 · 1.1K citations
R. M. Burstall, David MacQueen, Donald Sannella · 1980 · 351 citations