{"id":21316277,"url":"https://github.com/andreiduma/smithforth_risc-v","last_synced_at":"2026-01-03T11:15:01.869Z","repository":{"id":256793487,"uuid":"856414707","full_name":"AndreiDuma/SmithForth_RISC-V","owner":"AndreiDuma","description":"An accessible Forth written in machine code for the RISC-V architecture.","archived":false,"fork":false,"pushed_at":"2024-09-13T10:18:34.000Z","size":17,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T10:36:53.753Z","etag":null,"topics":["compiler","forth","machine-code","master-thesis","risc-v"],"latest_commit_sha":null,"homepage":"","language":"Forth","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/AndreiDuma.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}},"created_at":"2024-09-12T14:38:04.000Z","updated_at":"2025-01-16T05:47:36.000Z","dependencies_parsed_at":"2024-11-21T18:33:42.341Z","dependency_job_id":"ff39db4c-8975-4daf-bcfe-ec9836bd63fa","html_url":"https://github.com/AndreiDuma/SmithForth_RISC-V","commit_stats":null,"previous_names":["andreiduma/smithforth_risc-v"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreiDuma%2FSmithForth_RISC-V","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreiDuma%2FSmithForth_RISC-V/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreiDuma%2FSmithForth_RISC-V/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreiDuma%2FSmithForth_RISC-V/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndreiDuma","download_url":"https://codeload.github.com/AndreiDuma/SmithForth_RISC-V/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243796018,"owners_count":20349250,"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":["compiler","forth","machine-code","master-thesis","risc-v"],"created_at":"2024-11-21T18:32:08.578Z","updated_at":"2026-01-03T11:15:01.821Z","avatar_url":"https://github.com/AndreiDuma.png","language":"Forth","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is an accessible Forth implementation written directly in machine\ncode for the RISC-V architecture.  It is an adaptation of David\nSmith's excellent x86-64 [SmithForth](https://dacvs.neocities.org/SF/).\n\nRun with `make run`.  You will need to run Linux either on RISC-V\nhardware or in a QEMU environment.\n\nThis project was developed as part of my Master's [thesis](https://github.com/AndreiDuma/SmithForth_RISC-V/releases/download/v1.0/From_x86-64_Forth_to_RISC-V_Andrei_Dorian_Duma_2024.pdf), in\nwhich I thoroughly annotate SmithForth's machine code before porting\nit to RISC-V.  The abstract of my thesis is given below:\n\n\u003e In this thesis we present the implementation of a usable Forth\n\u003e system, built using only RISC-V machine code and the Linux operating\n\u003e system as foundations. We begin by justifying the need for\n\u003e accessible programming language implementations, discussing\n\u003e desirable features in educational compilers. Having selected Forth\n\u003e as our language of choice for an educational language\n\u003e implementation, we review existing Forth systems and we motivate why\n\u003e creating a RISC-V port is a worthwhile task. Next we thoroughly\n\u003e examine SmithForth, a high-quality Forth system for the x86-64\n\u003e architecture. After understanding its principles, we port it to\n\u003e RISC-V, adapting it to our purposes. Finally, we extend this Forth\n\u003e system in Forth itself: we write a RISC- V assembler, we provide\n\u003e useful arithmetic and logic operators plus conditional and looping\n\u003e constructs. We complete our demonstration with a Forth\n\u003e implementation of FizzBuzz, showing the usability of the system.\n\nThose interested can [download](https://github.com/AndreiDuma/SmithForth_RISC-V/releases/download/v1.0/From_x86-64_Forth_to_RISC-V_Andrei_Dorian_Duma_2024.pdf) the thesis document in PDF format.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreiduma%2Fsmithforth_risc-v","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreiduma%2Fsmithforth_risc-v","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreiduma%2Fsmithforth_risc-v/lists"}