Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ujjwal-kr/ram
A stack based programming language written in rust
https://github.com/ujjwal-kr/ram
interpreter programming-language rust
Last synced: about 1 month ago
JSON representation
A stack based programming language written in rust
- Host: GitHub
- URL: https://github.com/ujjwal-kr/ram
- Owner: ujjwal-kr
- License: gpl-3.0
- Created: 2022-01-13T10:47:36.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2023-12-12T10:15:16.000Z (about 1 year ago)
- Last Synced: 2023-12-12T11:29:12.514Z (about 1 year ago)
- Topics: interpreter, programming-language, rust
- Language: Rust
- Homepage:
- Size: 3.48 MB
- Stars: 26
- Watchers: 2
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# The Ram programming language
A stack-based programming language developed to experiment with my language development skills. Runs on an emulated virtual machine, using custom memory, allocation, and garbage collection methods.## How to run
1. Download the [release binary](https://github.com/ujjwal-kr/ram/releases/latest) [Only for windows and linux].
2. Make it executable using `chmod +x ./ram`
3. Make a .ram file with the following contents in the same directory as the binary:```as
main:
ram lx
ram 1
add
ram lx prev
print var lx
ram lx
ram 500
cmp
je halt:
jmp main:halt:
halt
```4. run `./ram ./example.ram` and press enter.
# Documentation
The language documentation is available in the [wiki](https://github.com/ujjwal-kr/ram/wiki/Dcoumentation-v3.1). You can read about the detailed work of the project in [my blog](https://crackhead-systems.vercel.app/tags/ram).
## How to test
Run `cargo test` to run all the tests. This is the output of the test runner:![tests](https://cdn.discordapp.com/attachments/875733830542196768/1032414620377428059/unknown.png)
# Contribution
Im not accepting any breaking changes to the specs, as the language syntax is still in development. But suggestions can be made using the issue tracker. All other types of contributions are welcome. Check the `dev` branch, PRs to the master branch won't be accepted.