Powered by SourceForge   Home | About | Partners | Contact Us

Perfection is achieved, 
not when there is nothing more to add,

but when there is nothing left to take away.
Antoine de Saint Exupéry

Welcome to XL

XL is a new programming language for modern programming needs.

use XL.UI.CONSOLE
WriteLn "Hello World"

Hello World in XL2

0! -> 1
N! -> N * (N-1)!

Factorial in XLR

Simple to write, simpler to read

Do semi-colons and curly braces really improve your code?
XL helps you write shorter, beautiful code.

Choose your programming style

We have different styles and preferences.
XL2 offers the high performance of an imperative language with generics.
XLR offers the flexibility of high-order functions and dynamic compilation.

Highest performance

Modern hardware includes GPUs, SIMD instructions, multiple cores.

XL2 was designed to let you take advantage of these features.
In addition, it eliminated bottlenecks that limit optimizations in languages like C++ or Java.

Even if it is more dynamic, XLR is no slouch either.
It takes advantage of LLVM’s extensive and ever-growing range of optimization techniques.

Surprisingly powerful

C++ programmers are familiar with “templates”.
Generics in XL2 add useful capabilities, such as checking usage or overloading generics.
XL2 doesn’t even need special array or pointer types, it implements them with generics.
Like functional languages, XLR has higher-order “functions”, but they can take more familiar forms, like A*B+C or if X then Y else Z.
The expressive power you want now blends with a syntax readable by mere mortals.

{differentiation}
x := d/dt(exp(-t/t0))

Symbolic differentiation in XL2

if true then X -> do X
if false then X -> false

Defining 'if' in XLR

Designed to grow with you

Your ideas have no limits.
Why let programming tools shackle your mind?

XL was designed for extensibility.
Tailoring the language is easy, safe and fun.

Truly open

XL is not just open-source, it is open from end to end.
You can tune its syntax, add new instructions, integrate arbitrary system capabilities, enforce custom policies, add specific optimizations, change the runtime environment, ...
Tweaking XL is not just possible, it’s highly encouraged!