Celsee

From Esolang
Jump to: navigation, search
Celsee
Paradigm(s) Imperative
Designed by FAKE1007
Appeared in 2019
Memory system Queue-based
Computational class Unknown
Major implementations 1-symbol
File extension(s) Any(preferably, .cee)


Celsee is a queue-based programming language that was made as a "possibly workable language".

Overview

All commands/instructions are hexadecimal integers from 0 to F.
This language was made under drugs for experiments and different output.

Instructions

Instruction Description
0 None
1 None
2 Reserved/None
3 Go to Symbol
4 Increase ENV by 1
5 Decrease ENV by 1
6 Compare ENV
7 Set ENV
8 Print Character
9 Print Character from New Line
A Increase ENV
B Decrease ENV
C Print Character using JCCS(Java Char Charset)
D Print Character from New Line using JCCS(Java Char Charset)
$ ENV

In-Depth

Inst. 2 could use this scheme:
Instruction
Y Symbol to go/None if 0
N Symbol to go/None if 0
Inst. 6 uses almost the same scheme:
Instruction
Value
True Symbol to go/None if 0
False Symbol to go/None if 0
Inst. 8&9 prints characters 0-9(or oob if ENV).
Inst. A&B increases/decreases ENV by 0-9(or twice if ENV).

Examples

Hello, world!

This language does not support letters, so we'll make hello-world-like application. It'll output 0123456789.
80818283848586878889
A bit more advanced code. It'll use ENV as what it should output. The initial value of ENV is 0, so it prints out 0. Then it increases the ENV, prints the ENV and it will run until ENV is 9.
8$48$48$48$48$48$48$48$48$48$4
Even more advanced code. This one uses compare to effectively loop. We use 0 in start so we could loop.
08$469018$

Wait, that's illegal

You can output values less than 0 and higher than 9, using ENV.
79448$70558$

Where can I find the compiler?

You can find it here, but it's very raw and WIP. Some things are unused, some are unoptimized, some aren't done yet, but you can run all commands from examples at least. You can (probably) run this on any Java IDE/Site(IJIDEA, Eclipse, Ideone, etc.).
Compiler version: 1.1
Language version: 1.2