An alternative view of polymorphism

  • Authors:
  • David M. Harland;Martyn W. Szyplewski;John B. Wainwright

  • Affiliations:
  • Linn Products Ltd, 257 Drakemire Drive, Glasgow G45 9SZ, Scotland;Linn Products Ltd, 257 Drakemire Drive, Glasgow G45 9SZ, Scotland;Linn Products Ltd, 257 Drakemire Drive, Glasgow G45 9SZ, Scotland

  • Venue:
  • ACM SIGPLAN Notices
  • Year:
  • 1985

Quantified Score

Hi-index 0.00

Visualization

Abstract

We shall outline the traditional approaches to polymorphism, in the light of Strachey's original work, and languages in the style of RUSSELL, and review the implications for programming language design of the developing interest amongst theoreticians in this subject.It will be shown that the "parametric type-polymorphism" favoured by the majority of today's designers, is actually a very limited form of polymorphism, and we shall show how a much more general concept of polymorphism can be constructed by placing arbitrary constraints on abstract storage types.We will then investigate ways of employing these "guarded cells", outlining several possible applications.The essence of our proposal is that in any language in which there is an unfettered abstraction mechanism, and a sufficiently rich universe of discourse, including types which are properly manipulable values, many forms of polymorphism can be built as abstractions, and so need not be built directly into the fabric of that language. We interpret this to mean that polymorphism is not a major factor in programming language design, whereas we take the view that achieving maximum expressivity is crucial to a design.We shall conclude by relating our work to that of theoreticians in the field, and showing the implications of our proposal for program verification.