Zig (programovací jazyk)
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 9. června 2021; kontroly vyžadují
4 úpravy .
Zig |
---|
|
Jazyková třída |
programovací jazyk , imperativní programovací jazyk , programovací jazyk pro všeobecné použití [d] , kompilovaný programovací jazyk , systémový programovací jazyk [d] , programovací jazyk s více paradigmaty , procedurální programovací jazyk a funkční programovací jazyk |
Typ provedení |
Sestaven |
Objevil se v |
2015 [1] |
Autor |
Andrew Kelley |
Vývojář |
Andrew Kelley |
Přípona souboru |
.zig |
Uvolnění |
0.9.1 (14. února 2022 ) ( 2022-02-14 ) |
Typový systém |
statický, přísný |
Byl ovlivněn |
C , C++ , Go , Rust a JavaScript |
Licence |
MIT |
webová stránka |
ziglang.org |
Mediální soubory na Wikimedia Commons |
Zig je imperativní , staticky typovaný , kompilovaný , univerzální programovací jazyk [2] [3] . Jazyk byl navržen tak, aby vytvořil " robustnost, optimalitu a udržovatelnost " softwaru [4] [5] . Jazyk podporuje obecné programování a reflexi v době kompilace, křížovou kompilaci a manuální správu paměti [6] . Hlavním cílem jazyka je konkurovat (a zdokonalovat se) C [7] [8] , přičemž si zároveň vypůjčuje některé myšlenky od Rusta [9] .
Jazyk má mnoho funkcí pro nízkoúrovňové programování , zejména: sbalené struktury (struktury s nulovým zarovnáním mezi poli), celočíselné typy libovolné délky (například: i7, i8, i63) [10] , několik typů ukazatelů [11] .
Kompilátor je napsán v jazyce samotném, stejně jako v C++. LLVM 12 [12] se používá jako backend kompilátoru [13] [14] . Překladač je licencován pod bezplatnou licencí MIT [14] . Kompilátor má schopnost kompilovat programy C a C++ pomocí příkazů "zig cc" a "zig c++" [15] . Programovací jazyk Nim podporuje použití kompilátoru Zig jako kompilátor C.
Příklady kódu
ahoj světe
const std = @import ( "std" );
hospoda fn hlavní () ! void {
const stdout = std . io . getStdOut (). spisovatel ();
zkuste stdout . print ( "Dobrý den, {}! \n " , .{ "svět" });
}
fn LinkedList ( comptime T : type ) type {
return struct {
pub const Node = struct {
předchozí : ?* Uzel ,
další : ?* Uzel ,
údaje : T_ _
};
první : ?* Uzel ,
poslední : ?* Uzel ,
len : použití ,
};
}
pub fn main () void {
var node = LinkedList ( i32 ). uzel {
. předchozí = null ,
. další = null ,
. údaje = 1234 ,
};
var list = LinkedList ( i32 ) {
. první = & uzel ,
. poslední = & uzel ,
. len = 1 ,
};
}
Poznámky
- ↑ Kelley A. init - 2015.
- ↑ "Zig má veškerou elegantní jednoduchost C, bez všech způsobů, jak se střelit do nohy " ? . JAXenter (31. října 2017). Získáno 20. září 2020. Archivováno z originálu dne 25. listopadu 2021. (neurčitý)
- ↑ Už vás nebaví C? Nový programovací jazyk Zig si klade za cíl být pragmatičtější a čitelnější ? . JAXenter (19. října 2017). Získáno 20. září 2020. Archivováno z originálu dne 25. listopadu 2021. (neurčitý)
- ↑ Serdar Yegulalp. Nový vyzyvatel se připojuje k Rustu, aby svrhl jazyk C. InfoWorld (29. srpna 2016). Získáno 20. září 2020. Archivováno z originálu dne 25. listopadu 2021.
- ↑ IT之 家. tech.sina.com.cn (12. července 2020). Získáno 20. září 2020. Archivováno z originálu dne 25. listopadu 2021. (neurčitý)
- ↑ Programovací jazyk Zig . ziglang.org . Staženo 21. září 2020. Archivováno z originálu 1. dubna 2022. (neurčitý)
- ↑ Mozilla's Observatory, programovací jazyk Zig a VR/AR SDK společnosti uSens – přehled zpráv SD Times: srpen. 29, 2016 (anglicky) ? . SD Times (29. srpna 2016). Získáno 21. září 2020. Archivováno z originálu dne 25. listopadu 2021. (neurčitý)
- ↑ Programovací jazyk Zig . ziglang.org . Staženo 21. září 2020. Archivováno z originálu 1. dubna 2022. (neurčitý)
- ↑ Unsafe Zig is Safer than Unsafe Rust - Andrew Kelley . andrewkelley.me . Získáno 21. září 2020. Archivováno z originálu dne 21. února 2022. (neurčitý)
- ↑ Chcete jít _ExtInt? Kompilátor LLVM Clang přidává podporu pro vlastní šířku celých čísel . www.theregister.com . Získáno 21. září 2020. Archivováno z originálu dne 26. října 2020.
- ↑ Dokumentace – programovací jazyk Zig . ziglang.org . Získáno 21. září 2020. Archivováno z originálu dne 31. března 2022. (neurčitý)
- ↑ Přehled novinek SD Times: Koncepty C++20 ve Visual Studiu 2010 verze 16.3, Bootstrap pro ukončení podpory IE a Zig 0.60 vydán ? . SD Times (14. dubna 2020). Získáno 21. září 2020. Archivováno z originálu dne 25. listopadu 2021. (neurčitý)
- ↑ Odpověď na _The Road to Zig 1.0_ ? . www.gingerbill.org (13. května 2019). Získáno 21. září 2020. Archivováno z originálu dne 7. září 2021. (neurčitý)
- ↑ 1 2 ciklang/cik . — 21. 9. 2020. Archivováno z originálu 30. března 2022.
- ↑ Poznámky k verzi 0.6.0 Programovací jazyk Zig . ziglang.org . Získáno 21. září 2020. Archivováno z originálu dne 21. února 2022. (neurčitý)
Odkazy