Dotfuck

From Esolang
Jump to navigation Jump to search

Dotfuck is a brainfuck derivative invented by User:None1, but you only get to use dots (.).

Introduction

Dotfuck (or .fuck for short), is probably the craziest esolang at least in this wiki. Because using it will usually make you feel like a million bombs exploding in your brain.

Execution

When running, a .fuck program transpiles into brainfuck using the following steps: 1. The number of dots in your program is represented as a binary number (big endian), and zeros are added in the front until the binary number has a bit number divisible by 3.

2. Split the number into groups of 3 bits, then convert each group using the following table:

111 +

001 ,

010 .

011 <

100 >

101 [

110 ]

In order to prevent ambiguity (e.g. 000 and 000000 both stands for 0), .fuck sacrifices its - command, causing it to be even more brain-exploding.

Why is it brain-exploding

The esolang is brain-exploding because the number of dots grow exponetially. If you want to use .fuck to print HELLOWORLD, you will have to enter at least

24900171313599407832425897376933679165362459398445696363073193628257649948866889545810849988015733095641019671881223802824461864094471296654034775611865127422980097344
04410431535280920585529925111845047848919686325627491135409490162639503603152126857838001069437877999231391713453917814453522662047794704257643589107418121871610694951
55580442044246814967636358217633017322761058052766015183991331750716161051952146547740571292136565051109199859277916769266063822231591856231998973005296240555489597540
00958106045283704741962582441029191473964431438215756588598385433478435375680023450992272573618798326873139361752226488879153741583883208962913728588878190559051730517
60899061910212098751403921990430891488164916614157404047277050550929134508651854245332419959692696984865482641389550865074764091285399883398270254375208336887485392845
64073657730076099713509883002620633499797588317863620943034798051251713062290469349645924422490512238906244331348407343192709314808844496215345656886983100553550935144
81419753407217339163118890684649683969566119915130400406398557489814711995271706371693005836941860924583639086447486204066906573590222397141141194733534510078725996523
5122127030989811499667468312072864323134686676037815762938

dots, as a comparison, there are less than 10100 (which is 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) atoms in the universe.

Just think of how many dots you will need to print "Hello World!" (in a normal case, with space and exclamation mark), your hippocampus will probably explode when calculating numbers that large, so you will need a programming language (mine is Python) to assist you, but even it you do, imagine if you have to type all of them!

Turing completeness

Despite the fact that it is brain-exploding, it is still Turing complete because brainfuck is, and one decrement can be replaced with 255 increments.

Example Programs

The only program I think is normal is the one time cat program, which consists of only 10 dots:

..........

There is also a cat program in Dotfuck, which is the shortest cat program in this esolang. It is 6798 bytes long (excluding all the line feeds which wrap the program) , but it is relatively shorter than other programs in dotfuck.

See also