Zig ist eine seit 2016 von Andrew Kelley entwickelte und seit 2020 von der Zig Software Foundation übernommene Multiparadigmen-Systemprogrammiersprache. Der Compiler kann C/C++-Bibliotheken direkt importieren und Header-Dateien für diese Sprachen bei der Kompilierung generieren. Die direkt ausführbaren Binärdateien werden in der Ursprungsimplementation durch ein LLVM-Backend erzeugt.

Die Sprache kommt ohne Präprozessor aus und zeigt durch das Attribut comptime (für engl. compile-time, „(zur) Kompilierzeit“) auf, wie durch Auswertung von Ausdrücken zur Kompilierzeit generische Typen einfacher geschrieben werden können, und dabei laufzeitoptimierter Code entsteht. Bei der Fehlerbehandlung und Parallelausführung lehnt es sich an Go an. Im Gegensatz zu anderen Erweiterungen von C können neue und alte Module frei gemischt werden und erlauben so eine graduelle Umstellung. Die Laufzeitbibliothek wurde nicht erweitert – es genügt eine libc-Implementierung. Auf Betriebssystemen mit stabilen Syscall-Interfaces (wie z. B. Linux) kann Zig auch völlig ohne libc laufen.

Im November 2025 migrierte Zig auf die Entwicklungsplattform Codeberg.t3n.de - Zig verlässt GitHub – wegen Chaos bei Actions und Microsofts KI-Politik

Beispiele

Hello World const std = @import("std");

pub fn main(init: std.process.Init) !void { try std.Io.File.stdout().writeStreamingAll(init.io, "Hello world!\n") }

Generische Verlinkte Listen pub fn main() void { var node = LinkedList(i32).Node { .prev = null, .next = null, .data = 1234,

var list = LinkedList(i32) { .first = &node, .last = &node, .len = 1,

fn LinkedList(comptime T: type) type { return struct { pub const Node = struct { prev: ?*Node, next: ?*Node, data: T,

first: ?*Node, last: ?*Node, len: usize,

Weblinks ziglang.org – Offizielle Website Zig auf Codeberg (englisch) (englisch)

Einzelnachweise

Kategorie:Imperative Programmiersprache Kategorie:Objektorientierte Programmiersprache