Zig è un linguaggio di programmazione imperativo general purpose.
Ideato come alternativa moderna al C e parzialmente ispirato a Rust, Zig include diverse funzionalità a basso livello (come puntatori, packed structs, interi di dimensione arbitraria). Zig è un linguaggio compilato e fa uso di tipizzazione statica, con inferenza di tipi, tipi generici, e riflessione.
Il compilatore Zig è software libero distribuito sotto licenza MIT. È un compilatore self-hosting, essendo implementato in Zig e C++, e usa LLVM come back-end. Il compilatore Zig permette anche la generazione di codice C e C++ (Nim supporta l'uso di Zig come back-end per la generazione di codice in questi linguaggi).
Esempi Hello World // zig version 0.15.* const std = @import("std");
pub fn main() !void { var buffer: u8 = undefined; var writer = std.fs.File.stdout().writer(&buffer); // or writer(&.{}) for unbuffered const stdout = &writer.interface; try stdout.print("Hello, world!", .{}); try stdout.flush(); // noop if unbuffered }
Lista concatenata fn LinkedList(comptime T: type) type { return struct { pub const Node = struct { prev: ?*Node, next: ?*Node, data: T,
first: ?*Node, last: ?*Node, len: usize,
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,
Note
Altri progetti
Collegamenti esterni
Categoria:Linguaggi di programmazione procedurali Categoria:Linguaggi di programmazione strutturati