Niklaus Wirth ha scritto un libro che ha reso popolare l'equazione informale usata come titolo: "Strutture di dati + Algoritmi = Programmi". Mi piace scrivere questa equazione all'indietro come nel titolo della domanda, perché suggerisce un aspetto semplice ma sottile della programmazione: siamo responsabili di decidere quali idee dei nostri programmi vogliamo esprimere attraverso strutture dati e quali vogliamo esprimere con algoritmi.
C'è qualche indizio nel libro di Niklaus Wirth che egli sottoscrive o addirittura esprime questa visione, o questa libera interpretazione dell'equazione informale è una mera coincidenza?
Un esempio classico sarebbe utile per chiarire questo punto. Quando implementiamo un automa a stati finiti potremmo rappresentare lo stato usando funzioni reciprocamente ricorsive, rendendo quindi lo stato implicito nel nostro programma e dando più peso alla parte "algoritmo" del nostro programma - o usando una variabile esplicita che trattiene lo stato - quindi arbitrando a favore delle strutture dati. Nell'esempio più avanzato, questa scelta ha talvolta un'incidenza diretta sulla manutenibilità o estensibilità dei programmi.