Niklaus Wirth wrote a book that popularised the informal equation used as a title: “Data Structures + Algorithms = Programs”. I like to write this equation backwards as in the title of the question, because it hints at a simple but subtle aspect of programming: we are responsible of deciding which ideas of our programs we want to express by data structures and which we want to express with algorithms.
Is there any hint in the book by Niklaus Wirth that he subscribes to or even expresses this view, or is this free interpretation of the informal equation a mere coincidence?
A classical example would be useful to clarify this point. When we implement a finite state automaton we could represent the state using mutually recursive functions – therefore making the state implicit in our program and giving more weight to the “algorithm” part of our program – or using an explicit variable holding the state – thus arbitraging in favour of data structures. In more advanced example, this choice has sometimes a direct incidence on the maintainability or extensibility of programs.