C3 ist eine moderne Systemprogrammiersprache, die von Christoffer Lernö (zuvor C2) als Weiterentwicklung von C konzipiert wurde. Sie behält die vertraute C-Syntax weitgehend bei, ergänzt sie aber um Sicherheits- und Komfort-Features — von Treibern und Embedded-Software bis zu Spielen, Servern und Desktop-Anwendungen skaliert C3 von Low-Level bis High-Level. Das Referenz-Compiler-Programm heißt c3c und läuft auf Windows, Linux und macOS.
Erste Schritte
// c3c compile hello.c3
module hello;
import std::io;
fn void main() {
io::printn("Hello, C3!");
}
Wichtige Konzepte und Befehle
- fn deklariert Funktionen; Module werden mit module und import organisiert.
- Optionals (
Type?) behandeln Fehler undnullsicher, ohne Exceptions. - defer räumt Ressourcen am Ende eines Scopes zuverlässig auf.
- Slices und foreach ermöglichen sichere, typsichere Iteration.
- Structs ersetzen die klassischen C-Structs und können Methoden, Contracts und Default-Werte tragen.
- Der Compiler wird mit
c3c compile,c3c runundc3c build(Release-Build) aufgerufen;c3c initerzeugt ein neues Projekt.
Abgrenzung zu C und C++
Im Gegensatz zu C bietet C3 eingebaute Typ-Sicherheit, Module statt Header-Dateien, Optionals und einen @pool-Kontext, in dem Speicher automatisch freigegeben wird. Die ABI-Kompatibilität zu C bleibt erhalten, sodass bestehende C-Bibliotheken direkt eingebunden werden können — C3 ist also eine evolutionäre, keine revolutionäre Sprache.
Verwandte Grundlagen: C und C++, Zig-Befehle, Carbon-Befehle, Vale-Befehle.