Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/johnalexco/gyb
A bytecode interpreter for the Garter & Gasm programming languages
https://github.com/johnalexco/gyb
bytecode-interpreter compiler-toolchain garter garter-language
Last synced: 15 days ago
JSON representation
A bytecode interpreter for the Garter & Gasm programming languages
- Host: GitHub
- URL: https://github.com/johnalexco/gyb
- Owner: JohnAlexCO
- License: agpl-3.0
- Created: 2023-12-24T06:08:31.000Z (12 months ago)
- Default Branch: gyb
- Last Pushed: 2024-02-15T02:07:54.000Z (10 months ago)
- Last Synced: 2024-02-15T03:21:54.053Z (10 months ago)
- Topics: bytecode-interpreter, compiler-toolchain, garter, garter-language
- Language: C
- Homepage: https://modula.dev/garter
- Size: 41 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# gyb
A bytecode interpreter for the Garter & Gasm programming languages## Purpose
gyb is intended to function as a portable bytecode interpreter.
gyb's architecture is designed to be close-enough to a real machine
that an assembly language designed to target this bytecode can be
translated to real machine-code somewhat trivially.## Implementation
gyb is based on a "ture",
a register-based turing computer
that runs just the process and has wrappers for common syscalls.
It has a very limited instruction set
and it's bytecode is intended to
resemble RISC-V and x86-64.gyb is also written in C, and will stay that way.
I plan to make *alternative versions* so that there's
more options for bootstrapping the Garter compiler-chain,
but I think having a version of gyb written in C
at every step in its life-cycle will be really important
to the accessibility of the language as a whole.## Limitations and Scope
gyb is only intended to run on 64-bit machines,
and building a version that runs on 32-bit computers
isn't really in my plans.
Additionally, the gyb interpreter can only handle
a small subset of system calls.
This program is intended to function
as part of the Garter cross-compilation stage,
and to act as a target for Gasm assembly.
Anything beyond those two goals is outside the scope of this project.