{"id":44569115,"url":"https://github.com/mqqz/dhad","last_synced_at":"2026-02-14T02:00:12.841Z","repository":{"id":329040097,"uuid":"1116571102","full_name":"mqqz/dhad","owner":"mqqz","description":"Simple Arabic Programming Language Compiler and WASM Interpreter","archived":false,"fork":false,"pushed_at":"2026-02-11T18:24:15.000Z","size":206,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-12T01:43:36.064Z","etag":null,"topics":["arabic","compiler","programming-language"],"latest_commit_sha":null,"homepage":"https://mosadhan.com/dhad/","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/mqqz.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-15T04:30:15.000Z","updated_at":"2026-02-11T18:24:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"3dc89720-dd25-4032-81a1-168c1f72b3fe","html_url":"https://github.com/mqqz/dhad","commit_stats":null,"previous_names":["mqqz/dhad"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/mqqz/dhad","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mqqz%2Fdhad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mqqz%2Fdhad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mqqz%2Fdhad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mqqz%2Fdhad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mqqz","download_url":"https://codeload.github.com/mqqz/dhad/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mqqz%2Fdhad/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29431593,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T22:20:51.549Z","status":"online","status_checked_at":"2026-02-14T02:00:07.626Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["arabic","compiler","programming-language"],"created_at":"2026-02-14T02:00:07.042Z","updated_at":"2026-02-14T02:00:12.836Z","avatar_url":"https://github.com/mqqz.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dhad ﺽ\n\n`dhad` (ﺽ) is an experimental compiler (+ WASM interpreter) for a small Arabic programming language.\nIt is still very much in its infancy: the grammar is evolving, the runtime is tiny,\nand most subsystems are rough prototypes.\n\nThe language uses a handwritten LALR(1) parser and an LLVM backend.\n\n🧪 Try it out online on the [web playground](https://mosadhan.com/dhad)\n\n\u003e I probably should've written the README and docs in Arabic, but I don't have an arabic keyboard\n\u003e nor the energy atm.\n\n## Getting Started\n\n### Downloading Prebuilt Binary\nThis is probabily the most straightforward way to get things going\n\n1. **Go to the repository [Releases](https://github.com/mqqz/dhad/releases) page**\n\n2. **Download the archive for your platform**:\n   - `dhad-linux-x86_64.tar.gz`\n   - `dhad-macos-x86_64.tar.gz`\n   - `dhad-macos-arm64.tar.gz`\n   - `dhad-windows-x86_64.zip` (On Windows, the AST interpreter is shipped, not the compiler)\n\n3. **Extract the archive**\n   \n   **Linux/macOS**:\n   ```bash\n   tar -xzf dhad-\u003cplatform\u003e.tar.gz\n   cd dhad-\u003cplatform\u003e\n   ```\n   \n   **Windows (PowerShell)**:\n   ```powershell\n   Expand-Archive .\\dhad-windows-x86_64.zip -DestinationPath .\n   cd .\\dhad-windows-x86_64\n   ```\n\n5. **Run the compiler**\n\n   e.g. run the `hello-world` example\n   \n   **Linux/macOS**:\n   ```bash\n   chmod +x dhad\n   ./dhad examples/hello-world.dh -o hello\n   ./hello\n   ```\n   \n   **Windows (PowerShell)**:\n   ```powershell\n   .\\dhad.exe examples\\hello-world.dh -o hello.exe\n   .\\hello.exe\n   ```\n\n### Building From Source\nAlternatively, if you'd rather build from source:\n\n1. **Install prerequisites**\n\n   - CMake 3.22 or newer\n   - LLVM (version \u003e= 17)\n   - Clang/Clang++ toolchain (incl. `clang-format`)\n   - Python 3.10 or newer\n\n2. **Clone and configure**\n   ```bash\n   git clone https://example.com/dhad.git\n   cd dhad\n   cmake -S . -B build\n   ```\n3. **Build the compiler**\n   ```bash\n   make\n   ```\n4. **Run the smoke tests (lexer, parser, codegen)**\n   ```bash\n   make test\n   ```\n5. **Try the hello world example**\n   ```bash\n   ./build/dhad examples/hello-world.dh -o hello\n   ./hello\n   ```\n\n## Project Notes\n\n- The standard library is injected by default (so `اطبع` works without an import). Imports are for\n  pulling in other source files: `استورد foo;` loads `foo.dh` from the same directory.\n- Programs should expose an entry point called `دالة بداية()`.\n- The parser/generator infrastructure relies on Python scripts in `tools/`.\n  Regenerate tables with `cmake --build build --target parser_tables_gen` if you\n  edit the grammar.\n- `make format` runs `clang-format` over `src/` and `tests/`.\n- `requirements.txt` has the requirements for the python scripts.\n- Checkout `examples/` for a basic feel on how things work.\n- `--emit-ir` flag can be used to output LLVM IR only (only Linux/MacOS).\n\n\n*Contributions are welcome, just be aware that the design is changing quickly and I am still figuring out the fundamentals. \nTune in via issues/PRs if you want to help shape the language.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmqqz%2Fdhad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmqqz%2Fdhad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmqqz%2Fdhad/lists"}