Free2Edit

From Esolang
Jump to navigation Jump to search
Free2Edit
Designed by User:RikoMamaBala
Appeared in Category:2026
Computational class Turing-complete
Major implementations Scratch

Free2Edit is (technically) the first esolang that I made. It's kinda like a Brainfuck derivative, but more powerful. The reason I named it that is because I thought I could implement Free Esolang with this esolang, but I couldn't, so... I guess I could say code written on it is obfuscated?

Instructions

Free2Edit consists of 100000 8-bit cells and you are currently pointing to a cell.

Instructions
Code What it does
[instr][val] [val] must be one digit,[instr] can be +, -, *, /, m, does [instr] on the current cell by [val]. If [val] is c, do [instr] on current cell by the value of the next cell.
r[val] moves the pointer right [val] cells.
l[val] moves the pointer left [val] cells.
oc Outputs current cell as ASCII.
on Outputs current cell as a number.
p[chr] Prints the [chr], where [chr] is one letter long.
ws while current cell isn't 0:
we end while not zero
wz while current cell is 0:
wx end while zero
is if current cell isn't 0:
ie end if or NOP if you want. Doesn't error when unmatched.
iz if current cell is 0:
ix end if zero.
gc Get one character and store into cell as ASCII.
gn Get one character and store into cell as a number.
ds[in][code]de Define [in] as [code], where [in] is 2 characters.
xx Change cell bits to xx, where xx is a two digit integer.
t[type] Set type to [type], n is signed integer, f is float, and anything else is an unsigned 8-bit integer. You could of course change it to be 16 or 32-bit with the xx instruction.
s[chr] Set current cell to [chr].

The #stuff between octothorpes# are not executed and are treated as comments, because if they were treated as instructions,...

NaN 0 0 0 0 0 0...

...disasters would happen.

Note that all instructions are two characters long.

Examples

Hello, World!

pHpeplplpop,p pWpoprplpdp!

Cat program

gcwsocgcwe

Copy current cell to next cell

r1ws-1wer1ws-1wel2wsr1+1r1+1l2-1wer2ws-1l2+1r2wel2

Shorter version:

wsr1+1l1-1we+c

99 bottles of beer

With the grammar errors

+9*5*2+9r1+5+5l1wsonp pbpoptptplpepsp popfp pbpepeprp popnp ptphpep pwpaplplp,r1ocl1onp pbpoptptplpepsp popfp pbpepeprp.r1ocl1pTpapkpep popnpep pdpopwpnp,r1ocl1pPpapspsp piptp paprpopupnpdp,r1ocl1-1onp pbpoptptplpepsp popfp pbpepeprp popnp ptphpep pwpaplplp!r1ococl1wepNpop pmpoprpep pbpoptptplpepsp popfp pbpepeprp popnp ptphpep pwpaplplp,r1ocl1pNpop pmpoprpep pbpoptptplpepsp popfp pbpepeprp.r1ocl1pGpop ptpop ptphpep psptpoprpep papnpdp pbpupyp pspopmpep pmpoprpep,r1ocl1p9p9p pbpoptptplpepsp popfp pbpepeprp popnp ptphpep pwpaplplp!

Without the grammar errors

+9*5*2+9r1+5+5l1wsonp pbpoptptplpe-1ispsie+1p popfp pbpepeprp popnp ptphpep pwpaplplp,r1ocl1onp pbpoptptplpe-1ispsie+1p popfp pbpepeprp.r1ocl1pTpapkpep popnpep pdpopwpnp,r1ocl1pPpapspsp piptp paprpopupnpdp,r1ocl1-1onp pbpoptptplpe-1ispsie+1p popfp pbpepeprp popnp ptphpep pwpaplplp!r1ococl1wep0p pbpoptptplpepsp popfp pbpepeprp popnp ptphpep pwpaplplp,r1ocl1p0p pbpoptptplpepsp popfp pbpepeprp.r1ocl1pGpop ptpop ptphpep psptpoprpep papnpdp pbpupyp pspopmpep pmpoprpep,r1ocl1p9p9p pbpoptptplpepsp popfp pbpepeprp popnp ptphpep pwpaplplp!

Infinite, without the grammar errors

r1+5+5l2+1wsr1+9*5*2+9wsonp pbpoptptplpe-1ispsie+1p popfp pbpepeprp popnp ptphpep pwpaplplp,r1ocl1onp pbpoptptplpe-1ispsie+1p popfp pbpepeprp.r1ocl1pTpapkpep popnpep pdpopwpnp,r1ocl1pPpapspsp piptp paprpopupnpdp,r1ocl1-1onp pbpoptptplpe-1ispsie+1p popfp pbpepeprp popnp ptphpep pwpaplplp!r1ococl1wep0p pbpoptptplpepsp popfp pbpepeprp popnp ptphpep pwpaplplp,r1ocl1p0p pbpoptptplpepsp popfp pbpepeprp.r1ocl1pGpop ptpop ptphpep psptpoprpep papnpdp pbpupyp pspopmpep pmpoprpep,r1ocl1p9p9p pbpoptptplpepsp popfp pbpepeprp popnp ptphpep pwpaplplp!r1ococl2we

