Zig

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Zig
Парадигмаімперативне програмування, конкурентні обчислення, процедурне програмування, функційне програмування і узагальнене програмування
Дата появи2015[1]
ТворціЕндрю Келлі
РозробникЕндрю Келліd
Останній реліз0.13.0 (6 червня 2024)[2]
Система типізаціїСтатична, сильна, вивідна, структурна, узагальнена
Під впливом відC, C++, LLVM IR, Go, Rust, JavaScript
Платформаx86-64, ARM64, WebAssembly
Tier 2: ARM, IA-32, RISC-V, MIPS64, POWERPC64, SPARC64, деякі tier-2 платформи мають tier-1 підтримку автономних програм[en]
ЛіцензіяMIT
Звичайні розширення файлів.zig
Вебсайтziglang.org

Zig — імперативна, статично типізована, компільована системна[en] мова програмування загального призначення, розроблена Ендрю Келлі. За задумкою, повинна замінити мову C, будучи ще меншою і простішою для програмування, водночас пропонуючи сучасний функціонал, нові оптимізації та різноманіття механізмів безпеки, але не будучи настільки вимогливою в безпеці під час виконання, як інші мови. Має відмінності від Go, Rust та Carbon[en], які мають схожу мету, але націлені на середовище C++.

Приклади

[ред. | ред. код]

Привіт, світе!

[ред. | ред. код]
const std = @import("std");

pub fn main() !void {
    const stdout = std.io.getStdOut().writer();
    try stdout.print("Привіт, {s}!\n", .{"світе!"});
}

Узагальнений зв'язаний список

[ред. | ред. код]
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,
    };
}

Проєкти

[ред. | ред. код]

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]

Література

[ред. | ред. код]
  • Elizabeth, Jane (19 жовтня 2017). Tired of C? New programming language Zig aims to be more pragmatic and readable. jaxenter. Архів оригіналу за 1 жовтня 2020. Процитовано 22 квітня 2020.
  • Yegulalp, Serdar (29 серпня 2016). New challenger joins Rust to topple C language. InfoWorld (англ.). Процитовано 11 лютого 2020.

Посилання

[ред. | ред. код]