Gödelang

From Esolang
Jump to navigation Jump to search

Gödelang is an esolang created by User:TJC games. It's based off of Gödel numbering, and it's just another Brain**** clone.

Interpretation

Each program is represented as a number, which is read by breaking it down into its prime factors and using the powers as the instructions. If it uses a number not listed in the below table, it's recompiled and run. The powers are as follows:

Gödelang 1.0 value BF alternative Instruction
0 end of file Terminate program
1 > Move pointer 1 byte to the right
2 < Move pointer 1 byte to the left
3 + Increase byte at pointer by 1
5 - Decrease byte at pointer by 1
7 ++++++++++++++++ Increase byte at pointer by 16 (= 100002)
9 ---------------- Decrease byte at pointer by 16 (= 100002)
10 . Output ASCII character stored in byte at pointer
11 , Input ASCII character and store in byte at pointer
13 [ If byte at pointer = 0, then skip to next 14
14 ] If byte at pointer != 0, then skip to previous 13
Gödelang 1.1 value BF alternative Instruction
0 end of file Terminate program
1 > Move pointer 1 value to the right
2 < Move pointer 1 value to the left
3 + Increase value at pointer by 1
5 - Decrease value at pointer by 1
7 . Output ASCII character stored in value at pointer
9 none Output value stored in value at pointer
10 , Input ASCII character and store in value at pointer
11 none Input value typed in (return to enter, any letters sets to 0)
13 [ If byte at pointer = 0, then skip to next 14
14 ] If byte at pointer != 0, then skip to previous 13
15 none If byte at pointer = 0, then skip to next 17
17 none No function, except for use with 15
19 [-] or [+] Set value at pointer to 0
Gödelang 2.0 value BF alternative Instruction
0 end of file, ], or none Terminate program
1 > Move pointer 1 value to the right
2 < Move pointer 1 value to the left
3 + Increase value at pointer by 1
5 - Decrease value at pointer by 1
7 . Output ASCII / UTF-8 / UTF-16 character stored in value at pointer
9 none Output value stored in value at pointer
10 , Input ASCII / UTF-8 / UTF-16 character and store in value at pointer
11 none Input value typed in (return to enter, any letters sets to 0)
13 [-] or [+] Set cell to zero

Notes for v2: If the sign is positive, it's a if loop. If the sign is negative, it's a while loop. In v2, you cannot have while ends in if loops. I don't think that there is a way to interpret one instruction as another, but if there is a valid prime factorisation sequence that, at the top level, only contains integers, then v2 is henceforth a null language. You are allowed to use division or scientific notation to denote fractions

Gödelang 2.1 value BF alternative Instruction
0 end of file, ], or none Escape routine
1 none Continue the current highest loop the pointer is in
2 none Escape the current highest loop the pointer is in
3 none Halt the program
5 > Move pointer 1 value to the right
7 < Move pointer 1 value to the left
9 + Increase value at pointer by 1
10 - Decrease value at pointer by 1
11 . Output ASCII character stored in value at pointer
13 none Output value stored in value at pointer
14 , Input ASCII character and store in value at pointer
15 none Input value typed in (return to enter, any letters sets to 0)
17 [-] or [+] Set cell to zero

Examples

Cat program

An infinite cat program, equivalent to the brainfuck code ,.[,.] and conforming to the Gödelang version 1.1, can be encoded in the Gödel number

59250896327476337572570276385712371250000000000

In version 2, the program seems to be too close to 0 to be calculated. It is equivalent to

24 * 5^(-452 093 906 250)

Truth-machine

Harnessing the possibility to input and output integer values, the Gödelang version 1.1 instructions 11, 13, 9, 14, 9 are realized in this program:

10198658019570622936267207428000000000

In V2.1, you can make a False-machine with a value of about

