CBIASIPOSLESWRAOTTHNRTBTSS.SATLCD

From Esolang
Jump to navigation Jump to search
CBIASIPOSLESWRAOTTHNRTBTSS.SATLCD
Designed by User:SpaceByte
Appeared in 2022
Computational class Unknown
Reference implementation [1]
File extension(s) .coballs

CBIASIPOSLESWRAOTTHNRTBTSS.SATLCD, which is short for "COBOL but it actually serves its purpose of sounding like English speech without renaming and overcomplicating topics that have no reason to be that stupid sounding. Someone arrest the lead COBOL designer.", is an interpreted esoteric programming language created by User:SpaceByte on 6/28/22 based off of COBOLs idea of sounding like English speech. It was created due to COBOLs lack of human readability and strangeness in terms of renaming certain terms and concepts in the language. CBIASIPOSLESWRAOTTHNRTBTSS.SATLCD is esoteric due to its limited capability, small amount of functions, its impracticality, and only one storable variable type.

Language description

CBIASIPOSLESWRAOTTHNRTBTSS.SATLCD is a very human readable language. It's syntax reads almost exactly like English, in most cases. However, the language is heavily limited, unlike many esoteric languages, you can print strings, rather than by ASCII character, but you may not store or modify strings. Variables are only stored as integers, and strings for names, and can be optionally printed via their ASCII character, to allow for modifiable text. You may recieve user input in the form of an ASCII code value, similar to brainfuck, however, unlike brainfuck, you specify a variable, rather than moving a pointer..

Commands

Command Description
write the string:[Predefined string] Prints a string that has been hard coded. Can also be used to print line-breaks.
write the ascii character for the variable:[Variable Name] Prints an ASCII character which code corresponds to a variables value.
set the variable called [Variable Name] to:[Value] Sets the value of the variable with the name [Variable Name] to a predefined integer.
set the value of [Variable Name] to the value of:[Variable Name 2] Sets the value of the variable with the name [Variable Name] to the value of [Variable Name 2]
set the value of [Variable] to the ascii value of a user input character Read a user input key, set the value of the variable with the name [Variable] to that keys corresponding ASCII value.
set the title of the application to:[Title] Set the console windows title to [Title]
preform operation [Operation] on [Variable] by:[Value] Preform a mathematical operation between a variable and a predefined integer. The operations include "+" (Addition), "-" (Subtraction), "*" (Multiplication), "/" (Division), "%" (Modulo)
goto line of the number:[Line Number] Go to the line in your code with the corresponding line number to [Line Number]
if variable is not 0:[Variable Name] If the variable of the name [Variable Name] has a value that isn't 0, execute the next 5 lines, otherwise, do not execute them.

All commands which first arguments are not any that a command holds, aren't checked or executed at all, and are fully comments.

Example

Random Character

This program is bundled by default with the interpreter. It prints all characters continuously using a form of recursion, by looping back lines.

set the title of the application to:Loop Test
write the string:numbers
set the variable called ascii to:1
if variable is not 0:ascii
	write the ascii character for the variable:ascii
	preform operation + on ascii by:1
	goto line of the number:4	

Computational class

As long as variables are unbounded the language is Turing-complete because it can simulate Minsky machine with "jump if not zero" instruction:

INC x

becomes:

preform operation + on x by:1
DEC x

becomes:

preform operation - on x by:1
JNZ x y

becomes:

if variable is not 0:x
	goto line of the number:y
	goto line of the number:y
	goto line of the number:y
	goto line of the number:y
	goto line of the number:y