Zig
Basisdaten
Paradigmen: multiparadigmatisch (generisch, funktional, imperativ, strukturiert, parallel)
Erscheinungsjahr: 2016
Entwickler: Zig Software Foundation[1], Andrew Kelley
Aktuelle Version 0.16[2] (14. April 2026)
Typisierung: Stark, statisch
Wichtige Implementierungen: ziglang
Beeinflusst von: C, C++, Go, Rust, JavaScript
Betriebssystem: Plattformunabhängig
Lizenz: MIT-Lizenz
ziglang.org

Zig ist eine seit 2016 von Andrew Kelley entwickelte und seit 2020 von der Zig Software Foundation[3] ü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.[4]

Beispiele

Bearbeiten

Hello World

Bearbeiten
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

Bearbeiten
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,
    };
}
Bearbeiten

Einzelnachweise

Bearbeiten
  1. ZSF ⚡ Zig Programming Language. Abgerufen am 7. März 2024.
  2. 0.16.0 Released. 14. April 2026 (abgerufen am 14. April 2026).
  3. ZSF ⚡ Zig Programming Language. Abgerufen am 7. März 2024.
  4. t3n.de - Zig verlässt GitHub – wegen Chaos bei Actions und Microsofts KI-Politik

📚 Artikel Terkait di Wikipedia

Python (Programmiersprache)

Plattformen ohne Änderung laufen. Die Module der Standardbibliothek können mit in C oder Python selbst geschriebenen Modulen ergänzt werden. Die Standardbibliothek

C (Programmiersprache)

C++, aber nicht mehr in C#) Aufgabe des Programmierers. Module, die Funktionen aus anderen Modulen benutzen, inkludieren deren Header-Dateien und geben dem

Extreme Programming

Extreme Programming (XP, auch Extremprogrammierung) ist eine Methode, die das Lösen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung

ESP32

heise online, abgerufen am 22. Juni 2018.  ESP-IDF Programming Guide - ESP32 - — ESP-IDF Programming Guide v5.5.1 documentation. Abgerufen am 18. September

TigerJython

und entwickelte Spracherweiterungen sowie andererseits didaktische Python-Module. Neben der Desktop-Version gibt es browserbasierte Varianten, die verschiedene

Verzeichnisstruktur

der beiden Bedeutungen des Begriffs gemeint ist.“  Ray Duncan: Power Programming – Getting Acquainted with The Latest Version of OS/2: 1.2 (Part 2). In:

TypeScript

(ehemals interne Module) verwenden sofort aufgerufene Funktionsausdrücke von JavaScript, um Code zu kapseln, während Module (ehemals externe Module)

Programmierparadigma

und getestet werden können. Die entstehenden Unterprogramme werden als Module bezeichnet. Am Ende können die Einzelteile dann logisch miteinander verknüpft