PLS Lab

Characteristic domains

One possible way to classify a programming language is through its characteristic domains. These are the abstract sets from which the values that the language can manipulate are drawn.

Traditionally, there are three such domains:

This classification of programming languages comes from an influential 1973 paper by Christopher Strachey.

References

Strachey, Christopher. 1973. ‘The Varieties of Programming Language’. Technical Monograph PRG-10. Oxford: Oxford University Computing Laboratory. https://www.cs.ox.ac.uk/publications/publication3727-abstract.html.
@techreport{strachey_1973,
	address = {Oxford},
	type = {Technical {Monograph}},
	title = {The {Varieties} of {Programming} {Language}},
	url = {https://www.cs.ox.ac.uk/publications/publication3727-abstract.html},
	number = {PRG-10},
	institution = {Oxford University Computing Laboratory},
	author = {Strachey, Christopher},
	year = {1973}
}

The same paper is reprinted in the volume on Algol-like languages:

Strachey, Christopher. 1997. ‘The Varieties of Programming Language’. In Algol-like Languages, edited by Peter W. O’Hearn and Robert D. Tennent, 51–64. Boston, MA: Birkhäuser Boston. https://doi.org/10.1007/978-1-4612-4118-8_3.
@incollection{strachey_1997,
	address = {Boston, MA},
	title = {The {Varieties} of {Programming} {Language}},
	isbn = {978-1-4612-8661-5 978-1-4612-4118-8},
	language = {en},
	booktitle = {Algol-like {Languages}},
	publisher = {Birkhäuser Boston},
	author = {Strachey, Christopher},
	editor = {O’Hearn, Peter W. and Tennent, Robert D.},
	year = {1997},
	doi = {10.1007/978-1-4612-4118-8_3},
	pages = {51--64},
}