EmojiCoder

From Esolang
Jump to navigation Jump to search

EmojiCoder is an esoteric programming language that uses emoji to represent commands and arguments. Designed and created by Sarah Nathanson and Jeremey at HackRPI 2015. Lines of code are formatted as [command][modifier][parameter][new-line] .

Language

Commands

πŸ‘‡: push [param] on to the stack

πŸ‘†: pop off the stack

βœ‹: output top item on stack

πŸ‘‹: output [param]

πŸ“¦: set accumulator [param]

βž• : add [param] to accumulator

βž– : subtract [param] from accumulator

βž— : divide accumulator by [param]

βœ– : multiply accumulator by [param]

πŸ“«: output accumulator

πŸ“: output newline

πŸ”»: push accumulator on to the stack

πŸ”Ί: set accumulator to the top of the stack

πŸŽ’: set x to [param]

πŸš₯: push x on to stack

🚦: set x to the top of stack

πŸ”Ή: set x to accumulator

πŸ”Έ: set accumulator to x

βž•βœ–: add x to accumulator

βž–βœ–: subtract x from accumulator

βž—βœ–: divide accumulator by x

βœ–βœ–: mulitply accumulator by x

πŸ“ͺ: output x

πŸ”›: compares x to a

  • if param=0 in binary, <
  • if param=1 in binary, =
  • if param=2 in binary, >
  • if statement is true, compile next line else skip

πŸ”: repeat next line [param] times

πŸ“§: set stringbuilder to [param]

πŸ“₯: add [param] to stringbuilder

πŸ“€: remove last character from stringbuilder

πŸ“¨: output stringbuilder

πŸ™ˆ: pushes random num zero to [param] on to stack

πŸ™‰: sets x to random num zero to [param]

Modifers

πŸ”‘: Ascii Character 0-255

πŸ”’: Integer Number 0-255

Parameters

As binary where 🌚=0 and 🌝=1

Ex: 🌚🌝🌚🌚🌚🌚🌚🌝

=0100 0001

=65

="A"

Variable Reference

Stack: An implementation of a stack

Has operations push and pop

Accumulator: Used to store and do arithmetic on a number

X: Used to temporarily store a number

String builder: Used to store and build up a string

Comments

Comments are in progress

On lines which take parameters putting //comment on the end is ok

Examples

Hello World!

πŸ‘‹πŸ”‘πŸŒšπŸŒπŸŒšπŸŒšπŸŒπŸŒšπŸŒšπŸŒš //Output H 
πŸ‘‹πŸ”‘πŸŒšπŸŒπŸŒπŸŒšπŸŒšπŸŒπŸŒšπŸŒ //Output e 
πŸ‘‹πŸ”‘πŸŒšπŸŒπŸŒπŸŒšπŸŒπŸŒπŸŒšπŸŒš //Output l 
πŸ‘‹πŸ”‘πŸŒšπŸŒπŸŒπŸŒšπŸŒπŸŒπŸŒšπŸŒš //Output l 
πŸ‘‹πŸ”‘πŸŒšπŸŒπŸŒπŸŒšπŸŒπŸŒπŸŒπŸŒ //Output o 
πŸ‘‹πŸ”‘πŸŒšπŸŒšπŸŒπŸŒšπŸŒπŸŒπŸŒšπŸŒš //Output , 
πŸ‘‹πŸ”‘πŸŒšπŸŒšπŸŒπŸŒšπŸŒšπŸŒšπŸŒšπŸŒš //Output space 
πŸ‘‹πŸ”‘πŸŒšπŸŒπŸŒπŸŒπŸŒšπŸŒπŸŒπŸŒ //Output w 
πŸ‘‹πŸ”‘πŸŒšπŸŒπŸŒπŸŒšπŸŒπŸŒπŸŒπŸŒ //Output o 
πŸ‘‹πŸ”‘πŸŒšπŸŒπŸŒπŸŒπŸŒšπŸŒšπŸŒπŸŒš //Output r 
πŸ‘‹πŸ”‘πŸŒšπŸŒπŸŒπŸŒšπŸŒπŸŒπŸŒšπŸŒš //Output l 
πŸ‘‹πŸ”‘πŸŒšπŸŒπŸŒπŸŒšπŸŒšπŸŒπŸŒšπŸŒš //Output d 
πŸ‘‹πŸ”‘πŸŒšπŸŒšπŸŒπŸŒšπŸŒšπŸŒšπŸŒšπŸŒ //Output !

External resources

[1] contains an interpreter, about and reference pages, and example programs.