5 ms·
Reminds me a bit of "Who Says C is Simple?" written by the people who wrote a C parser & analyser in OCaml (CIL): https://cil-project.github.io/cil/doc/html/ci
by rwmj 4y ago
Reminds me a bit of "Who Says C is Simple?" written by the people who wrote a C parser & analyser in OCaml (CIL):
https://cil-project.github.io/cil/doc/html/cil/cil016.html https://cil-project.github.io/cil/doc/html/cil/cil016.html
Also: https://cil-project.github.io/cil/doc/html/cil/cil012.html https://cil-project.github.io/cil/doc/html/cil/cil012.html
- still_grokking 4y ago> "Who Says C is Simple?" People who don't know what "simple" means and confuse it with "easy". https://www.entropywins.wtf/blog/2017/01/02/simple-is-not-easy/ https://www.entropywins.wtf/blog/2017/01/02/simple-is-not-ea... https://www.infoq.com/presentations/Simple-Made-Easy/ https://www.infoq.com/presentations/Simple-Made-Easy/ "Easy" things almost always lead to astonishing complexity. Also it's easy to see just how complex C is: Have a look at a formal description of it! (And compare to a truly simple language like e.g. LISP). https://github.com/kframework/c-semantics/tree/master/semantics/c https://github.com/kframework/c-semantics/tree/master/semant... In contrast some basic Lambda calculus language semantics fit 0.5 of a page in K. https://www.youtube.com/watch?v=eSaIKHQOo4c https://www.youtube.com/watch?v=eSaIKHQOo4c https://www.youtube.com/watch?v=y5Tf1EZVj8E https://www.youtube.com/watch?v=y5Tf1EZVj8E
- owl_vision 4y ago+1 for simple is not easy, yet with enough thinking and ingenious ideas, it is achievable. Thank for the links. "simplicity is the ultimate sophistication." -- Leonardo da Vinci
- evouga 4y ago> return ({goto L; 0;}) && ({L: 5;}); What in the world…!! It’s in the GCC section so I assume it’s some kind of lambda-function-like compiler extension? That allows jumping between bodies of two different functions…!
- Joker_vD 4y agoIt's "statement exprs": "A compound statement enclosed in parentheses may appear as an expression in GNU C. This allows you to use loops, switches, and local variables within an expression. [...] The last thing in the compound statement should be an expression followed by a semicolon; the value of this subexpression serves as the value of the entire construct." [0] [0] https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html