From 8a888fc66f216848eac705ca2da2afbc03c96ba2 Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Wed, 7 Aug 2024 21:50:00 +0200 Subject: bibliography: add Backus' Liberate from Von Neumann --- bibliography.bib | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/bibliography.bib b/bibliography.bib index 3460e08..428dce2 100644 --- a/bibliography.bib +++ b/bibliography.bib @@ -117,3 +117,59 @@ pages = {20–25}, numpages = {6} } + +@article{LiberateFromVonNeumann:Backus, + author = {Backus, John}, + title = {Can programming be liberated from the von Neumann style? a functional style and its algebra of programs}, + year = {1978}, + issue_date = {Aug. 1978}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + volume = {21}, + number = {8}, + issn = {0001-0782}, + url = {https://doi.org/10.1145/359576.359579}, + doi = {10.1145/359576.359579}, + abstract = {Conventional programming languages are growing ever more + enormous, but not stronger. Inherent defects at the most basic level + cause them to be both fat and weak: their primitive word-at-a-time + style of programming inherited from their common ancestor—the von + Neumann computer, their close coupling of semantics to state + transitions, their division of programming into a world of + expressions and a world of statements, their inability to + effectively use powerful combining forms for building new programs + from existing ones, and their lack of useful mathematical + properties for reasoning about programs.An alternative functional + style of programming is founded on the use of combining forms for + creating programs. Functional programs deal with structured data, + are often nonrepetitive and nonrecursive, are hierarchically + constructed, do not name their arguments, and do not require the + complex machinery of procedure declarations to become generally + applicable. Combining forms can use high level programs to build + still higher level ones in a style not possible in conventional + languages.Associated with the functional style of programming is an + algebra of programs whose variables range over programs and whose + operations are combining forms. This algebra can be used to + transform programs and to solve equations whose “unknowns” are + programs in much the same way one transforms equations in high + school algebra. These transformations are given by algebraic laws + and are carried out in the same language in which programs are + written. Combining forms are chosen not only for their programming + power but also for the power of their associated algebraic laws. + General theorems of the algebra give the detailed behavior and + termination conditions for large classes of programs.A new class of + computing systems uses the functional programming style both in its + programming language and in its state transition rules. Unlike von + Neumann languages, these systems have semantics loosely coupled to + states—only one state transition occurs per major computation.}, + journal = {Commun. ACM}, + month = {aug}, + pages = {613–641}, + numpages = {29}, + keywords = {von Neumann languages, von Neumann computers, programming + languages, program transformation, program termination, program + correctness, models of computing systems, metacomposition, + functional programming, functional forms, combining forms, applicative + state transition systems, applicative computing systems, algebra of + programs} +} -- cgit v1.2.3