{"id":26473630,"url":"https://github.com/romac/qnt-interpreter","last_synced_at":"2026-04-21T16:33:58.190Z","repository":{"id":264651846,"uuid":"889981023","full_name":"romac/qnt-interpreter","owner":"romac","description":null,"archived":false,"fork":false,"pushed_at":"2024-11-28T16:22:46.000Z","size":72,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-26T06:43:43.311Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/romac.png","metadata":{"files":{"readme":"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}},"created_at":"2024-11-17T18:10:17.000Z","updated_at":"2025-02-21T17:36:42.000Z","dependencies_parsed_at":"2025-06-15T09:48:46.525Z","dependency_job_id":null,"html_url":"https://github.com/romac/qnt-interpreter","commit_stats":null,"previous_names":["romac/qnt-interpreter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/romac/qnt-interpreter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romac%2Fqnt-interpreter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romac%2Fqnt-interpreter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romac%2Fqnt-interpreter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romac%2Fqnt-interpreter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/romac","download_url":"https://codeload.github.com/romac/qnt-interpreter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romac%2Fqnt-interpreter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32100206,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-21T11:25:29.218Z","status":"ssl_error","status_checked_at":"2026-04-21T11:25:28.499Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":[],"created_at":"2025-03-19T22:11:34.070Z","updated_at":"2026-04-21T16:33:58.159Z","avatar_url":"https://github.com/romac.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QNT Interpreters\n\nInterpreters for a toy language using various techniques.\n\nThe abstract syntax tree can be found in [`src/ast.rs`](./src/ast.rs).\nIt is currently extremely limited, in order to ease the implementation\nof the multiple interpreters, and should eventually be extended with\nmore interesting data types and operations, eg. sets, records, etc.\n\n## Techniques implemented\n\n- [Tree-walking](./src/tree.rs)\n- [Closure](./src/closure.rs)\n- [VM](./src/vm.rs)\n- [JIT](./src/jit.rs)\n- [WASM](./src/wasm.rs)\n\n\n## Usage\n\nCompute the nth fibonacci number with a given interpreter:\n\n```\n$ cargo run --release -- \u003cn\u003e \u003ctree|closure|vm|jit|wasm\u003e\n```\n\neg.\n\n```\n$ cargo run --release -- 29 closure\n```\n\nRun the [benchmarks](./benches/fib.rs) with\n\n```\n$ cargo bench\n```\n\n## License\n\nCopyright 2024 Romain Ruetschi\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromac%2Fqnt-interpreter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fromac%2Fqnt-interpreter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromac%2Fqnt-interpreter/lists"}