52242776064/91680193377742358281070619602424158297818248567928361864131947526829192000035599620532010929835608979716784905390898709850558860481539919780776928229913685688
03283014978470125763561778940838858692128405668952543539892313211190344460886101646932426937075972696553271568962217878989587508226999875121453374415944169391948913140599
09426952201901904330079411200728098722863022262680285975894608789952981796117484748278578623385462929404534885046466338856763222869002276326723319395208521106273968169586
53179814767415387050825248361798679644778727318615286061980708813122069336719068701132525168412816484905038302307596480864333712447647005368176341687106051147829847972312
53742066211058361269145265089710702933964972906851591165362088521667614549494160013388024390734286397178198352906713195820972874105731396263086143772849267564651730055048
91296450084155262732318570354332495907810349961784756247810190861860135388208434420218084616494737430687217850255986883688909054869840445918859530780076715268942943755490
17894147650918494366160398983409226667713751162050492348640971466409091685183976560224523118944946788487478971069395545893784168023744389354909168514621676230616283872776
56063213544380042639686333600049263496818512111789849264454679590449427361302448016172209271836024317432586241480867757765246581443088875764764533459509154338436378439132
70656969863608637879077406363665591985275028013963180844454959997850168537011873018869286835228752167775963200238317662570378354814595130781476359085171176410575691108586
09231343757723632425839459876282470568754952557284312484823404379386967354765972431533106202212234785447986130347110705723633642330327529688235331943776300498046626513815
58558458300977025882331029159721977570140994538727112219237308058667856566755167614927384228820781721972677610868327250623982340915714717057056149973485143752830280421271
75377184477169362911023975080545935812292803918659492903008351138959200538085853818936091752871643844094116627221546329867182334257587046160212216813913381845467102478291
35311476416142868851391990873857859837322566818411816459265816168812315418035892592978755745348802632219126824658158911235546204512718421808431224822564187034917359878434
74761186533702832483845609838065725871099659671631118310215676337339335377954681654453556878828823094190193366062150183316890268818524041125317701863385417581274761358641
77886520692840790828560817533444123638351095978358881773607947772623738823064441720270067463502653846788572870834510561850381997151803146139035575366899170870062533185775
16567238057098219717714991135046717331825288459441939944384231427053615246603673149366684810101007389047286086002908676847808354793129174907311083141133222721554561639943
57848022663264570609736578714993470475006427153142215461410632374655515049613952678416835004360836602519187260409683543149403795969040234007096776165220179435875980085110
36259695765600838398205496626836164882955248481372892868637371536739772835143607483493752077430291210857161696626867510772339478323557831498634227456162689456991865648224
24903115948646891985377501576593376502354877590192662661840307202026252261074427053408663201991100812380610664923532394632207108336486162569570693629922981326908730445999
32753223257530737409540592467060834138873579164303757894270605090613169903114962302518795387736612591216908604790729593221436108890176319676906138448270585466625551975101
93880853875707757214876228363375586713754557473252880608724764090364582848978449024048316478118837262840346980804986873272152583321920702870210196324090438848949622408407
97450382864901786141214891572302942578571798868500442134999278464999945071061816031906179910755076331691177706336024618857657307859017747658288247682522749793321983243981
01054217356934123593678446558909465326013350941867671330442896809213074203154328508186235836614160337126892819270060878438339226885561026789348913159767664478644911498520
99140739293172031456652290810019927543805124398991167546216688580415747979335542074116307996519563367590517253427697178158965412947663684914596438624216827289702641881470
88504045842505040432893986281661600965712005376454067011773095272226360177630227608605843700226095091075866971742957003559945851161052952879280464062922943889538007575394
70383103341686099639489753976484219244824968377404783774686330489188113837087032561464649480177073432845665226160951819451346251333350164490568479531253696065957293985656
19141102551279058463633364618153680385171921896203289302341097032610107565664766216544454541593579248718087735359135296100165801280156420958406515964633859000095854655141
28711140946038492845248060758580647789460774746415713297726232671793640395184227354928743703932666124066409553678054779534508922257352056499538155898066116183422141637441
03410150038845873344216273716027615691487289927082175072528106736881165096748236666736068363409598986376298680508433615460764541904359907669288617846293088471138138951189
91254523883914561657205497078437369647626439906461145213413716951243722191364558152708577806518813240171012837165827167209252945072109078107566271774078331719331086933724
42282567151715818224577640616293379306024557209255515419880778191685053123679685047892846175114486581798409697980413448264875992800741158409065451556033938953275452947783
46868983622208467366910182575889238842680632564441780327133178222902458889088495003831432519503710686294236774273668556073991944401647193529306213334707733312600151660135
34031649548460744137111809807701749556437290020141570980758402273024190234772895973829284862296353060325879339760200260589505069371848621576318326635778295755716559179191
52086417027857437691966859201290359340321411815318574187982881953551042152882018105284657460973818388083600439131259918212890625

Interpreter

  • Common Lisp implementation of the Gödelang programming language. This includes an interpreter and converters betwixt brainfuck and Gödelang.