3 ms·
I don't have the time to investigate the language, but I wonder if its semantics borrows from synchronous programming languages such as Lustre [1], Esterel [2],
by p4bl0 13y ago
I don't have the time to investigate the language, but I wonder if its semantics borrows from synchronous programming languages such as Lustre [1], Esterel [2], or Signal [3]? Those languages were designed to program discrete controllers and embedded real time systems, and they have a very strong notion of timing and scheduling (via typing) in their semantics which allows to prove functional properties such as accessibility of states, liveness, time and memory bounds, etc. using formal methods such as model checking.
When I was doing my master thesis on this domain, another student in the lab (who was from an IRCAM [4] master degree) worked on the use of synchronous languages to follow a musician who plays at arbitrary speed a given music score (or something along those lines). It was quite fun!
[1] https://en.wikipedia.org/wiki/Lustre_%28programming_language%29 https://en.wikipedia.org/wiki/Lustre_%28programming_language...
[2] https://en.wikipedia.org/wiki/Esterel https://en.wikipedia.org/wiki/Esterel
[3] https://en.wikipedia.org/wiki/SIGNAL_%28programming_language%29 https://en.wikipedia.org/wiki/SIGNAL_%28programming_language...
[4] http://www.ircam.fr/?&L=1 http://www.ircam.fr/?&L=1
- diminish 13y agoI've completed the ChucK course on Coursera. As far as I can say, it doesn't borrow semantics directly from synchronous programming languages though it may parallel them. Syntactically it's similar too Java/C++. Time/Duration are data types, and you must advance "now" to generate samples and events.