Comp

From Esolang
Jump to navigation Jump to search

Comp is an esolang by Hex. It is stack based. It is designed for code-golfing.

commands

# print the top value on the stack in ascii.
£ print the top value on the stack as a number.
' gets input and pushes the ascii value on to the stack.
; gets input and pushes the number on to the stack.
{ while the top value on the stack is not 0.
} end the loop
! adds one to the top value on to the stack.
" subtracts one from the top value on the stack.
\ pushes the number after it on to the stack.
+ gets the top two values on the stack. y being the first one popped, x being the second. x+y.
- same thing but -.
/ same thing but /.
* same thing but *.
[ if the number before it is the same as the first value popped off the stack, then continue (if x == the number before it).
] end the if.
( same thing as [ but a != not ==.
) end the if not statement
@ gets multi input and pushes the ascii values on backwards.
< until the top value on the stack is not 0.
> end the <.
^ duplicates the top value on the stack.
% pops the top value on the stack.
_ stops the program.
~ pops the top value on the stack, if it is a 1, push a 0, else, push a 1.

Examples

Hello, World!

\72 # \101 # \108 # \108 # \111 # \44 # \32 # \87 # \111 # \114 # \108 # \100 # \33 #

Truth-Machine

;{^&}&

Calculator

This has the operation last.

;;'

\43[%+_]
\45[%-_]
\42[%*_]
\47[%/_]

Implementations


Computational Class

Comp is believed, at least by one person, to be Turing Complete. Why? Because a command map between the Turing Complete esolang Volatile and Comp is possible:

Volatile Comp
~ \1 (Note that the ~ can be replaced with any number, as it is a random number generator)
+ +
- -
* *
/ /
: ^
. #
(...) {...}