Bulb: A teeny-tiny programming REPL on CHIP-8

Unknown Reply 7:50 AM

Bulb is teeny-tiny interpreted language that runs on SCHIP, taking up a good bit less than 4kb of RAM. Bulb is a language built around the idea of manipulating pairs.

This language is in principle Turing-complete, but in practice severely limited by workspace RAM and the 16-level CHIP-8 call stack. The workspace consists of 256 atoms which may be numbers (unsigned bytes), symbols (interned, immutable strings), or pairs. Variables are stored in an environment structure which provides dynamic (read: cool and fun) scope for up to 64 simultaneous bindings, and is reduced slightly by nested function invocations.

Bulb features a variety of built-in “primitive” routines, all of which have intuitively clear names. This should come as a welcome relief to anyone flustered by the use of esoteric symbols like “+” in source code.

Some primitives are special forms, which evaluate (or do not evaluate) their arguments according to unique whims. Special forms may be identified by their identical appearance to non-special forms.

Otherwise, each parenthesized term can be thought of as evaluating each argument in turn, before supplying them to the primitive or Llama indicated by the head of the term.

Read more

Post a Comment

Search

Follow us

Popular Reviews