Department of Computer Science and Technology

Technical reports

Papers on Poly/ML

D.C.J. Matthews

February 1989, 150 pages

DOI: 10.48456/tr-161

Abstract

Various papers and research documents have been written while the Poly/ML project was underway and now that the project is completed it seemed appropriate to combine them into a single document. Some of these papers have been published, while others were written simply to help clarify thoughts on a particular subject.

Although Poly and ML have different syntax and type-systems their execution models are remarkably similar. A new parser and type-checker had to be written, but the code-generator and optimiser could be shared between Poly and ML. The same run-time system was used. Poly turned out to be an excellent language for the project, and modules based around Poly abstract types were used extensively. The lack of low level operations of a systems programming language was not a problem as, in practice, compilers involve very few such operations.

The papers in this report have been grouped into sections according to their likely audience. The first section describes the Poly/ML system and the extensions for windows and processes. Section two contains various discussion papers about Poly and ML, although some of the ideas covered were never implemented. The third section contains two papers on the persistent storage system and its implementation. The final section covers the implementation of Poly and ML and the run-time system.

Full text

PDF (11.5 MB)

BibTeX record

@TechReport{UCAM-CL-TR-161,
  author =	 {Matthews, D.C.J.},
  title = 	 {{Papers on Poly/ML}},
  year = 	 1989,
  month = 	 feb,
  url = 	 {https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-161.pdf},
  institution =  {University of Cambridge, Computer Laboratory},
  doi = 	 {10.48456/tr-161},
  number = 	 {UCAM-CL-TR-161}
}