unpl

From Esolang
Jump to navigation Jump to search
Unpl
Designed by User:Larryrl
Appeared in 2021
Memory system Cell-based
Dimensions one-dimensional
Computational class Unknown
Reference implementation Unimplemented
Influenced by brainfuck
Influenced Category:Brainfuck derivatives
File extension(s) .unpl

Language overview

unpl operates on an array of memory cells, each initially set to zero. The array is 50,000 cells long.There is a pointer, initially pointing to the first memory cell which is cell 0. The cells 49990 to 50000 are reserved. They go with some of the instructions to make them work properly. The Instructions are:

Instructions

} Moves the cell pointer right 1 cell
{ Moves the cell pointer left 1 cell
] Moves the cell pointer right by the value in cell 49997
[ Moves the cell pointer left by the value in cell 49997
+ Increment the current cell value by 1
- Decrement the current cell value by 1
> Increment the current cell's value by the value in cell 49998
< DECREMENT THE CURRENT CELL's value by the value in cell 49998
! Moves to the next matching ! Treating all characters between them as a large comment, which can even span multiple lines.
@ Output the value of the current cell to the screen as a number

Replce the value in the current cell with input from the keyboard

^ Jump to matching v without regard for cell value
) Start loop
( End loop
| Sets the foreground color equal to the value in cell 49999
$ Sets the background color equal to the value in cell 49999
& Sets the output row and column to 1
I Increments the current output row
D Decrement the current output row
I Increments the current output column
D Decrement the current output column
C Sets the foreground color to 7 and the backgroun color to 0
, Output the value of the current cell to the screen as a character
` Clears the screen
/ Resets the current cell pointer to cell 0
\ Resets the current cell's value back TO 0
a Adds the value of the current cell to the value in cell 49996 and stores it in the current cell
s Subtracts the value of the current cell from the value in cell 49996. it stores the result in the current cell
m Multiplies the value of the current cell with the value in cell 49996 and stores it in the current cell
v DIvides the value of the current cell by the value in cell 49996 and stores it in the current cell if the result would be a division by 0, it does not preform the operation.
q Increments the current cell’s value by 4
q Decrements the current cell’s value by 4 cells



History

unpl which stands for un-named programming language was invented by Larryrl in 2021, in an attempt to make an esoteric programming language that was easy to use but was cell based. So he studied all of the cell and tape based esoteric languages both in 1d and 2d. He saw where the original brainfuck had an array of 30,000 bytes. He made his array 50,000. unpl could be considered a dirivitive of brainfuck. The Author is currently creating an interpretor for unpl, using Qb64 for windows. It is partially implemented, however all of the following examples will work.

Examples

This program prints out Hello World!:

!Hello World, in unpl! `++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,i+++++++++++++++++++++++++++++, i+++++++,i,i+++,ii------------------------,i++++++++++++++++++++++++,i+++,i------,i--------,i\+++++++++++++++++++++++++++++++++,E

This program prints out Hello World!:, but does it using less code.

!Faster and easier Hello World, in unpl!`QQQQQQQQQQQQQQQQQQ,iQQQQQQQ+,iQ+++,i,i+++,i\QQQQQQQQ,iQQQQQQQQQQQQQ+++,iQQQQQQ,i+++,iq--,iqq,i\QQQQQQQQ+,E

This is a comment example

!This program does absolutely nothing as it is one giant comment!E