Skip to content

5unekku/Suede

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors