Zig

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Zig
Парадигма імперативне програмування, конкурентні обчислення, процедурне програмування, функційне програмування і узагальнене програмування
Дата появи 2015[1]
Творці Ендрю Келлі
Розробник Ендрю Келліd
Останній реліз 0.12.0 (20 квітня 2024)[2]
Система типізації Статична, сильна, вивідна, структурна[en], узагальнена
Під впливом від 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.

Посилання[ред. | ред. код]