3 ms·
The existing name for this paradigm is "synchronous programming" (because such programs, like synchronous circuits, can be thought of as having a clock that tic
by pron 4y ago
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_language 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.History.pdf https://www.wisdom.weizmann.ac.il/~harel/papers/Statecharts....
Eve also combined synchronous programming with logic programming: https://witheve.com https://witheve.com
- Nokinside 4y agoThis 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.
- aappleby 4y agoAuthor here. Thanks for the reference, I'll add the IEC 61131 standard to my list.
- aappleby 4y agoAuthor 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.
- seanmcdirmid 4y agoThere 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/programming-with-managed-time/ https://www.microsoft.com/en-us/research/publication/program...