Can Programming Be Liberated from the von Neumann Style?

preview_player
Показать описание
In 1977, John Backus presented an algebraic vision of programming that departed from the von Neumann fetch-and-store semantics. This seminal paper has influenced functional programming in many ways. In this episode, I read excerpts from and comment on John Backus's 1977 Turing Award Lecture paper Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs.

Рекомендации по теме
Комментарии
Автор

stopping by to put a "like" before I even listen to this later. I know it's gonna be good. Keep doing what you're doing Eric!

ytflix
Автор

1:11:26 'using algebraic laws can be transformed into more efficient or more explanatory programs'

I would have liked to see some exploration into transformation into more **explanatory** formats. I wonder what did he mean by this? You make the the point:
- using composition
- combining forms
- not including variables in the expressions
all contribute to removing the redundancy that is key to making it easier for us mortal humans to understand what the code actually does. What if the IDE somehow injected back in the redundancy?

I wonder if there is a role for the compiler/modern IDEs to take on the role of 'transforming' these hard to grasp functional expressions into more 'explanatory' formats. It could use cues like what types are actually used when applying the combined forms, and could output something in plain English using these cues, using the same or similar vocabulary as you yourself used in this video when explaining the programs outlined in this paper. The plain English vocabulary required for each of the primitive combining forms could be incorporated into each of your type definitions (i.e. vocab 'Sum' and 'of list' when an Int typed list is applied to a function composed with the 'plus' and 'reduce' combining form equivalents). Type hierarchies could inherit/override the vocab used as needed. We would never have to write comment style docs ever again, as the type definitions and base combining forms would inherently do this automatically when compiled into this theoretical 'explanatory' format.

Could be interesting to dream up some examples of this 'explanatory' compilation using some of the example programs in the paper, although maybe not in a YouTube comment...

Overall great reading and subsequent analysis of this paper, very thought provoking. thank you.

Madzada
Автор

1:51:07 Sounds like SIMD. AVX-512 (512 bits of data per instruction) can be used to implement sorting. There also "Bitonic sorter" used in GPU and sorting networks.

eugenej.
Автор

I appreciate this content man, keep it up!

aerialdude
Автор

Reminds us of all the framework dependent stacks. I want my framework to only do one thing. Organize the code. I don't want the framework to be my code.

nathansire
Автор

It really helpful for me to deep into computer science. Thanks~

yeisimon