Department of Computer Science and Technology

Technical reports

Poly report

D.C.J. Matthews

August 1982, 17 pages

DOI: 10.48456/tr-28


Poly was designed to provide a programming system with the same flexibility as a dynamically typed language but without the run-time oveheads. The type system, based on that of Russel allows polymorpphic operations to be used to manipulate abstract objects, but with all the type checking being done at compile-time. Types may be passed explicitly or by inference as parameters to procedures, and may be returned from procedures. Overloading of names and generic types can be simulated by using the general procedure mechanism. Despite the generality of the language, or perhaps because of it, the type system is very simple, consisting of only three classes of object. There is an exception mechanism, similar to that of CLU, and the exceptions raised in a procedure are considered as part of its ‘type’. The construction of abstract objects and hiding of internal details of the representation come naturally out of the type system.

Full text

PDF (0.8 MB)

BibTeX record

  author =	 {Matthews, D.C.J.},
  title = 	 {{Poly report}},
  year = 	 1982,
  month = 	 aug,
  url = 	 {},
  institution =  {University of Cambridge, Computer Laboratory},
  doi = 	 {10.48456/tr-28},
  number = 	 {UCAM-CL-TR-28}