What are the advantages of Céu over other synchronous programming languages such as Esterel and Lustre?
Show HN: Céu, Structured Synchronous Reactive Programming
11–20 of 48 posts
Re: Show HN: Céu, Structured Synchronous Reactive Programming
#12What are the advantages of Céu over other synchronous programming languages such as Esterel and Lustre?
Céu looks really similar to Esterel. The thesis ( http://www.ceu-lang.org/chico/ceu_phd.pdf ) has a section titled "III.7 Differences to Esterel". (edit: removed explanations, the other comment is more detailed) .
Re: Show HN: Céu, Structured Synchronous Reactive Programming
#13Hi, I'm the author of the programming language Céu. Although Céu is about 5 years now, this is the first time I post to "Show HN". In this new version, we are trying to surpass the academic fences with a more polished work (docs, build, etc). All feedback is welcome. Francisco
Re: Show HN: Céu, Structured Synchronous Reactive Programming
#14Hi, I'm the author of the programming language Céu. Although Céu is about 5 years now, this is the first time I post to "Show HN". In this new version, we are trying to surpass the academic fences with a more polished work (docs, build, etc). All feedback is welcome. Francisco
Why did you choose Lua as the implementation language?
- LPeg support [1]. PEGs are great!
- The creator of Lua was my advisor since undergrad. :) (Which means that I program in Lua for a long time...)
Re: Show HN: Céu, Structured Synchronous Reactive Programming
#15What are the advantages of Céu over other synchronous programming languages such as Esterel and Lustre?
In comparison to Esterel: 1. Dynamic abstractions with lexical scope (vs. mostly static language). You can dynamically spawn code into a lexically-scoped pool. 2. Internal/fine-grained determinism (vs. external determinism). All statements execute in a deterministic order. E.g., if you have two printf's in parallel awaking from the same event, they will execute in lexical order. 3. Safe integration with C. When calli…
Thanks for the detailed explanation.
Re: Show HN: Céu, Structured Synchronous Reactive Programming
#16Earlier quoted context omitted.
Why did you choose Lua as the implementation language?
- Dynamic typing for fast prototyping. The compiler is full of dynamic tricks for testing, stripping parts of it, etc. - LPeg support [1]. PEGs are great! - The creator of Lua was my advisor since undergrad. :) (Which means that I program in Lua for a long time...) http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html
Re: Show HN: Céu, Structured Synchronous Reactive Programming
#17Earlier quoted context omitted.
- Dynamic typing for fast prototyping. The compiler is full of dynamic tricks for testing, stripping parts of it, etc. - LPeg support [1]. PEGs are great! - The creator of Lua was my advisor since undergrad. :) (Which means that I program in Lua for a long time...) http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html
And this means that the performance is not the first (or second) reason to use Ceu, right? In other words, is it somewhat slow?
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.
Re: Show HN: Céu, Structured Synchronous Reactive Programming
#18Earlier quoted context omitted.
In comparison to Esterel: 1. Dynamic abstractions with lexical scope (vs. mostly static language). You can dynamically spawn code into a lexically-scoped pool. 2. Internal/fine-grained determinism (vs. external determinism). All statements execute in a deterministic order. E.g., if you have two printf's in parallel awaking from the same event, they will execute in lexical order. 3. Safe integration with C. When calli…
The C integration aspect sounds really neat, especially for writing concurrent code on the Arduino! Thanks for the detailed explanation.
Re: Show HN: Céu, Structured Synchronous Reactive Programming
#19EDIT: found the answer in the paper: "Despite the continuous research in facilitating programming WSNs, most safety analysis and mitigation efforts in concurrency are still left to developers, who must manage synchronization and shared memory explicitly. In this paper, we present a system language that ensures safe concurrency by handling threats at compile time, rather than at runtime."
Re: Show HN: Céu, Structured Synchronous Reactive Programming
#20Was there a particular problem you were trying to solve by creating Ceu? Or was it just to learn things about compilers? EDIT: found the answer in the paper: "Despite the continuous research in facilitating programming WSNs, most safety analysis and mitigation efforts in concurrency are still left to developers, who must manage synchronization and shared memory explicitly. In this paper, we present a system language…
BTW, Eve is another synchronous language, although a declarative rather than an imperative one like Céu. It's great to see those time-tested and well-studied ideas finally break out of the safety-critical realtime world.