Exp
Exp (short for "Expression") is an esoteric programming language based on expressions, created by User:PythonshellDebugwindow.
Instructions
Instruction | Meaning |
---|---|
< |
Open expression |
> |
Close expression |
{ |
Print the ASCII value of the expression/variable inside this pair of curly braces |
} |
See above |
{{ |
Print the integer value of the expression/variable inside this double pair of curly braces |
}} |
See above |
@ |
Sets the variable to the right to the result of the previous expression (the accumulator is the only variable) |
~ |
The accumulator variable; can be used with @ , put inside {} or {{}} , or used in an expression
|
Each {...}
and {{...}}
must be on its own line. They cannot be nested. Lines can be blank; non-blank lines must contain either {...}
or {{...}}
.
Expressions
Expressions are defined by <
and >
. Empty expressions (with no values) are invalid. Values in expressions can be represented by adding the appropriate amount of ^
s between 2 |
s, e.g. 5 would be represented as |^^^^^|
; you could also add no ^
s for the value to become 0. You could also use the accumulator's value by using ~
instead of |value|
, or a user input character by using I
. Values are separated by operations, which are +
(addition), -
(subtraction), x
(multiplication), and /
(division). Instead of using the order of operations, operations are read from left-to-right, and there are no parentheses.
Spaces
Spaces can only appear beside operators, <
, >
, or other spaces.
Examples
"HELLO WORLD"
{<|^^^^^^^^^| x |^^^^^^^^|>} {<|^^^^^^^^^^| x |^^^^^^^| - |^|>} {<|^^^^^^^^^| x |^^^^^^^^| + |^^^^|>} {<|^^^^^^^^^| x |^^^^^^^^| + |^^^^|>} {<|^^^^^^^^^^| x |^^^^^^^^| - |^|>} {<|^^^^^^^^| x |^^^^|>} {<|^^^^^^^^^^| x |^^^^^^^^^| - |^^^|>} {<|^^^^^^^^^^| x |^^^^^^^^| - |^|>} {<|^^^^^^^^^^| x |^^^^^^^^| + |^^|>} {<|^^^^^^^^^| x |^^^^^^^^| + |^^^^|>} {<|^^^^^^^^^^^^^^^^^| x |^^^^|>}
Cat program (1 character)
{<I>}
Add two inputs
More complicated than it needs to be, but it shows off the accumulator. Takes inputs as ASCII characters, outputs an integer.
{{<I>}}@~ {{<~ + I>}}@~ {{<~>}}
Note that the following program is equivalent:
{<I>}@~ {<~ + I>}@~ {{<~>}}
External resources
- interpreted in python by User:Nmcassa
- An interpreter on GitHub written in Node.js