diff options
-rw-r--r-- | README.md | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -47,7 +47,6 @@ preprocessor. One of them is a powerful `loop` facility that allows iteration (both parallel and nested) to be expressed by combining abstract clauses. - Here is a program designed to demonstrate the `cppawk` `loop` macro, with its multiple clauses. It solves the following problem: a projectile is fired vertically with an initial speed of 5. Every step of the @@ -86,6 +85,21 @@ The output is This example is taken from the [`testcases-iter`](../tree/testcases-iter) file. +By the way, how is it possible that we can implement an iteration language with +expressive, not to mention **user-definable** classes using a preprocessor that +is famous for lacking power? + +It turns out that a significant part of the problem with C preprocessing is the +back-end languages being targeted. The C and C++ languages rob their +preprocessing front-end of its full power. C macros in the context of the +"home language" have to contend with syntactic roadblocks, such as identifiers +having to be declared before use. Because Awk is a flexibly typed language in +which variables don't have to be declared, it creates opportunities for +significantly more freedom in how the C preprocessor can be applied, and the +resulting macros can be much more clutter-free and ergonomic compared to if +similar techniques were attempted on the "home turf". It's as if the C +preprocessor were tailor-made for Awk. + ## Roadmap `cppawk` is been carefully developed, and has a regression test suite. |