Retrieving reusable software components by polymorphic type

Journal of Functional Programming - Tập 1 Số 2 - Trang 191-211 - 1991
Colin Runciman1, Ian Toyn1
1University of York

Tóm tắt

AbstractPolymorphic types are labels classifying both (a) defined components in a library and (b) contexts of free variables in partially written programs. It is proposed 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 (i.e. having a common instance), efficient ways of implementing such a retrieval system are discussed and its likely effectiveness based on a quantitative study of currently available libraries is indicated. The applicative instance relation between types, which captures some intuitions about generalization/specialization is then introduced, and its use as the basis of a more flexible system is discussed.

Từ khóa


Tài liệu tham khảo

10.1145/357162.357169

Rittri, 1989, Proc. 1989 ACM Conf. Functional Programming Languages and Computer Architecture

10.1007/BF00264597

10.1016/0167-6423(86)90027-4

10.1093/comjnl/27.2.97

Runciman, 1989, Notes for Glide Users (4th edn.)

10.1145/800055.802035

Cardelli, 1985, Basic polymorphic typechecking, Polymorphism, 2

Toyn I. 1987. Exploratory environments for functional programming. D Phil Thesis YCST 87/02, Department of Computer Science, University of York, U.K. (Apr.).

Wadler, 1986, The OL Manual

10.1145/357980.358010

Warren, 1977, Implementing Prolog – compiling predicate logic programs

Peyton Jones, 1987, The Implementation of Functional Programming Languages

Turner, 1985, Functional Programming Languages and Computer Architecture, Lecture Notes in Computer Science, 201, 1

Komorowski, 1982, Logic Programming, 315

Burstall, 1980, Record of the LISP Conference, 136

Dijkstra, 1976, A Discipline of Programming

Jategaonkar, 1988, A CM Conference on LISP and Functional Programming, 198

10.1007/3-540-18317-5_18

Reynolds, 1969, Machine Intelligence 5, 135

10.1016/0022-0000(78)90014-4

10.1109/MC.1987.1663693

Augustsson, 1987, LML users' manual