Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hatsusixty/loisp
Simple S-expression based programming language.
https://github.com/hatsusixty/loisp
assembly compiler lisp programming-language rust
Last synced: about 2 months ago
JSON representation
Simple S-expression based programming language.
- Host: GitHub
- URL: https://github.com/hatsusixty/loisp
- Owner: HatsuSixty
- License: mit
- Created: 2022-06-14T19:10:02.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-07-21T16:03:07.000Z (over 1 year ago)
- Last Synced: 2023-07-21T20:53:43.743Z (over 1 year ago)
- Topics: assembly, compiler, lisp, programming-language, rust
- Language: Rust
- Homepage:
- Size: 247 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Loisp
Low Level Lisp (Loisp) is an S-expression based programming language implemented in [Rust](https://rust-lang.org).
## Quick Start
To compile the generated assembly, the compiler uses the [flat assembler](https://flatassembler.net/), so you will need to have it installed:
```console
$ echo "(print (+ 34 35))" > test.loisp
$ cargo run -- run test.loisp
```## Testing
The compiler has a tester built-in to it, so you can use that to test if all the features are working properly. To use the built-in tester, there is a subcommand to use it:
```console
$ cargo run -- run-test tests # for more details, see `cargo run -- help`
```## This language is planned to be
- [x] Compiled
- [x] Native
- [x] Useful (that basically means that the language has enough features to create useful applications)
- [x] Turing Complete (see [./examples/rule110.loisp](./examples/rule110.loisp))
- [x] Interpreted
- [x] Interactive (by implementing a [REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop))
- [x] Type Checked
- Cross-Platform (maybe in the future when i get a better computer)## Documentation
To read the documentation, see [docs.md](./docs/docs.md).