Count from 1 to the input

gnws-1r1+1onl1we

Disan counter

dsccws-1r1+1l1we+cde
gnccm2-1isr1onl1pipsp pepvpepnp!ie

Truth Machine

gnwsp1wep0

XKCD Random Number

p4

or

+4on

or

+8*6+4oc

A+B Problem

gnr1gnws-1l1+1r1wel1on

or without loops:

gnr1gnl1+con

Factorial

99gnwswsr1+1l1-1we+cr1-1wel2ws*cl1wer1on

FizzBuzz

+5*5*4r4+5+5l4wsr2+1l1+cm3izpFpipzpzr2+1l2ixws-1we+cm5izpBpupzpzr2+1l2ixws-1wer2izl1onr1ixws-1wer1ocl4-1we

Calculator

With comments

dsdcws-1wede
pCpaplpcpuplpaptpopr+5+5oc-5-5
#Prompt for X#
pXp:p gnonl1+5+5oc-5-5r1
#Prompt for Y#
r1pYp:p gnonl2+5+5oc-5-5r2
#Prompt for Operation#
r1pOppp:p gcocr1+5+5oc-5-5l1
r1+1l1-9-9-9-9-7isr1-1l1ie+9+9+9+9+7r1isl3+conr3-1ie #Checks if operation is +. If so, add X and Y and output it. else...#
+1l1-9-9-9-9-9isr1-1l1ie+9+9+9+9+9r1isl3-conr3-1ie #Checks if operation is -. If so, subtract X and Y and output it. else...#
+1l1-9-9-9-9-6isr1-1l1ie+9+9+9+9+6r1isl3*conr3-1ie #Checks if operation is *. If so, multiply X and Y and output it. else...#
+1l1-9-9-9-9-9-2isr1-1l1ie+9+9+9+9+9+2r1isl3/conr3-1ie #Checks if operation is /. If so, divide X and Y and output it. else...#
+1l1-9-9-9-9-1isr1-1l1ie+9+9+9+9+1r1isl3mconr3-1ie #Checks if operation is %. If so, take remainder of X / Y and output it.#

Without comments

dsdcws-1wedepCpaplpcpuplpaptpopr+5+5oc-5-5pXp:p gnonl1+5+5oc-5-5r1r1pYp:p gnonl2+5+5oc-5-5r2r1pOppp:p gcocr1+5+5oc-5-5l1r1+1l1-9-9-9-9-7isr1-1l1ie+9+9+9+9+7r1isl3+conr3-1ie+1l1-9-9-9-9-9isr1-1l1ie+9+9+9+9+9r1isl3-conr3-1ie+1l1-9-9-9-9-6isr1-1l1ie+9+9+9+9+6r1isl3*conr3-1ie+1l1-9-9-9-9-9-2isr1-1l1ie+9+9+9+9+9+2r1isl3/conr3-1ie+1l1-9-9-9-9-1isr1-1l1ie+9+9+9+9+1r1isl3mconr3-1ie

To make it 16-bit, just write "16" at the start.

Even shorter

pCpaplpcpuplpaptpopr+5+5oc-5-5pXp:p gnonl1+5+5oc-5-5r1r1pYp:p gnonl2+5+5oc-5-5r2r1pOppp:p gcocr1+5+5oc-5-5l1-9-9-9-9-7izl2+conr2ix-2izl2-conr2ix+3izl2*conr2ix-5izl2/conr2ix+5+5izl2mconr2ix

Fibonacci sequence

p1p p1p 2026
+1r1+1r1+1l2
ws+cr1ws-1we
+cr1
ws-1
wel2wsr2+1r1
+1l3-1wer3ws
l3+1
r3-1
wel3
onwe

Quine

slr1s1r1swr1ssr1slr1s1r1swr1ser1srr1s1r1swr1ssr1spr1ssr1sor1scr1spr1srr1spr1s1r1srr1s1r1swr1ser1slr1s1r1swr1ssr1slr1s1r1swr1ser1srr1s1r1swr1ssr1sor1scr1srr1s1r1swr1ser1l1wsl1wer1wspsocprp1r1wel1wsl1wer1wsocr1we

How I did it

First, you write the Quinify.

l1wsl1wer1wspsocprp1r1wel1wsl1wer1wsocr1we

Then, you need to grab that thing and put it in the memory like this: s#r1 Do it for all instructions on Quinify, and then merge them.

That's how you get a Quine.

Computational class

Since Free2Edit is just a Brainfuck derivative, it's Turing-complete as well.

Caption text
Free2Edit Brainfuck
+1 +
-1 -
r1 >
l1 <
gc ,
oc .
ws [
we ]

Implementations

My interpreter that actually works: https://scratch.mit.edu/projects/1260874999/editor/