{"id":44722284,"url":"https://github.com/edwardcox/bpl-plus","last_synced_at":"2026-02-15T16:12:11.238Z","repository":{"id":337553110,"uuid":"1153781830","full_name":"edwardcox/bpl-plus","owner":"edwardcox","description":"BASIC-inspired language for 2026 — fast, simple, fun.","archived":false,"fork":false,"pushed_at":"2026-02-10T06:50:19.000Z","size":20,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-10T09:45:54.363Z","etag":null,"topics":["basic-programming-language"],"latest_commit_sha":null,"homepage":"https://bplplus.site","language":"Go","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/edwardcox.png","metadata":{"files":{"readme":"docs/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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-09T17:02:24.000Z","updated_at":"2026-02-10T06:50:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/edwardcox/bpl-plus","commit_stats":null,"previous_names":["edwardcox/bpl-plus"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/edwardcox/bpl-plus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edwardcox%2Fbpl-plus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edwardcox%2Fbpl-plus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edwardcox%2Fbpl-plus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edwardcox%2Fbpl-plus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edwardcox","download_url":"https://codeload.github.com/edwardcox/bpl-plus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edwardcox%2Fbpl-plus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29483777,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T15:33:17.885Z","status":"ssl_error","status_checked_at":"2026-02-15T15:32:53.698Z","response_time":118,"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":["basic-programming-language"],"created_at":"2026-02-15T16:12:06.996Z","updated_at":"2026-02-15T16:12:11.230Z","avatar_url":"https://github.com/edwardcox.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BPL+  \n```txt\n██████╗ ██████╗ ██╗         ██████╗ ██╗     ██╗   ██╗ ██████╗\n██╔══██╗██╔══██╗██║         ██╔══██╗██║     ██║   ██║██╔════╝\n██████╔╝██████╔╝██║         ██████╔╝██║     ██║   ██║╚█████╗ \n██╔══██╗██╔═══╝ ██║         ██╔═══╝ ██║     ██║   ██║ ╚═══██╗\n██████╔╝██║     ███████╗    ██║     ███████╗╚██████╔╝██████╔╝\n╚═════╝ ╚═╝     ╚══════╝    ╚═╝     ╚══════╝ ╚═════╝ ╚═════╝\n```\n**A modern, BASIC-inspired programming language for real programs.**\n\nBPL+ is an open-source, non-commercial programming language inspired by the clarity and approachability of classic BASIC — redesigned for modern development.\n\nIt is not a retro interpreter.  \nIt is a clean, structured, extensible language built from scratch.\n\n---\n\n## Current Status\n\nBPL+ is in active development.\n\n### Implemented Features\n\n- Variables\n- Numbers, strings, booleans\n- Arrays (reference semantics)\n- Maps / dictionaries (string keys)\n- Arithmetic + comparison operators\n- Boolean logic (`and`, `or`, `not`)\n- `if / else / end`\n- `while`\n- `for ... to ... [step]`\n- Functions (explicit `return`, no implicit return)\n- File I/O\n- Module system (`import`)\n- Built-in functions:\n  - `print`\n  - `str`\n  - `num`\n  - `len`\n  - `input`\n  - `push`, `pop`, `insert`, `remove`\n  - `has`, `get`, `keys`, `values`\n  - `readfile`, `writefile`, `exists`\n\n---\n\n## Installation\n\nYou need Go 1.21+ installed.\n\nClone the repository:\n\n```bash\ngit clone https://github.com/edwardcox/bpl-plus.git\ncd bpl-plus\nBuild the CLI:\n\ngo build -o bplplus ./cmd/bpl\nRun a program:\n\n./bplplus examples/hello.bpl\nYou should see output immediately.\n\nLanguage Overview\nVariables\nx = 10\nname = \"Edward\"\nflag = true\nControl Flow\nif x \u003e 5\n    print \"big\"\nelse\n    print \"small\"\nend\nwhile x \u003c 10\n    x = x + 1\nend\nfor i = 1 to 5\n    print i\nend\nFunctions\nfunction add(a, b)\n    return a + b\nend\n\nprint add(2, 3)\nExplicit return required\n\nNo implicit return\n\nArrays\na = [1, 2, 3]\npush(a, 4)\nprint a\nprint a[0]\nArrays are reference types.\n\nMaps (Dictionaries)\nm = {\"a\": 1, \"b\": 2}\n\nprint m[\"a\"]\nm[\"c\"] = 99\nprint keys(m)\nMap helpers:\n\nhas(m, \"a\")\nget(m, \"x\", 0)\nkeys(m)\nvalues(m)\nFile I/O\nwritefile(\"test.txt\", \"Hello\\n\")\nprint readfile(\"test.txt\")\nprint exists(\"test.txt\")\nModules\nImport another file:\n\nimport \"lib/math.bpl\"\nRules:\n\nRelative to the importing file\n\n.bpl extension auto-added if omitted\n\nFallback to lib/ directory\n\nCircular imports are detected and blocked\n\nDuplicate imports are ignored (cached)\n\nExample:\n\nimport \"examples/lib/math.bpl\"\n\nprint add(2, 3)\nProject Structure\ncmd/bpl/          CLI entry point\nlexer/            Tokenizer\nparser/           AST builder\nast/              Node definitions\ninterpreter/      Runtime engine\nexamples/         Example programs\ndocs/             Documentation\nPhilosophy\nBPL+ is designed to be:\n\nClear\n\nPredictable\n\nStructured\n\nExtensible\n\nSuitable for real programs\n\nThe goal is not to copy old BASIC.\nThe goal is to build what BASIC might look like if designed today.\n\nRoadmap (v0.3.x)\nMaps Step C (iteration helpers)\n\nREPL\n\nStandard library modules\n\nImport refinements\n\nBytecode / VM\n\nOptimization passes\n\nContributing\nIdeas welcome.\n\nOpen an Issue:\n\nFeature requests\n\nLanguage design suggestions\n\nDocumentation improvements\n\nThis project is early — thoughtful feedback matters.\n\nLicense\nOpen Source. Non-commercial intent.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedwardcox%2Fbpl-plus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedwardcox%2Fbpl-plus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedwardcox%2Fbpl-plus/lists"}