Meow (Martsadas)

From Esolang
Jump to navigation Jump to search

Meow is a joke esolang created by User:Martsadas that has 2 registers that can store integers.

Instructions:

Instruction What it does
Meow Outputs the value in the register a as an ASCII character to stdout
Put [expression] Sets the register a to [expression]
Get Reads the first byte from stdin and stores it into the register a
Purr [string] Outputs [string] to stdout
Go [expression] [name] Goes to label [name] if [expression] is negative
Cat [name] Creates a new label named [name]
Move Swaps the primary register a and the secondary register b
Exit Halts the program


Notes:

  • Expressions can't have spaces
  • The primary register is a and the secondary register is b
  • When there is no more input in stdin, Meow Will assume that the input is -1


Example programs

Cat program

Cat loop
Get
Meow
Go a exit
Go -1 loop
Cat exit Exit

Hello, world!

Purr "Hello, World" Exit

Truth-machine

Get
Move
Put b-48
Cat loop
Move Meow Move
Go -a loop
Exit

99 bottles of beer

Put 99
Cat loop

Move
Put 48+(b/10) Meow
Put 48+(b%10) Meow

Purr " bottles of beer on the wall,
"

Put 48+(b/10) Meow
Put 48+(b%10) Meow

Purr " bottles of beer.
Take 1 down,
Pass it around,
"

Move
Put a-1
Move

Put 48+(b/10) Meow
Put 48+(b%10) Meow

Move

Purr " bottles of beer!

"

Go -(a-2) loop

Purr "2 bottles of beer on the wall,
2 bottles of beer.
Take 1 down,
Pass it around,
1 bottle of beer on the wall, 

1 bottle of beer on the wall,
1 bottle of beer.
Take 1 down,
Pass it around,
0 bottles of beer on the wall,
"

Exit

FizzBuzz

Put 0
Cat loop
Put a+1
Go (a%15)-1 fizzbuzz
Go (a%3)-1 fizz
Go (a%5)-1 buzz
Go -1 num
Exit

Cat fizzbuzz
Purr "FizzBuzz
" Go a-999 loop Exit

Cat fizz
Purr "Fizz
" Go a-999 loop Exit

Cat buzz
Purr "Buzz
" Go a-999 loop Exit

Cat num
Move

Put 48+(b/100%10) Meow
Put 48+(b/10%10)  Meow
Put 48+(b%10)     Meow
Purr "
"

Move
Go a-999 loop Exit

Factorial

Get Meow
Purr "! = "
Put a-48
Move Put 1 Move

Cat loop
Move Put a*b Move
Put a-1
Go -(a-1) loop

Put 48+(b/100000%10) Meow
Put 48+(b/10000%10)  Meow
Put 48+(b/1000%10)   Meow
Put 48+(b/100%10)    Meow
Put 48+(b/10%10)     Meow
Put 48+(b%10)        Meow

Exit

Interpreter

  • Common Lisp implementation of the Meow programming language.