xemmai A dynamic programming language

xemmai is a dynamic programming language. Its syntax is based on the off-side rule. Closing parentheses, brackets, and braces can be omitted where they are not necessary in conjunction with indentation.

Here is how it looks like:

system = Module("system"
print = system.out.write_line

hanoi = @(towers, move)
    f = @(height, from, via, to)
        if height > 1: f(height - 1, from, to, via
        move(from, to
        if height > 1: f(height - 1, via, from, to
    f(towers[0].size(), towers[0], towers[1], towers[2]

towers = '([3, 2, 1], [], []
print(towers
hanoi(towers, @(from, to)
    to.unshift(from.shift(
    print(towers

It has lambda closures, classes, exceptions, modules, threads, and fibers.

It is implemented in C++ and has C++ friendly API to implement extension modules. It aims to be a general purpose glue language.

It runs on linux, windows, and hopefully other unix systems.

Internally, codes are executed on a bytecode interpreter. It also has a concurrent garbage collector to utilize multiple processors.

View project on GitHub »

creole.js Creole parser for javascript.

creole.js is a Creole 1.0 parser for javascript. It can run on both client side and server side.

View project on GitHub » See Live Demo » See Live Demo with Macro »

WakuWakuTennis A tennis game using WebGL

Powered by three.js. Tested only on Chromium.

Play »