aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md16
1 files changed, 15 insertions, 1 deletions
diff --git a/README.md b/README.md
index d70421b..631f84c 100644
--- a/README.md
+++ b/README.md
@@ -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.