Skip to content
5unekkuPublic

About

A C derived programming language based on LLVM, focused on zero cost abstractions and quality of life improvements over the original C.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Suede

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.

Philosophy

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

Documentation

See the docs folder for detailed specifications.

Building the Compiler

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 ..
make

Usage:

# run test program
make test

# or manually
./src/build/suedec < src/test.sd 2> output.ll
clang output.ll -o program
./program

See src/help.md for detailed compiler internals.

License

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.

About

A C derived programming language based on LLVM, focused on zero cost abstractions and quality of life improvements over the original C.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages