{"id":24819687,"url":"https://github.com/sebbekarlsson/tac","last_synced_at":"2025-10-13T20:30:51.968Z","repository":{"id":37879015,"uuid":"302913435","full_name":"sebbekarlsson/tac","owner":"sebbekarlsson","description":"tac x86 compiler","archived":false,"fork":false,"pushed_at":"2023-08-23T00:13:37.000Z","size":159,"stargazers_count":87,"open_issues_count":3,"forks_count":14,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-06T16:28:16.939Z","etag":null,"topics":["compiler","lexer","x86"],"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/sebbekarlsson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-10T13:56:25.000Z","updated_at":"2025-03-24T02:03:48.000Z","dependencies_parsed_at":"2022-08-18T20:40:41.964Z","dependency_job_id":null,"html_url":"https://github.com/sebbekarlsson/tac","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sebbekarlsson/tac","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebbekarlsson%2Ftac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebbekarlsson%2Ftac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebbekarlsson%2Ftac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebbekarlsson%2Ftac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sebbekarlsson","download_url":"https://codeload.github.com/sebbekarlsson/tac/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebbekarlsson%2Ftac/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279016921,"owners_count":26085908,"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","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"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":["compiler","lexer","x86"],"created_at":"2025-01-30T17:59:41.040Z","updated_at":"2025-10-13T20:30:51.653Z","avatar_url":"https://github.com/sebbekarlsson.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tac\n\u003e A programming language inspired by **Typescript**, **Assembly** and **C**.\n\n## Introduction\n\u003e **Tac** is currently only being developed by me, Sebastian.  \n\u003e The reason I am creating **Tac** is because I wanted to teach my self how to\n\u003e write a compiler.  \n\u003e **Tac** is not to be taken seriously in any kind of way at this moment,\n\u003e since it is just another toy project of mine.\n\n## btw\n\u003e By the way, you can watch me work on this compiler on Youtube here:  \n\u003e [https://www.youtube.com/watch?v=PRcMPwaWj1Y\u0026list=PLvaIU2QC2uvFnVxXe-XzXJfd4dXGz5qBB](https://www.youtube.com/watch?v=PRcMPwaWj1Y\u0026list=PLvaIU2QC2uvFnVxXe-XzXJfd4dXGz5qBB)\n\n## \"Hello World\" Example\n\u003e Here is \"Hello World\" in **Tac**:\n```\nmain = (argc: int, argv: Array\u003cstring\u003e):int =\u003e {\n  print(\"Hello World\\n\");\n  return 0;\n};\n```\n\n## Installing \u0026 Running Tac Compiler\n\n### Dependencies\n#### Compiler Build Dependencies\n\u003e To build the compiler you will need:\n* gcc                  - GNU Compiler Collection ( C compiler )\n\n#### Compiler Runtime Dependencies\n\u003e The compiler currently has these dependencies:\n* as (1)               - the portable GNU assembler.\n* ld (1)               - The GNU linker\n* xxdi\n\n### Building\n\u003e To build the **Tac** compiler, simply run:\n```bash\nmake\n```\n\u003e This will produce the `./tac.out` binary which is used to compile Tac-code.\n\n### Compiling Tac-code\n\u003e To compile Tac-code, simply use the generated binary from the build-step:\n```bash\n./tac.out \u003cname-of-file\u003e.tac\n```\n\u003e This will generate a `./a.out` file which is the compiled executable of\n\u003e your source code.  \n\u003e **Note** Tac only supports building 32-bit executables at the moment.\n\n## Todo ( in no particular order )\n\u003e _Some of these are in progress and not marked as checked_\n- [X] Implement variable assignments\n- [X] Implement function definitions\n- [X] Implement function calls\n- [ ] Implement conditions\n- [X] Implement addition (arithmetic)\n- [X] Implement multiplication (arithmetic)\n- [X] Implement subtraction (arithmetic)\n- [X] Implement division (arithmetic)\n- [ ] Implement while-loops\n- [ ] Implement for-loops\n- [ ] Implement floats\n- [X] Implement integers\n- [X] Implement main method\n- [ ] Implement objects\n- [ ] Implement arrays\n- [ ] Implement enums\n- [X] Implement comments\n- [ ] Implement C-header parser\n- [ ] Implement calling functions from shared libraries (.so, .obj, .a, ...)\n- [ ] Add 64-bit support\n- [ ] Implement type guards in the compiler\n- [ ] Get rid of \"GNU Assembler\" dependency\n- [ ] Get rid of \"GNU Linker\" dependency\n- [ ] Get rid of \"xxdi\" dependency\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebbekarlsson%2Ftac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebbekarlsson%2Ftac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebbekarlsson%2Ftac/lists"}