Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of ProgramsJohn Backus1978CACM