Another Syntactic Monstrosity

http://idorobots.files.wordpress.com/2012/05/asm3.png?w=100&h=100
ASM* is a multipurpose programming language suitable for hacking of all sorts. It is a Lisp-like language designed to be as simple and expressive as a programming language can get.

Thanks to all kinds of first-class goodies and an extensible reader macro facility ASM does not impose any limits on the programmer.
Not even the parentheses:

# ASM code sample**

# Extend the language however you please.
(syntax (Ternary < Expression (: "\\?") Expression (: ":") Expression)
  `($(car Ternary)
     ($(ternary-to-if (caadr Ternary)))))

# Use the whole language to your advantage.
(function (ternary-to-if t)
  `(if $(car t)
       $(cadr t)
       $(caddr t)))

# Interaction with the rest of the grammar is well-defined.
# No more hard to find bugs!
(syntax (Expression < (/ Quote Tuple Vector String Ternary Atom))

# It's that simple!
(function (abs x)
  (> 0 x) ? (- x) : x )

ASM‘s interpreter, found here, is a testbed for high-level features that will make it into the final specification of the language.
It’s open source, licensed under the MIT license, feel free to contribute!

To get the most recent version of ASM from the repository do the following:

git clone https://code.google.com/p/asm-programming-language/ asm
cd asm
make

make defaults to the GDC compiler, if you wish to use DMD type make dmd in the third step.


Further reading:



* The name is a pun… OR IS IT‽
** Note: The snippet uses Scheme syntax highlighting, so it’s not too accurate.