Rawr Programming Language
Rawr is a general-purpose programming language currently in development. It aims to be a simple procedural language like C but with more modern features such as slice, module, tagged union and option type.
It is designed with the following goals:
- Joy of programming: helpful error messages, fast iteration speed, painless to build and share code.
- Simplicity: small and focused language you can learn in a day, easy to make tools for.
- Performance: compiled language with manual memory management and great support for allocators.
The Raw compiler is written from scratch in simple C++ and doesn't use any external dependencies. It has its own backend, assembler, linker and directly outputs finished executables. Not having to rely on huge libraries like LLVM keeps the codebase approachable and easy to build.
Rawr runs on Windows
, macOS
and GNU/Linux
but currently only have a Windows x64
backend.
I am still implementing new features in the language and there are a lot more ideas I want to experiment with. You can read about some of them in the todo page.
While the language is still early and unfinished, Rawr can already be used to create sophisticated applications like a video game or a drawing software.
Example
factorial fn(nb: i32) -> i32 {
if nb == 1 {
return 1
} else {
return nb * factorial(nb - 1)
}
}