Strange Loop

2009 - 2023

/

St. Louis, MO

Babel: An Untyped, Stack-based HLL

Babel is an open-source (BSD license) interpreted language designed by Clayton Bauman. It is an untyped, stack-based, postfix language with support for arrays, lists and hashes (dictionaries). It is implemented in C. Babel 1.0 will support built-in crypto to ease code certification. This will enable safer remote code execution for cloud-computing - one of the primary use-cases which Babel is intended to enable. Babel is inspired by many languages but some of the most notable influences are Perl, Lisp and Joy.

Babel's unique philosophy is based on the idea that languages - including computer languages - are emergent phenomena. Babel adopts Larry Wall's philosophy of first optimizing for the programmer's brain and secondarily optimizing for the machine. The most important performance rule of computer design is to make the common case fast - Amdahl's Law. No language can magically solve all your problems but it can make them worse. Babel attempts to avoid making things worse than they have to be. Babel looks to tradition to identify what the common case is in order to optimize to that.

Babel lacks classes and objects. In Babel, the machine is the object - that is, the virtual machine. The Babel Virtual Machine (BVM) has a symbol-table, it has code, stack and data, it has I/O, it has resource- limits, etc. It is containerized. It can implement and enforce access rights and code-execution rights. A BVM is just another data-structure so you can arbitrarily nest virtual machines.

Here are some of the things that you can do easily in Babel that would be less easy to do in another major language. With Babel, you can:

Clayton Bauman

Clayton Bauman

Intel

I am a computer engineer at a major technology company where I have specialized in virtualization architecture. I graduated in 2005 with a BS in computer engineering. I live in the beautiful Pacific Northwest. My two children are in grade-school and they are a constant source of joy and exhaustion. In my spare time, I play the piano, invent computer languages and read to satisfy my eclectic interest in everything from economics to algorithmic information theory.