Suede is a strongly typed imperative programming language that serves as a successor to C++, C, and Rust, focused on zero-cost abstractions, quality-of-life improvements, and pretty, easy to read syntax. It is designed to be as safe as Rust, powerful as C++, but more simplistic akin to C.
Suede is fundamentally an imperative language, prioritizing a primarily procedural/functional approach to programming, preserving low-level control.
Suede aims to implement portions of various paradigms to allow for extremely powerful and versatile code. Such paradigms include:
- Procedural
- Object-based (separate from object-oriented)
- Functional
- Metaprogramming
- Concurrent
Core goals:
- C's capacity for low-level programming
- C++'s wide featureset
- Rust's aggressive compile-time error checking and safe memory management
- Pretty, modern syntax
See the docs folder for detailed specifications.
Requires LLVM development libraries (version 14 or later recommended):
# Ubuntu/Debian
apt install llvm-dev clang
# Arch Linux
pacman -S llvm clang
# build
make
# or manually
cd src
mkdir build
cd build
cmake ..
makeUsage:
# run test program
make test
# or manually
./src/build/suedec < src/test.sd 2> output.ll
clang output.ll -o program
./programSee src/help.md for detailed compiler internals.
This project is licensed under the Apache License v2.0 with LLVM Exceptions. See LICENSE.md for details.
Note: Suede uses LLVM as a backend, which is also licensed under the Apache License 2.0 with LLVM exceptions. Please review LLVM's license if you are distributing or modifying the compiler.