Fix typo
[rofl0r-order-pp.git] / README.md
blob25c50262eae943551e0b50b852f7bf7beeba3775
1 The Order Metalanguage for C Preprocessor Metaprogramming
2 =========================================================
4 From the preface I wrote years ago:
6 > Order grew out of my interest in the design of programming languages and
7 > metaprogramming as well as desire to make something original, fascinating and
8 > beautiful.  My work on the
9 > [Boost Preprocessor](http://www.boost.org/doc/libs/1_55_0/libs/preprocessor/doc/index.html)-library
10 > had left me unsatisfied.  While it was clear to me that it could theoretically
11 > be used to implement *useful* non-trivial metaprograms, it would have been
12 > quite tedious work, full of nasty little details and limitations to trip you
13 > up.  I considered the prospects for further enhancements to the library, but
14 > it didn't seem possible to provide a programming model that I would have
15 > considered pleasant to think in.  It occured to me that instead of attempting
16 > to provide semimodular enhancements on top of the C preprocessor in a
17 > bottom-up fashion, it might be possible to lift the limitations by designing a
18 > complete monolithic interpreter for a high-level source language in a top-down
19 > fashion.  After some experiments at interpreting lambda-calculus and a couple
20 > of prototype interpreters for early versions of the Order language, I was left
21 > with a feeling that it would be too inefficient to be practical.  The most
22 > serious limitation seemed to be the inability of the early prototypes to
23 > generate arbitrary output efficiently.  I decided to forget about the
24 > interpreter and move on, but the work proved too interesting for me to forget
25 > completely.  Over a long period of time I found several small incremental
26 > improvements to the interpreter until it suddenly started to look like more
27 > than a theoretical curiosity.  Then I knew I just had to finish the work.
28 > Hopefully everyone will be able to find some beauty in the result.  At least I
29 > know I've had a lot of fun designing the language.
31 Vesa Karvonen