CelseeLang

From Esolang
Jump to navigation Jump to search
CelseeLang
Paradigm(s) imperative
Designed by Alluseri
Appeared in 2022(Celsee: 2019)
Type system Queue-based
Memory system Cell-based
Dimensions one-dimensional
Computational class Unknown
Reference implementation Celsee
Major implementations CelseeLang
Dialects CelseeLang(2022), Celsee(2019)
Influenced this
File extension(s) .cee

CelseeLang is a rework of Celsee made by Alluseri.

Overview

All commands/instructions are hexadecimal integers from 0 to C and $.
The original purpose of this language was to execute randomly generated numbers and (hopefully) receive some input.
Execution starts at index 0.
The effective difference between Celsee(Lang) and this is the inability to directly use values under 0 or over 9.

Instructions

Instruction Description
0 None
1E Jump to execution index at E
ENV support: Yes(E)
2ABC If ENV == A, jump to B, otherwise, jump to C
ENV support: Yes(ABC)
3ABC If ENV != A, jump to B, otherwise, jump to C
ENV support: Yes(ABC)
4 Increase ENV by 1
5 Decrease ENV by 1
6E Set ENV to E
ENV support: Yes(E)
7 Print ENV
8 Print ENV + next line
9 Print character at ENV
A Print character at ENV + new line
BE Increase ENV by E
ENV support: Yes(E)
CE Decrease ENV by E
ENV support: Yes(E)
$ ENV. If used outside of instruction arguments, executes the instruction within ENV parsed a hex character(e.g. ENV = 10, instruction: A). UNSAFE OPERATION!

Examples

Hello, world!

Traditionally(as per Alluseri's languages), all (known) implementations of Hello world will be shown here. The idea is to print 0123456789, since the language doesn't direct support characters.

The Basic

74747474747474747474

The Best

394874107

Wait, that's illegal

6947

You can output values less than 0 and higher than 9 using ENV.

"Self-modifying code"

67$

The code will set ENV to 7 and execute the instruction within ENV(7), which causes it to print "7", which is the value of ENV.