Live data from Hacker News

Show HN: Céu, Structured Synchronous Reactive Programming

ceu-lang.org

41–48 of 48 posts

Re: Show HN: Céu, Structured Synchronous Reactive Programming

#41

Earlier quoted context omitted.

The main influence is Esterel, but we visited most synchronous literature (including Lucid). We also take the syntax from Pascal/Lua and the basic types and expressions from C (due to source compatibility).

Thanks a lot. We had a class in esterel in college, but it flew over my head at the time, sadly. Time to revisit the whole thing. May I ask you if you have some favorite references/papers about the subject ?

The early papers about Esterel and the synchronous model, e.g.:

- Gérard Berry: "Real time programming: Special purpose or general purpose languages"

For the semantics, I like this paper focusing on abortion (for me, the most expressive construct of synchronous languages):

- Gérard Berry: "Preemption in Concurrent Systems"

There's also a well-known survey:

- Albert Benveniste: "The synchronous languages 12 years later"

This one is about bridging the gap between synchronous and asynchronous, something like Esterel+CSP:

- Gérard Berry: "Communicating reactive processes"

For a modern take (besides Céu), check ReactiveML:

- Louis Mandel: "ReactiveML: a reactive extension to ML"

You can also search for papers from professors Stephen A. Edwards and Reinhard von Hanxleden which still work actively on the subject.

Re: Show HN: Céu, Structured Synchronous Reactive Programming

#42

Earlier quoted context omitted.

Thanks a lot. We had a class in esterel in college, but it flew over my head at the time, sadly. Time to revisit the whole thing. May I ask you if you have some favorite references/papers about the subject ?

The early papers about Esterel and the synchronous model, e.g.: - Gérard Berry: "Real time programming: Special purpose or general purpose languages" For the semantics, I like this paper focusing on abortion (for me, the most expressive construct of synchronous languages): - Gérard Berry: "Preemption in Concurrent Systems" There's also a well-known survey: - Albert Benveniste: "The synchronous languages 12 years late…

Amazing, I'm off to read.

ps: fun, Louis Mandel co-author (M.Pouzet) was a compiler teacher at my college.

Re: Show HN: Céu, Structured Synchronous Reactive Programming

#43
post #16

Earlier quoted context omitted.

And this means that the performance is not the first (or second) reason to use Ceu, right? In other words, is it somewhat slow?

I wrote in Lua the source-to-source compiler that takes a ".ceu" and generates a ".c" (the code is a single-threaded state machine), which is then compiled with gcc. The compiler is slow, but not the final binary. We wrote a paper [1] that compares flash,RAM,CPU usage from Céu vs hand-written event-driven code in C. The differences are negligible. [1] http://www.ceu-lang.org/chico/ceu_sensys13_pre.pdf

Why not plug into LLVM? Just generate an LLVM backend.

Re: Show HN: Céu, Structured Synchronous Reactive Programming

#44
post #43

Earlier quoted context omitted.

I wrote in Lua the source-to-source compiler that takes a ".ceu" and generates a ".c" (the code is a single-threaded state machine), which is then compiled with gcc. The compiler is slow, but not the final binary. We wrote a paper [1] that compares flash,RAM,CPU usage from Céu vs hand-written event-driven code in C. The differences are negligible. [1] http://www.ceu-lang.org/chico/ceu_sensys13_pre.pdf

Why not plug into LLVM? Just generate an LLVM backend.

- Céu can embed blocks in C and call it directly

- C is more portable

- C is easier to generate

Re: Show HN: Céu, Structured Synchronous Reactive Programming

#45

Earlier quoted context omitted.

Thank you, I will improve the page. In summary: Reactive: code executes in reactions to events Synchronous: reactions run to completion, i.e., there's no implicit preemption or real parallelism (this avoids explicit synchronization: locks, queues, etc) Structured: programs use structured control mechanisms, such as "await" (to suspend a line of execution), and "par" (to combine multiple awaiting lines of execution) S…

Synchronous: reactions run to completion, i.e., there's no implicit preemption or real parallelism Does this mean a program will hang if e.g. disk or network access takes too long?

Another way of thinking about this (also mentioned in the docs somewhere) is that Ceu "pretends" that any reactive code finishes infinitely fast, similar to how garbage collected languages "pretend" that computers have infinite memory.

Neither truly does, of course, but the idea is that for the vast majority of situations where either type of language is used, that's a good enough approximation, letting you vastly simplify the problem that you're solving.

Re: Show HN: Céu, Structured Synchronous Reactive Programming

#46

Earlier quoted context omitted.

Thanks a lot. We had a class in esterel in college, but it flew over my head at the time, sadly. Time to revisit the whole thing. May I ask you if you have some favorite references/papers about the subject ?

The early papers about Esterel and the synchronous model, e.g.: - Gérard Berry: "Real time programming: Special purpose or general purpose languages" For the semantics, I like this paper focusing on abortion (for me, the most expressive construct of synchronous languages): - Gérard Berry: "Preemption in Concurrent Systems" There's also a well-known survey: - Albert Benveniste: "The synchronous languages 12 years late…

For those who are interested in synchronous reactive programming and speak French, Gérard Berry gave lectures about it (and time-related topics in general) at Collège de France, along with other teachers including M. Pouzet. Videos are publicly available, check out:

http://www.college-de-france.fr/site/gerard-berry/course-201...

http://www.college-de-france.fr/site/gerard-berry/course-201...

(In 2014 - 2016 he moved on to program proofs, which may also interest some of you.)

Re: Show HN: Céu, Structured Synchronous Reactive Programming

#47
post #46

Earlier quoted context omitted.

The early papers about Esterel and the synchronous model, e.g.: - Gérard Berry: "Real time programming: Special purpose or general purpose languages" For the semantics, I like this paper focusing on abortion (for me, the most expressive construct of synchronous languages): - Gérard Berry: "Preemption in Concurrent Systems" There's also a well-known survey: - Albert Benveniste: "The synchronous languages 12 years late…

For those who are interested in synchronous reactive programming and speak French, Gérard Berry gave lectures about it (and time-related topics in general) at Collège de France, along with other teachers including M. Pouzet. Videos are publicly available, check out: http://www.college-de-france.fr/site/gerard-berry/course-201... http://www.college-de-france.fr/site/gerard-berry/course-201... (In 2014 - 2016 he moved…

Cool, I missed those.
Post reply on HN