{"id":28515157,"url":"https://github.com/sasyxk/donato","last_synced_at":"2026-04-16T11:02:39.040Z","repository":{"id":295476582,"uuid":"952698286","full_name":"sasyxk/donato","owner":"sasyxk","description":"donato a new programming language developed for the master thesis for UT and Unipr.","archived":false,"fork":false,"pushed_at":"2025-06-11T10:28:00.000Z","size":2596,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-05T00:39:06.477Z","etag":null,"topics":["ast","cpp-programming","llvm","parser"],"latest_commit_sha":null,"homepage":"","language":"C++","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/sasyxk.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-03-21T18:10:49.000Z","updated_at":"2025-08-31T05:44:54.000Z","dependencies_parsed_at":"2025-07-05T09:30:56.949Z","dependency_job_id":null,"html_url":"https://github.com/sasyxk/donato","commit_stats":null,"previous_names":["sasyxk/donato"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sasyxk/donato","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sasyxk%2Fdonato","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sasyxk%2Fdonato/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sasyxk%2Fdonato/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sasyxk%2Fdonato/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sasyxk","download_url":"https://codeload.github.com/sasyxk/donato/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sasyxk%2Fdonato/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31882886,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T09:23:21.276Z","status":"ssl_error","status_checked_at":"2026-04-16T09:23:15.028Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["ast","cpp-programming","llvm","parser"],"created_at":"2025-06-09T03:00:34.230Z","updated_at":"2026-04-16T11:02:39.013Z","avatar_url":"https://github.com/sasyxk.png","language":"C++","readme":"# Donato Language\n\n**Donato** is a custom programming language developed as part of my master's thesis, which I completed at the University of Twente in the Netherlands and presented at the University of Parma, where I am currently enrolled.\n\nThis language has been built completely **from scratch** using C++. The core components include a parser and an Abstract Syntax Tree (AST). Each node of the AST class implements specific code generation functions that produce LLVM intermediate representation (IR), enabling the language to be **compiled** into native executable code via the LLVM infrastructure.\n\nBy leveraging LLVM, Donato benefits from a modern and powerful backend, allowing for efficient code generation and optimization. This compilation pipeline ensures that source code written in Donato can be transformed into highly optimized machine code.\n\n---\n\n## Getting Started (Linux)\n\nTo build and run the Donato compiler on a Linux system, follow these steps:\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/sasyxk/donato.git\n   cd donato\n\n2. Install dependencies\n    ```bash\n    sudo apt update\n    sudo apt install clang llvm-dev\n\n3. Create a build directory and compile the compiler:\n    ```bash\n    mkdir build\n    cd build\n    cmake ..\n    make\n\n## Using the Compiler\n\nTo compile a .donato source file:\n\n1. Place your source file (e.g., example.donato) inside the build directory or anywhere you prefer.\n\n2. Run the compiler with:\n    ```bash\n    ./dtc example.donato\n\n3. The compiler will generate a default executable named *output*.\n    ```bash\n    ./output\n\n**Note**: In future versions, you will be able to specify the output executable's name via command-line options.\n\n## About the Project\nDonato is designed as a compiled language to explore modern compiler design techniques. Writing the compiler from scratch allowed me to deeply understand parsing, AST construction, and code generation using LLVM. This project serves both as a research and educational tool for compiler technology.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsasyxk%2Fdonato","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsasyxk%2Fdonato","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsasyxk%2Fdonato/lists"}