HackerTrans
TopNewTrendsCommentsPastAskShowJobs

syncurrent

no profile record

comments

syncurrent
·4 tháng trước·discuss
This timing additions to a language is also at the core of imperative synchronous programming languages like Este rel, Céu or Blech.
syncurrent
·6 tháng trước·discuss
A way to implement coroutines in C is via protothreads. I admit that they are a bit hacky - but you can get quite far with them. I used them to implement an Esterel/Blech like environment: https://github.com/frameworklabs/proto_activities
syncurrent
·năm ngoái·discuss
In `proto_activities` this blinking would look like this:

  pa_activity (Blinker, pa_ctx_tm(), uint32_t onMs, uint32_t offMs) {
    pa_repeat {
      turn_on_LED();
      pa_delay_ms (onMs);
  
      turn_off_LED();
      pa_delay_ms (offMs);
    }
  } pa_end
Here the activity definition automatically creates the structure to hold the pc, timer and other variables which would outlast a single tick.
syncurrent
·năm ngoái·discuss
A similar approach, but rooted in the idea of synchronous languages like Esterel or Blech:

https://github.com/frameworklabs/proto_activities
syncurrent
·2 năm trước·discuss
Proto-Activities have this context to store the state in the caller.

https://github.com/frameworklabs/proto_activities
syncurrent
·3 năm trước·discuss
Somewhat related to Fibres are the Trails of synchronous reactive programming languages. Both allow efficient logical concurrency based on cooperative scheduling. The nice thing with Trails is that the scheduling can be determined by the compiler by extracting dependencies from the synchronous reactive program thus increasing determinism of your app.
syncurrent
·3 năm trước·discuss
Drakon uses Silhouettes to show code linearly and abstracted at the same time:

https://drakon.tech/read/silhouette
syncurrent
·3 năm trước·discuss
Right, imperative synchronous programming simplifies real time processing a lot.

Somehow it does not get the attention it should, which is IMHO due to the fact that it is not available in common programming languages.

This is why I tried to create DSLs for C and Swift so that more people could potentially play around with that.

https://github.com/frameworklabs/proto_activities
syncurrent
·3 năm trước·discuss
The magic source of Contiki is IMHO the use of protothreads as a lightweight concurrency system. Protothreads can also be used to implement synchronous programming models - like this one: https://github.com/frameworklabs/proto_activities