{"id":20178346,"url":"https://github.com/steake/tinysol","last_synced_at":"2026-02-26T06:12:37.894Z","repository":{"id":212725582,"uuid":"732172045","full_name":"Steake/TinySol","owner":"Steake","description":"TinySol is a subset of Solidity, designed to be compatible with Brainfuck, a Turing-complete language with a minimalist instruction set. This project includes a compiler that translates TinySol code into Brainfuck, allowing for the execution of smart contracts and other logic within the Brainfuck environment, suitable for execution on TinyChain.","archived":false,"fork":false,"pushed_at":"2024-11-19T23:05:23.000Z","size":249,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-13T16:48:34.428Z","etag":null,"topics":["brainfuck","brainfuck-compiler","smart-contracts","tinychain","zk-brainfuck"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Steake.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"steake, liamzebedee, badfunc","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2023-12-15T20:37:53.000Z","updated_at":"2024-11-19T23:05:27.000Z","dependencies_parsed_at":"2024-11-10T22:23:52.563Z","dependency_job_id":"39f0c31a-5ea0-4c8a-892c-5a7cd519146a","html_url":"https://github.com/Steake/TinySol","commit_stats":null,"previous_names":["steake/tinysol"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Steake%2FTinySol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Steake%2FTinySol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Steake%2FTinySol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Steake%2FTinySol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Steake","download_url":"https://codeload.github.com/Steake/TinySol/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241613143,"owners_count":19990988,"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":["brainfuck","brainfuck-compiler","smart-contracts","tinychain","zk-brainfuck"],"created_at":"2024-11-14T02:20:24.588Z","updated_at":"2025-10-30T05:15:12.509Z","avatar_url":"https://github.com/Steake.png","language":"Python","funding_links":["https://github.com/sponsors/steake, liamzebedee, badfunc"],"categories":[],"sub_categories":[],"readme":"# TinySol to Brainfuck Translator\n\u003cp align=\"center\"\u003e\u003cimg width='75%' style='margin:auto;' src='./TinySol.jpg'\u003e\u003c/img\u003e\u003c/p\u003e\n\n---\n\n## Overview\n\nTinySol is a sophisticated source-to-source compiler that translates a subset of a high-level programming language (TinySol) to Brainfuck, a minimalist Turing-complete programming language. This project demonstrates advanced compiler design principles, including abstract syntax tree (AST) manipulation, memory management, and code generation.\n\n## Features\n\n- Modular translation architecture\n- Support for complex computational scenarios\n- Turing-complete translation\n- Extensive test coverage\n- Flexible and extensible design\n\n## Architecture\n\n### Translation Modules\n\nThe translation process is broken down into specialized modules:\n\n1. **Memory Management** (`memory_manager.py`)\n   - Tracks memory allocation\n   - Manages memory cell tracking\n   - Supports complex memory operations\n\n2. **Base Translator** (`base_translator.py`)\n   - Provides core translation utilities\n   - Implements fundamental translation methods\n\n3. **Arithmetic Translator** (`arithmetic_translator.py`)\n   - Handles arithmetic operations\n   - Translates multiplication, addition, and modulo operations\n   - Implements complex Brainfuck arithmetic algorithms\n\n4. **Condition Translator** (`condition_translator.py`)\n   - Manages conditional logic translation\n   - Supports various comparison and logical operations\n\n5. **Expression Translator** (`expression_translator.py`)\n   - Translates complex expressions\n   - Handles binary and unary expressions\n   - Manages memory cell allocation for expressions\n\n6. **Statement Translator** (`statement_translator.py`)\n   - Translates programming constructs\n   - Supports variable declarations\n   - Handles loops and conditional statements\n\n7. **Node Translators** (`node_translators.py`)\n   - Orchestrates the overall translation process\n   - Coordinates between different translation modules\n\n## Supported Constructs\n\n- Variable declarations\n- Arithmetic operations (+, -, *, /)\n- Comparison operations (==, \u003c=, \u003c, \u003e, \u003e=)\n- Logical operations (\u0026\u0026, ||)\n- For loops\n- Conditional statements (if)\n\n## Installation\n\n```bash\ngit clone https://github.com/steake/TinySol.git\ncd TinySol\npip install -r requirements.txt\n```\n\n## Running Tests\n\n```bash\npython run_tests.py\n```\n\n## Example\n\n```python\n# TinySol code\ntinysol_code = \"\"\"\nint n = 5;\nint factorial = 1;\n\nfor (int i = 1; i \u003c= n; i++) {\n    factorial = factorial * i;\n}\n\"\"\"\n\n# Translate to Brainfuck\nbrainfuck_code = translate_to_brainfuck(tinysol_code)\n```\n\n## Limitations\n\n- Subset of language features supported\n- Complex computational scenarios may require optimization\n- Performance overhead due to translation complexity\n\n## Future Improvements\n\n- Enhanced arithmetic algorithms\n- More comprehensive language support\n- Performance optimizations\n- Additional test cases\n\n## Contributing\n\nContributions are welcome! Please submit pull requests or open issues on GitHub.\n\n\n## Author\n\nGitHub: @steake\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteake%2Ftinysol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsteake%2Ftinysol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteake%2Ftinysol/lists"}