wd wp Пошук:

Zig

Zig - імператыўная, статычна-тыпаваная, кампілюемая сістэмная мова праграмавання агульнага прызначэння, распрацаваная Эндру Кэлі. Мова распрацавана для “надзейнасці, аптымальнасці і простасці абслугоўвання коду”, падтрымлівае джынэрыкі і рэфлексію падчас кампіляцыі, крос-кампіляцыю і кіраванне памяццю ўручную. Асноўная мэта мовы - канкурыраваць (і ўдасканальваць) C, у той жа час беручы натхненне з мовы Rust.

Zig мае мноства функцый для праграмавання на нізкім узроўні, у прыватнасці: насычаныя структуры (структуры з нулявым водступамі паміж палямі), цэлалікавы тып вольнага памеру і некалькі тыпаў указальнікаў.

Кампілятар напісаны на Zig і C++, з выкарыстаннем LLVM 11 у якасці бэкэнда, такім чынам падтрымлівае ўсе тыя ж платформы, што і LLVM. Кампілятар - гэта бясплатнае праграмнае забеспячэнне з адкрытым зыходным кодам паводле ліцэнзіі MIT. Кампілятар Zig прадастаўляе магчымасць кампіляцыі C і C++, аналагічна Clang, з дапамогай каманд zig cc і zig c++, адпаведна. Мова праграмавання Nim падтрымлівае выкарыстанне zig cc у якасці кампілятара C.

Прыклады

Hello world

const std = @import("std");

pub fn main() !void \{
 const stdout = std.io.getStdOut().writer();
 try stdout.print("Hello, \{\}!\n", .\{"world"\});
\}

Абагульнены звязаны спіс

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

Знешнія спасылкі

Тэмы гэтай старонкі (3):
Катэгорыя·Мовы праграмавання паводле алфавіта
Катэгорыя·Мовы праграмавання
Катэгорыя·З’явіліся ў 2016 годзе