Zig (limbaj de programare)
Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită la 9 iunie 2021; verificările necesită
4 modificări .
Zig |
---|
|
Clasa de limba |
limbaj de programare , limbaj de programare imperativ , limbaj de programare de uz general [d] , limbaj de programare compilat , limbaj de programare a sistemelor [d] , limbaj de programare cu mai multe paradigme , limbaj de programare procedural și limbaj de programare funcțional |
Tipul de execuție |
Compilat |
Aparut in |
2015 [1] |
Autor |
Andrew Kelley |
Dezvoltator |
Andrew Kelley |
Extensie de fișier |
.zig |
Eliberare |
0.9.1 (14 februarie 2022 ) ( 14.02.2022 ) |
Tip sistem |
static, strict |
A fost influențat |
C , C++ , Go , Rust și JavaScript |
Licență |
MIT |
Site-ul web |
ziglang.org |
Fișiere media la Wikimedia Commons |
Zig este un limbaj de programare imperativ , tipizat static , compilat , de uz general [2] [3] . Limbajul a fost conceput pentru a crea software de „ robustețe, optimitate și mentenanță ” [4] [5] . Limbajul acceptă programarea generică și reflectarea în timp de compilare, compilarea încrucișată și gestionarea manuală a memoriei [6] . Scopul principal al limbajului este de a concura cu (și de a deveni mai bun) C [7] [8] , împrumutând în același timp câteva idei de la Rust [9] .
Limbajul are multe caracteristici pentru programarea de nivel scăzut , în special: structuri împachetate (structuri cu aliniere zero între câmpuri), tipuri întregi de lungime arbitrară (de exemplu: i7, i8, i63) [10] , mai multe tipuri de pointeri [11] .
Compilatorul este scris în limbajul propriu-zis, precum și în C++. LLVM 12 [12] este folosit ca backend al compilatorului [13] [14] . Compilatorul este licențiat sub licența gratuită MIT [14] . Compilatorul are capacitatea de a compila programe C și C++ folosind comenzile „zig cc” și „zig c++” [15] . Limbajul de programare Nim acceptă utilizarea compilatorului Zig ca și compilatorul C.
Exemple de cod
salut lumea
const std = @import ( "std" );
pub fn main () ! void {
const stdout = std . io . getStdOut (). scriitor ();
încercați stdout . print ( "Bună ziua, {}! \n " , .{ "lume" });
}
Lista generalizată legată
fn LinkedList ( comptime T : tip ) tip {
return struct {
pub const Node = struct {
prev : ?* Nod ,
următorul : ?* Nod ,
date : T _
};
primul : ?* Nod ,
ultimul : ?* Nod ,
len : folosește ,
};
}
pub fn main () void {
var node = LinkedList ( i32 ). nod {
. prev = nul ,
. următorul = nul ,
. date = 1234 ,
};
var list = LinkedList ( i32 ) {
. primul = & nodul ,
. ultimul = & nod ,
. len = 1 ,
};
}
Note
- ↑ Kelley A. init - 2015.
- ↑ „Zig are toată simplitatea elegantă a lui C, minus toate modalitățile de a te împușca în picior ” ? . JAXenter (31 octombrie 2017). Preluat la 20 septembrie 2020. Arhivat din original la 25 noiembrie 2021. (nedefinit)
- ↑ Te-ai săturat de C? Noul limbaj de programare Zig își propune să fie mai pragmatic și mai lizibil ? . JAXenter (19 octombrie 2017). Preluat la 20 septembrie 2020. Arhivat din original la 25 noiembrie 2021. (nedefinit)
- ↑ Serdar Yegulalp. Un nou challenger se alătură Rust pentru a răsturna limbajul C. InfoWorld (29 august 2016). Preluat la 20 septembrie 2020. Arhivat din original la 25 noiembrie 2021.
- ↑ IT之 家. tech.sina.com.cn (12 iulie 2020). Preluat la 20 septembrie 2020. Arhivat din original la 25 noiembrie 2021. (nedefinit)
- ↑ Limbajul de programare Zig . ziglang.org . Preluat la 21 septembrie 2020. Arhivat din original la 1 aprilie 2022. (nedefinit)
- ↑ Observatorul Mozilla, limbajul de programare Zig și SDK-ul uSens VR/AR—Rezumat de știri SD Times: aug. 29, 2016 (engleză) ? . SD Times (29 august 2016). Preluat la 21 septembrie 2020. Arhivat din original la 25 noiembrie 2021. (nedefinit)
- ↑ Limbajul de programare Zig . ziglang.org . Preluat la 21 septembrie 2020. Arhivat din original la 1 aprilie 2022. (nedefinit)
- ↑ Unsafe Zig este mai sigur decât unsafe Rust - Andrew Kelley . andrewkelley.me . Preluat la 21 septembrie 2020. Arhivat din original la 21 februarie 2022. (nedefinit)
- ↑ Doriți să mergeți la _ExtInt? Compilatorul LLVM Clang adaugă suport pentru numere întregi cu lățime personalizată . www.theregister.com . Preluat la 21 septembrie 2020. Arhivat din original la 26 octombrie 2020.
- ↑ Documentație - Limbajul de programare Zig . ziglang.org . Preluat la 21 septembrie 2020. Arhivat din original la 31 martie 2022. (nedefinit)
- ↑ SD Times News Digest: concepte C++20 în Visual Studio 2010 versiunea 16.3, Bootstrap pentru a renunța la suportul IE și Zig 0.60 lansat ? . SD Times (14 aprilie 2020). Preluat la 21 septembrie 2020. Arhivat din original la 25 noiembrie 2021. (nedefinit)
- ↑ Un răspuns la _The Road to Zig 1.0_ ? . www.gingerbill.org (13 mai 2019). Preluat la 21 septembrie 2020. Arhivat din original la 7 septembrie 2021. (nedefinit)
- ↑ 1 2 ziglang/zig . — 21.09.2020. Arhivat din original la 30 martie 2022.
- ↑ 0.6.0 Note de lansare Limbajul de programare Zig . ziglang.org . Preluat la 21 septembrie 2020. Arhivat din original la 21 februarie 2022. (nedefinit)
Link -uri