Department of Computer Science and Technology

Technical reports

System programming in a high level language

Andrew D. Birrell

December 1977, 125 pages

This technical report is based on a dissertation submitted December 1977 by the author for the degree of Doctor of Philosophy to the University of Cambridge, Trinity College.

DOI: 10.48456/tr-6


This thesis is concerned with the construction of a high level language system suitable for the implementation of a general purpose operating system for a computer. There are three aspects to this task: firstly a suitable high level language must be chosen or designed; secondly, a suitable implementation of this language must be manufactured; thirdly, the operating system itself must be written. These three aspects inevitably overlap in time – experience in implementing the language may cause one to review decisions taken in the design of the language, and experience in constructing the operating system will bring to light inadequacies, inconveniences and inelegancies in both the implementation and design of the language.

Most previous work in this field has been concerned with the first of these aspects, and has adopted the approach of designing special ‘System Programming Languages’ (SPLs) or ‘Machine Oriented Languages’ (MOLs). Various such languages have been developed, although few have achieved the elegance and generality of general-purpose languages such as Pascal or Algol68. Little or no investigation has previously been made into the second of these aspects, the implementation of the language. This aspect can have a considerable effect on the practicability of using the resulting language for manufacturing an operating system. The implementation, however suitable the language makes the difference between the language being an aid or an impediment to the system programmer. It is with aspects of the implementation this this thesis is mainly concerned.

Full text

PDF (7.0 MB)

BibTeX record

  author =	 {Birrell, Andrew D.},
  title = 	 {{System programming in a high level language}},
  year = 	 1977,
  month = 	 dec,
  url = 	 {},
  institution =  {University of Cambridge, Computer Laboratory},
  doi = 	 {10.48456/tr-6},
  number = 	 {UCAM-CL-TR-6}