To achieve these objectives, XL is built around a few key ideas:
- A syntax that centers on how humans read things, rather than the needs of compilers. For example, humans are sensitive to indentation and spacing, but do not care much about parentheses and other punctuation.
- Enabling familiar and powerful notations in code, rather than language-imposed notations. For example, humans think of a linear transform as
A*B+C rather than
- A core language definition based on a simple code rewrite rule.
- Implement as extensions many of the language features considered as "advanced" today, for example generics, overloading, higher-order functions, closures, ...
- Putting meta-programming at the center of the language. The XL parse tree is very simple, clearly documented, and allows arbitrary code manipulations with ease.