Zig

Мова програмування загального призначення та набір інструментів для збірки коду на Zig C/C++
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,
    };
}

Проєкти

Див. також

Примітки

  1. Келлі Е. init — 2015.
    d:Track:Q62470811
  2. Release 0.12.0

Література

  • 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.

Посилання

  • Офіційний сайт
  • Zig на GitHub
  • Movie: Introducing Zig
  • Movie: The Road to 1.0
  • Zig Weekly