Ferrous is a programming language, meant to be simple to understand and use, with inspiration from both Rust and C#. The main purpose of this project is to get a feel for rust and to satisfy my desire of writing my own compiler. I learned the basics of Rust in three days and simply looked at other projects for how to structure my code.
The basic project structure and the structure of the lexer was heavily inspired by the official rust repository.
Roadmap (not ordered):
- Build a Lexer
- Build a Parser (WIP)
- Build a Semantic Analyser
- Build an Optimizer
- Emit LLVM IL
- Emit Cranelift IL
- Emit custom assembly code similar to Java bytecode
- Build an interpreter
- Build a debugger
- Build a language server implementing the Language Server Protocol for intellisense
- Build a VS Code extension as a bridge between VS Code and the language server
- Build a web-based editor that uses the language server for intellisense. Possibly using Rocket and/or webassembly
- Build something similar to JavaKara based on the editor for teaching programming, possibly using WebGL
If you spot mistakes, bugs, bad practice, or simply want to help out, feel free to open an Issue. Pull requests are also welcome, but do try to keep them short.
I did think about streaming, but I'm quite shy and English is not my first language (although I am quite proficient.) If I get a sufficient amount of requests to stream, I might reconsider.