{"id":15640533,"url":"https://github.com/keyz/p423-compiler","last_synced_at":"2026-01-08T11:34:39.301Z","repository":{"id":28403355,"uuid":"31917721","full_name":"keyz/p423-compiler","owner":"keyz","description":"A Scheme to x86-64 compiler in Scheme","archived":false,"fork":false,"pushed_at":"2015-05-04T03:36:37.000Z","size":496,"stargazers_count":78,"open_issues_count":0,"forks_count":47,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-24T02:52:54.922Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Scheme","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/keyz.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}},"created_at":"2015-03-09T19:18:42.000Z","updated_at":"2024-06-05T14:57:59.000Z","dependencies_parsed_at":"2022-08-07T13:15:48.814Z","dependency_job_id":null,"html_url":"https://github.com/keyz/p423-compiler","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keyz%2Fp423-compiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keyz%2Fp423-compiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keyz%2Fp423-compiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keyz%2Fp423-compiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keyz","download_url":"https://codeload.github.com/keyz/p423-compiler/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246249226,"owners_count":20747167,"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":[],"created_at":"2024-10-03T11:37:02.145Z","updated_at":"2026-01-08T11:34:39.250Z","avatar_url":"https://github.com/keyz.png","language":"Scheme","funding_links":[],"categories":[],"sub_categories":[],"readme":"# p423-compiler\n\nArchive repo of a Scheme to x86-64 compiler in Scheme.\n\nSupports:\n- closures\n- first-class procedures\n- side effects with `set!`\n- closure conversion, tail-call elimination, branch predication, constant folding, dead-code elimination, and... several other optimizations\n\nThe supported BNF is listed as below.\n```\nProgram   ::= Expr\nExpr      ::= Constant\n            | Var\n            | (quote Datum)\n            | (if Expr Expr)\n            | (if Expr Expr Expr)\n            | (and Expr *)\n            | (or Expr *)\n            | (begin Expr * Expr)\n            | (lambda (Var *) Expr +)\n            | (let ([Var Expr] *) Expr +)\n            | (letrec ([Var Expr] *) Expr +)\n            | (set! Var Expr)\n            | (prim Expr *)\n            | (Expr Expr *)\nDatum     ::= Constant | (Datum *) | #(Datum *)\nConstant  ::= fixnum | () | #t | #f\nVar       ::= an arbitrary symbol\n```\n\nFor more information, please refer to the [course page](http://homes.soic.indiana.edu/classes/spring2015/csci/p423-rrnewton/) of CSCI-P 423 at Indiana University. Unless otherwise specified, I only own the files under [`Compiler`](https://github.com/keyanzhang/p423-compiler/tree/master/Compiler).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeyz%2Fp423-compiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeyz%2Fp423-compiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeyz%2Fp423-compiler/lists"}