1 unstable release
0.0.1 | May 8, 2022 |
---|---|
0.0.0 |
|
#16 in #elegant
35KB
881 lines
Terbium
The performant yet elegant and feature-packed programming language. Implemented with Rust.
Installation
Terbium is still a work in progress. You can contribute by simply cloning this repository, however.
Goals
We want Terbium to meet the following:
- A language that doesn't take long to learn
- A language emphasizing strong and static types
- Types are static, but type inference will exist
- A language which is fast and performant
- A language which is elegant to write and emphasizes readability
- A language (compiler/interpreter) that catches bugs before runtime
Static types?
We want to enforce a static type system in Terbium that isn't too restrictive:
- Optionally allow a variable to keep a constant type throughout its lifetime (
let
) - Default all types to the
auto
type (Type inference)- When a type cannot be inferred, use the
any
type unless explicitly disabled (@pt:strict
)
- When a type cannot be inferred, use the
- Allow a robust type system (e.g. Generics)
Terbium designs static types like this so that while beginners don't have to learn Terbium with the complexity of a type system, and gradually implement these types as they learn more about them.
Hello, world!
require std;
func main() {
std.println("Hello, world!");
}
Repository Navigation
- terbium_grammar: Tokenizes Terbium code and transforms it into an Abstract Syntax Tree (AST).
Contributing
See CONTRIBUTING.md for details.
Credits
Terbium is a project by jay3332.
Thanks to the following core contributors:
- Cryptex-github: Creating workflows + General contributions
Dependencies
~600KB
~12K SLoC