{"id":13782876,"url":"https://github.com/cfrank/cfbf","last_synced_at":"2026-01-18T09:38:03.477Z","repository":{"id":68718411,"uuid":"98068006","full_name":"cfrank/cfbf","owner":"cfrank","description":"A Brainfuck interpreter","archived":false,"fork":false,"pushed_at":"2019-01-03T13:27:25.000Z","size":40,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"dev","last_synced_at":"2025-05-09T07:14:40.903Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cfrank.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-07-23T01:42:13.000Z","updated_at":"2019-01-03T13:27:27.000Z","dependencies_parsed_at":"2023-03-06T11:30:21.668Z","dependency_job_id":null,"html_url":"https://github.com/cfrank/cfbf","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfrank%2Fcfbf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfrank%2Fcfbf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfrank%2Fcfbf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfrank%2Fcfbf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cfrank","download_url":"https://codeload.github.com/cfrank/cfbf/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253595990,"owners_count":21933489,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-08-03T18:01:46.923Z","updated_at":"2026-01-18T09:38:03.457Z","avatar_url":"https://github.com/cfrank.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"CFBF\n\nA simple Brainfuck interpreter\n\nUsage:\n\n```\nmake\n./bin/cfbf --file=\"\u003cfile\u003e\"\n-v -- Prints the current running program version\n-l -- Prints some useless license information\n-h -- Prints the help dialog\n-f \u003cfile\u003e -- Specify the Brainfuck file to interpret *Required*\n```\n\nThis is a simple brainfuck interpreter which runs a 30,000 byte `uint8_t`\ntape. It allows tape values to over/underflow since this is a requirement\nfor most programs I have seen.\n\nFor the loops, a O(n) function calculates the `jmp_ptr` for each loop command\nit encounters and adds this information to the `cfbf_command`. Then when a\nloop is encountered in the main interpretation loop, it can be referenced\nwithout multiple `while` loop calls.\n\nThere are still many bugs which need to be hashed out, and debug support will\nhelp with that in the future. Since I'm no Brainfuck expert, figuring out if\nit's the program or the interpreters fault is a constant battle. And using `gdb`\nand `valgrind` is not the best solution. So better debugging support is obviously\nneeded.\n\nFor anyone who wants to compare interpretation speed, inside the `examples`\nfolder is `bench.bf`\n\nWhen compiled with the CFLAGS listed in the `Makefile` and run with the `time`\ncommand I get the following output:\n\n```\nZYXWVUTSRQPONMLKJIHGFEDCBA\n\nreal    0m1.845s\nuser    0m1.845s\nsys     0m0.000s\n```\n\nThere is probably room for improvment I'm sure.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfrank%2Fcfbf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcfrank%2Fcfbf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfrank%2Fcfbf/lists"}