Emo Language overview

Emo currently stands for Emoticon Memory Obfuscation and was invented by Dustin Luck and Sean Fife in 2010, and was inspired by Brainfuck.  Even though Emo is an acronym, it is written in title case and not all upper case to highlight the emotional nature of the language.

Like Brainfuck, Emo operates on an array of memory cells, each initially set to zero. There is a pointer, initially pointing to the first memory cell.  Unlike Brainfuck, however, there are two registers.  The first is a storage register, the second is more of a working area that is kind of an in between of the storage register and memory.  This working area register isn't persistent between read commands, so if the value is to be saved it must be written somewhere.

Commands:

Command Description
^ Context sensitive increment operator
- Context sensitive decrement operator
o shift left
c shift right
; Read from the current memory cell into the working register
( Write the working register into the current memory cell
: Read from the register into the working register
) Write the working register to the register
{ Copy the current register to the memory location
} Copy the current memory location to the register
= Read keyboard input
@ Write to the console from the working register
< Begin a loop
> End a loop
| No op
~ Comment

The context sensitive increment and decrement means that if the increment operator follows the ';' it will increment the pointer location, whereas if the increment operator follows ':' it will increment the working area value (that was previously read from the register).

Here's an example 'Hello World!':
:^) :o) :o) :o) :^) :^(
<;^}
:^) :^) :^) :^) :^) :^) :^(
;^}
:^) :^) :^) :^) :^) :^) :^) :^) :^) :^(
;^}
:^) :^) :^(
;^}
:^(
;-| ;-|	;-| ;-}
:-(>
;^}
:^) :^)	:( :@
;^}
:^) :@
:^) :^) :^) :^) :^) :^) :^) :@
:@
:^) :^) :^) :@
:(
;^}:^) :^) :@
:(
;-| ;-}
:^) :^) :^) :^) :^) :^) :^) :^) :^) :^) :^) :^) :^) :^) :^) :@
:(
;^}
:@
:^) :^) :^) :@
:-) :-) :-) :-) :-) :-) :@
:-) :-) :-) :-) :-) :-) :-) :-) :@
;^}
:^) :@
;^| ;@

We've also created an entry at http://esoteric.voxelperfect.net/wiki/Emo