Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/spaghettifunk/alaska
A mix between Go and Rust to reach the sweet spot with LLVM as backend
https://github.com/spaghettifunk/alaska
go llvm programming-language rust
Last synced: about 1 month ago
JSON representation
A mix between Go and Rust to reach the sweet spot with LLVM as backend
- Host: GitHub
- URL: https://github.com/spaghettifunk/alaska
- Owner: spaghettifunk
- License: mit
- Created: 2024-05-31T13:31:54.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-07-25T18:55:00.000Z (4 months ago)
- Last Synced: 2024-10-02T07:42:33.853Z (about 2 months ago)
- Topics: go, llvm, programming-language, rust
- Language: Rust
- Homepage:
- Size: 238 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Alaska language
This is the Alaska programming language written in C. Alaska is a combination of `Go` and `Rust`.
To run the binary, do `make run input=compiler/tests/test.ask`. If you want to add Debug information, add the `debug=1` on the end of the previous command.
## Why another language?
Because it is fun and I always wanted to make one myself. Last time I did this was at University and it was a subset of `C`.
## Goals
The goals of Alaska are:
- [ ] To be used in the data world with strong typing but easy learning curve
- [ ] Designed to use multiple threads with ease
- [ ] ...## TODO
Here is a list of features that I'd like to implement in the language:
- [ ] Implement better Parsing error message to user
- [ ] Use LLVM as backend for multiple architectures
- [ ] Implement arenas for memory pool
- [ ] Implement the `match` like Rust does
- [ ] Implement `spawn` similar to `go`
- [ ] Implement `as` for type casting
- [ ] Implement `&` and `*` for dereference and pointers
- [ ] Garbage collection
- [ ] Decorators using `@` like Python
- [ ] Implement `modules`, `packages`, `registry`, etc for both internal/external dependencies
- [ ] Implement Language Server for IDE
- [ ] Implement multiple return types for functions
- [ ] Implement `Generics` in the type system (already able to parse them)
- [ ] ....and more