Hacker News new | past | comments | ask | show | jobs | submit login

The existing name for this paradigm is "synchronous programming" (because such programs, like synchronous circuits, can be thought of as having a clock that ticks at every state change): https://en.wikipedia.org/wiki/Synchronous_programming_langua...

The first synchronous programming languages were, AFAIK, Statecharts and Esterel, the former designed by David Harel while he was working alongside Amir Pnueli, who would later win the Turing Award for introducing temporal logic to computer science. https://www.wisdom.weizmann.ac.il/~harel/papers/Statecharts....

Eve also combined synchronous programming with logic programming: https://witheve.com




This is also how PLC's in industrial automation work. In general, any large hard real-time system. Factories and assembly line automation has a system of state updating devices.

They were initially programmed using Ladder Diagrams, then STX (Structured text) a Pascal like language and IL (Instruction List), Sequential function chart, or Function block diagram. These all use Common Elements (IEC 61131 standard) so, you can mix languages.


Author here. Thanks for the reference, I'll add the IEC 61131 standard to my list.


Author here, I'm aware of Lustre/Esterel/Signal/StateCharts/etc - there are a _lot_ of examples of prior art, each with their own interpretations of how time should work in a programming language. I'm hoping that Temporal Programming can serve as both a reboot of Synchronous Programming, as well as a fresh generalization of the ideas from all the various branches of research that have popped up over the years.


There is also functional reactive programming, virtual time in TimeWarp, hmm, some other things. You can see the related work of our managed time paper.

https://www.microsoft.com/en-us/research/publication/program...




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: