{"id":20824872,"url":"https://github.com/hornc/godelfish","last_synced_at":"2026-04-01T16:59:33.434Z","repository":{"id":148349339,"uuid":"280315710","full_name":"hornc/godelfish","owner":"hornc","description":"Gödel numbering toy project","archived":false,"fork":false,"pushed_at":"2021-09-08T04:33:09.000Z","size":235,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-27T23:42:15.119Z","etag":null,"topics":["deadfish","esolang","godel-numbering"],"latest_commit_sha":null,"homepage":"https://esolangs.org/wiki/Gödelfish","language":"Brainfuck","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hornc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-17T03:19:50.000Z","updated_at":"2025-11-15T09:52:52.000Z","dependencies_parsed_at":"2023-05-19T20:30:29.973Z","dependency_job_id":null,"html_url":"https://github.com/hornc/godelfish","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hornc/godelfish","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hornc%2Fgodelfish","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hornc%2Fgodelfish/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hornc%2Fgodelfish/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hornc%2Fgodelfish/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hornc","download_url":"https://codeload.github.com/hornc/godelfish/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hornc%2Fgodelfish/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290538,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deadfish","esolang","godel-numbering"],"created_at":"2024-11-17T22:24:06.759Z","updated_at":"2026-04-01T16:59:32.693Z","avatar_url":"https://github.com/hornc.png","language":"Brainfuck","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gödelfish\n\nGödelfish is a Gödel numbering for the (joke) esoteric programming language [Deadfish](https://esolangs.org/wiki/Deadfish).\n\nIt has a [page on the esolangs wiki](https://esolangs.org/wiki/G%C3%B6delfish).\n\nThis repo contains the [specification](docs/Gödelfish-article.pdf) and some simple scripts to work with (generate, convert, and evaluate) code and Gödel numbers.\n\nThere are two kinds of Gödelfish numbers (𝜑̈):\n\n* Natural Gödelfish: Non-negative integers (ℕ), representing all possible Deadfish programs.\n* Unnatural Gödelfish: Real numbers from (ℝ − ℕ), representing all possible Brainf\\*\\*\\* programs.\n\nBoth kinds are converted numerically into [Brainfoctal](https://esolangs.org/wiki/Brainfoctal) (a Gödel numbering of Brainf\\*\\*\\*), and then can be executed as bf to produce the expected output.\n\n## Why?\n\n* Experiment converting between two programming languages directly from Gödel numberings using equations / mathematical functions.\n* Experiment mapping a Gödel numbering of a program to its output solely by means of equations / mathematical functions. (Natural Gödelfish does this to evalute the admittedly simple Deadfish language).\n\n## Scripts\n\n* **/scripts**\n  * [dfᗒgf.py](scripts/dfᗒgf.py): Converts Deadfish code into Gödelfish integer\n  * [gfᗒbf8.py](scripts/gfᗒbf8.py): Converts a Gödelfish integer into [Brainfoctal](https://esolangs.org/wiki/Brainfoctal)\n  * [gfᗒO.py](scripts/gfᗒO.py): Converts a Natural Gödelfish value into its resulting output encoding (i.e. evaluates a program directly from its Gödel number)\n* [gf.py](gf.py): Wraps all of the above into one 'helpful' utility.\n\n## Usage and examples\n\nClone this repo from Github and use the scripts directly.\n\n\n### Hello World! (Unnatural conversion)\n    $ ./gf.py -b -0.02267050412500270959407579713247251696870738403389181782725188269749688319088642196836222187626319203264982082686924411902690\n    ++++++++[\u003e++++[\u003e++\u003e+++\u003e+++\u003e+\u003c\u003c\u003c\u003c-]\u003e+\u003e+\u003e-\u003e\u003e+[\u003c]\u003c-]\u003e\u003e.\u003e---.+++++++..+++.\u003e\u003e.\u003c-.\u003c.+++.------.--------.\u003e\u003e+.\u003e++.\n\nAssuming you have a bf interpreter `bff4` on your `$PATH` you can pipe the output to see it evaluate:\n\n    $ ./gf.py -b -0.02267050412500270959407579713247251696870738403389181782725188269749688319088642196836222187626319203264982082686924411902690 | bff4\n    Hello World!\n\n### Deadfish overflow test (Natural conversion)\nThe `0d` prefix for the number is a custom base-4 notation:\n\n    $ ./gf.py -b 0d011221203\n    ++-[\u003e+\u003e+\u003c\u003c-]\u003e\u003e[\u003c\u003c+\u003e\u003e-]\u003e-\u003c\u003c[-\u003e\u003e-\u003c\u003c]+\u003e\u003e[\u003c\u003c-\u003e\u003e[-]]\u003c\u003c[[-]\u003c[-]\u003e]\u003c[\u003e+\u003e+\u003c\u003c-]\u003e\u003e[\u003c\u003c+\u003e\u003e-]\u003e+\u003e++\u003e+[-\u003e+++[-\u003c++++\u003e]\u003c\u003c]\u003c[-\u003e\u003e-\u003c\u003c]+\u003e\u003e[\u003c\u003c-\u003e\u003e[-]]\u003c\u003c[[-]\u003c[-]\u003e]\u003c++-[\u003e+\u003e+\u003c\u003c-]\u003e\u003e[\u003c\u003c+\u003e\u003e-]\u003e-\u003c\u003c[-\u003e\u003e-\u003c\u003c]+\u003e\u003e[\u003c\u003c-\u003e\u003e[-]]\u003c\u003c[[-]\u003c[-]\u003e]\u003c[\u003e+\u003e+\u003c\u003c-]\u003e\u003e[\u003c\u003c+\u003e\u003e-]\u003e+\u003e++\u003e+[-\u003e+++[-\u003c++++\u003e]\u003c\u003c]\u003c[-\u003e\u003e-\u003c\u003c]+\u003e\u003e[\u003c\u003c-\u003e\u003e[-]]\u003c\u003c[[-]\u003c[-]\u003e]\u003c[\u003e\u003e\u003e+\u003c+\u003c\u003c-]\u003e\u003e[\u003e[\u003c\u003c\u003c+\u003e+\u003e\u003e-]\u003c\u003c[\u003e\u003e+\u003c\u003c-]\u003e-]\u003e[-]\u003c\u003c\u003c[\u003e+\u003e+\u003c\u003c-]\u003e\u003e[\u003c\u003c+\u003e\u003e-]\u003e-\u003c\u003c[-\u003e\u003e-\u003c\u003c]+\u003e\u003e[\u003c\u003c-\u003e\u003e[-]]\u003c\u003c[[-]\u003c[-]\u003e]\u003c[\u003e+\u003e+\u003c\u003c-]\u003e\u003e[\u003c\u003c+\u003e\u003e-]\u003e+\u003e++\u003e+[-\u003e+++[-\u003c++++\u003e]\u003c\u003c]\u003c[-\u003e\u003e-\u003c\u003c]+\u003e\u003e[\u003c\u003c-\u003e\u003e[-]]\u003c\u003c[[-]\u003c[-]\u003e]\u003c[\u003e\u003e\u003e+\u003c+\u003c\u003c-]\u003e\u003e[\u003e[\u003c\u003c\u003c+\u003e+\u003e\u003e-]\u003c\u003c[\u003e\u003e+\u003c\u003c-]\u003e-]\u003e[-]\u003c\u003c\u003c[\u003e+\u003e+\u003c\u003c-]\u003e\u003e[\u003c\u003c+\u003e\u003e-]\u003e-\u003c\u003c[-\u003e\u003e-\u003c\u003c]+\u003e\u003e[\u003c\u003c-\u003e\u003e[-]]\u003c\u003c[[-]\u003c[-]\u003e]\u003c[\u003e+\u003e+\u003c\u003c-]\u003e\u003e[\u003c\u003c+\u003e\u003e-]\u003e+\u003e++\u003e+[-\u003e+++[-\u003c++++\u003e]\u003c\u003c]\u003c[-\u003e\u003e-\u003c\u003c]+\u003e\u003e[\u003c\u003c-\u003e\u003e[-]]\u003c\u003c[[-]\u003c[-]\u003e]\u003c++-[\u003e+\u003e+\u003c\u003c-]\u003e\u003e[\u003c\u003c+\u003e\u003e-]\u003e-\u003c\u003c[-\u003e\u003e-\u003c\u003c]+\u003e\u003e[\u003c\u003c-\u003e\u003e[-]]\u003c\u003c[[-]\u003c[-]\u003e]\u003c[\u003e+\u003e+\u003c\u003c-]\u003e\u003e[\u003c\u003c+\u003e\u003e-]\u003e+\u003e++\u003e+[-\u003e+++[-\u003c++++\u003e]\u003c\u003c]\u003c[-\u003e\u003e-\u003c\u003c]+\u003e\u003e[\u003c\u003c-\u003e\u003e[-]]\u003c\u003c[[-]\u003c[-]\u003e]\u003c[\u003e\u003e\u003e+\u003c+\u003c\u003c-]\u003e\u003e[\u003e[\u003c\u003c\u003c+\u003e+\u003e\u003e-]\u003c\u003c[\u003e\u003e+\u003c\u003c-]\u003e-]\u003e[-]\u003c\u003c\u003c[\u003e+\u003e+\u003c\u003c-]\u003e\u003e[\u003c\u003c+\u003e\u003e-]\u003e-\u003c\u003c[-\u003e\u003e-\u003c\u003c]+\u003e\u003e[\u003c\u003c-\u003e\u003e[-]]\u003c\u003c[[-]\u003c[-]\u003e]\u003c[\u003e+\u003e+\u003c\u003c-]\u003e\u003e[\u003c\u003c+\u003e\u003e-]\u003e+\u003e++\u003e+[-\u003e+++[-\u003c++++\u003e]\u003c\u003c]\u003c[-\u003e\u003e-\u003c\u003c]+\u003e\u003e[\u003c\u003c-\u003e\u003e[-]]\u003c\u003c[[-]\u003c[-]\u003e]\u003c-[\u003e+\u003e+\u003c\u003c-]\u003e\u003e[\u003c\u003c+\u003e\u003e-]\u003e-\u003c\u003c[-\u003e\u003e-\u003c\u003c]+\u003e\u003e[\u003c\u003c-\u003e\u003e[-]]\u003c\u003c[[-]\u003c[-]\u003e]\u003c[\u003e+\u003e+\u003c\u003c-]\u003e\u003e[\u003c\u003c+\u003e\u003e-]\u003e+\u003e++\u003e+[-\u003e+++[-\u003c++++\u003e]\u003c\u003c]\u003c[-\u003e\u003e-\u003c\u003c]+\u003e\u003e[\u003c\u003c-\u003e\u003e[-]]\u003c\u003c[[-]\u003c[-]\u003e]\u003c[\u003e\u003e+\u003e+\u003c\u003c\u003c-]\u003e\u003e\u003e[\u003c\u003c\u003c+\u003e\u003e\u003e-]\u003c\u003c+\u003e[\u003c-\u003e[\u003e++++++++++\u003c[-\u003e-[\u003e+\u003e\u003e]\u003e[+[-\u003c+\u003e]\u003e+\u003e\u003e]\u003c\u003c\u003c\u003c\u003c]\u003e[-]++++++++[\u003c++++++\u003e-]\u003e[\u003c\u003c+\u003e\u003e-]\u003e[\u003c\u003c+\u003e\u003e-]\u003c\u003c]\u003e]\u003c[-\u003e\u003e++++++++[\u003c++++++\u003e-]]\u003c[.[-]\u003c]\u003c\u003e++++++++++.++++++++++++[-]\u003c\n\nThe input number `0d011221203` is equivalent to decimal 23139, or hex `0x5a63`, and all of these formats are recognised as input by the interpreter. Conceptually it is important that the program input is a single numeric value, *not* a string of symbols from one specific alphabet or in one specific base.\n\nAssuming you have a bf interpreter `bff4` on your `$PATH` you can pipe the output to see it evaluate the correct Deadfish accumulator output value:\n\n    $ ./gf.py -b 0d011221203 | bff4\n    288\n\n### Output encoding evalutation\n\n\t$ ./scripts/gfᗒO.py -h\n\tusage: gfᗒO.py [-h] value [radix] [digits]\n\n\tConvert a Natural Gödelfish value into its resulting output encoding.\n\n\tpositional arguments:\n\t  value       Gödelfish value, 𝜑̈ ∈ ℕ\n\t  radix       radix of output values\n\t  digits      number of digits per output value in base radix\n\n### Deadfish overflow test (Natural evaluation)\n\nBase-10 output encoding:\n\n    $ ./scripts/gfᗒO.py 0d011221203 10\n    288\n\nHexadecimal ouput:\n\n    $ ./scripts/gfᗒO.py 0d011221203 16\n    0x120\n\n### Multi-value output (Natural evaluation):\n\nBase-10, 3 digits per output value:\n\n    $ ./scripts/gfᗒO.py 0x59565555d55555555555555d555f570000000000000000000000000000000000000003000000000020c000357000c0003 10 3\n    72101108108111032119111114108100\n\n\nBase-10, 5 digits per output value:\n\n    $ ./scripts/gfᗒO.py 0x59565555d55555555555555d555f570000000000000000000000000000000000000003000000000020c000357000c0003 10 5\n    7200101001080010800111000320011900111001140010800100\n\nBase-16, 16 digits per output value:\n\n    $ ./scripts/gfᗒO.py 0x59565555d55555555555555d555f570000000000000000000000000000000000000003000000000020c000357000c0003 16 16\n    0x480000000000000065000000000000006c000000000000006c000000000000006f00000000000000200000000000000077000000000000006f0000000000000072000000000000006c0000000000000064\n\n### Interactive arithmetic Deadfish interpreter in shell\n\n    while read df;do ./scripts/gfᗒO.py $(./scripts/dfᗒgf.py $df | egrep -o '0x.*$') 10 5 | rev | sed -r 's/(.{5})/\\1 /g' | rev ;done\n\nThis reads standard Deadfish `idso` commands from STDIN, converts them to Gödelfish, and evaluates the commands arithmetically. The `sed` command groups output to 5 decimal place values.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhornc%2Fgodelfish","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhornc%2Fgodelfish","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhornc%2Fgodelfish/lists"}