TEPCS

From Esolang
Jump to navigation Jump to search
This is still a work in progress. It may be changed in the future.

TEPCS (Tilde, Exclamation Point, Caret, Semicolon) is an incomplete programming language created by User:Cortex at around midnight, November 4, 2018. Its file extention is .~~~, and only four unique characters (other than inputs) are used:

  • ~, used in command names, the tally determines the command type
  • !, used to terminate commands
  • ^, used to separate the command name from the input(s)
  • ;, used to indicate a variable as opposed to a string where necessary (~^;x;! would print the value of variable x) (inputs are strings by default)

Examples

Hello World program:

~~~!
~^Hello, World!!

99 Bottles of Beer:

~~~!
~~^bot^99!
~~~~~^s^98!
~^;bot; bottles of beer on the wall, ;bot; bottles of beer!
~^Take one down, pass it around,!
~~~~^bot^1^-!
~^;bot; bottles of beer on the wall!
~~~~~^e^0!
~^1 bottle of beer on the wall, 1 bottle of beer!
~^Take one down, pass it around, no bottles of beer on the wall!

Factorial:

~~~!
~~^n^5!
~~^factorial^1!
~~~~~^s^;n;!
~~~~^factorial^n^*!
~~~~^n^1^-!
~~~~~^e^;n;!
~^result = ;factorial;!

List of commands

Command Description
~~~! Starts the program.
~^x! If x is a string, prints it verbatim; otherwise, if x is a variable of the form ;variableName;, the variable value will be printed.
~~^x^y! Declares the variable x and initializes it to the value y.
~~~~^x^y^z! Performs the binary operation z using x as its left operand and y as its right one. z may be any of the four operators + (addition), - (subtraction), * (multiplication), and / (division). x may be a variable.
~~~~~^x^y! Designates the start or end of a loop, depending on the value of x: If x equals s, the command starts the loop; if x resolves to e, the loop body end is demarcated. Between the loop start and end an arbitrary quantity of commands may be present for repeated execution. For a loop start command the input y must be an integer which determines the number of repetitions; for the loop end the input is ignored.
;^!x Marks the content x as a comment, thus ignoring input.

External resources

  • Common Lisp implementation of the TEPCS programming language.