@incollection{knuth_algorithms_1996,
	address = {Stanford, {CA}},
	series = {{CSLI} lecture notes},
	title = {Algorithms, Programs, and Computer Science},
	isbn = {1881526917},
	lccn = {QA76 .K537 1996},
	number = {no. 59},
	booktitle = {Selected Papers on Computer Science},
	publisher = {{CSLI} Publications},
	author = {Knuth, Donald E.},
	year = {1996},
	pages = {1–3}
}

Algorithm and program

  • An algorithm is an abstract computational method and thus exists “apart from any programming language” [@knuth_algorithms_1996, 1].

  • A program is a representation and a concrete “embodiment” of an algorithm in a particular language [@knuth_algorithms_1996, 1; @knuth_algorithms_1996, 2].

Literate programming

“A programmer is ideally an essayist who works with traditional aesthetic and literary forms as well as mathematical concepts, to communicate the way that an algorithm works and to convince a reader that the results will be correct” [@knuth_algorithms_1996, 2].