3 ms·
A synchronous language models everything as a mathematical function that is completely evaluated every « tick » of a clock (hence the term synchronous). It is v
by crocal 8y ago
A synchronous language models everything as a mathematical function that is completely evaluated every « tick » of a clock (hence the term synchronous). It is very convenient for real time software: the resulting executable code is a single function that is evaluated repeatedly against its input every t seconds.
Disclaimer: looks easy, but if you take a few non trivial examples with concurrent state machines and contemplate the resulting C code, you will quickly understand why having a dedicated language is a good idea as opposed to trying to do it by hand.
- p4bl0 8y agoIn addition to that it allows to have fixed and known constraints in terms of resources. Actually the semantics and implementations of synchronous languages enable proving a lot of safety properties using model checking. This is very important for real time critical systems. The paradigm is also adapted to graphical programming (using boxes and wires) which is quite an advantage for some field of engineering where the specialists are not programmers. SCADE is an example of a successful industrial product that use synchronous programming: http://www.esterel-technologies.com/products/scade-suite/ http://www.esterel-technologies.com/products/scade-suite/ (it is actually more based on Lustre despite the company being called Esterel Technologies).
- pjc50 8y agoInteresting. I could have done with knowing about this when doing microcontroller work - because it's what the design inevitably converges on, and as you say it's a pain to do by hand in C.