Department of Computer Science and Technology

Technical reports

The semantics and implementation of aggregates
or
how to express concurrency without destroying determinism

Thomas Clarke

July 1990, 25 pages

DOI: 10.48456/tr-197

Abstract

This paper investigates the relationship between declarative semantics and concurrent computation. A fundamental programming construction, the aggregate, is identified. Aggregates have a simple declarative semantics, yet cannot be written in pure functional languages. The addition of aggregates to a functional language increases expressiveness without destroying determinism or referential transparency. Specific aggregates can be used to implememnt concurrent graph marking, time deterministic merge of lazy lists, and write once locations.

Full text

PDF (1.8 MB)

BibTeX record

@TechReport{UCAM-CL-TR-197,
  author =	 {Clarke, Thomas},
  title = 	 {{The semantics and implementation of aggregates : or : how
         	   to express concurrency without destroying determinism}},
  year = 	 1990,
  month = 	 jul,
  url = 	 {https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-197.pdf},
  institution =  {University of Cambridge, Computer Laboratory},
  doi = 	 {10.48456/tr-197},
  number = 	 {UCAM-CL-TR-197}
}