XL features programmer-reconfigurable syntax and semantics. XL2 defines the standard library, which includes common data types programming language syntax and semantics pdf operators. XLR defines a dynamic runtime for XL based on XL0.
Syntax is defined at the XL0 level. The XL0 phase of the compiler can be configured using a syntax description file, where properties like the text representation and precedence of operators are defined. Infix nodes are in particular used to separate lines, with an infix “new-line” symbol. Indentation is internally represented by a block node. With the default syntax file, the following is valid XL0, irrespective of any semantics. The XL1 phase is defined as a sequence of operations on the XL0 parse tree. These operations are provided by various compiler plug-ins, that are triggered based on the shape of the parse tree.
Such types need not have generic parameters. A written form can use constants, and such a form is more specialized than a form without constants. The mechanism is used to implement all basic operators. An expression is progressively reduced to function calls using written forms.