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" }); }

Zobecněný propojený seznam

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

  1. Kelley A. init - 2015.
  2. "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.
  3. 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.
  4. 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.
  5. IT之 . tech.sina.com.cn (12. července 2020). Získáno 20. září 2020. Archivováno z originálu dne 25. listopadu 2021.
  6. Programovací jazyk Zig . ziglang.org . Staženo 21. září 2020. Archivováno z originálu 1. dubna 2022.
  7. 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.
  8. Programovací jazyk Zig . ziglang.org . Staženo 21. září 2020. Archivováno z originálu 1. dubna 2022.
  9. 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.
  10. 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.
  11. Dokumentace – programovací jazyk Zig . ziglang.org . Získáno 21. září 2020. Archivováno z originálu dne 31. března 2022.
  12. 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.
  13. ↑ 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.
  14. ↑ 1 2 ciklang/cik . — 21. 9. 2020. Archivováno z originálu 30. března 2022.
  15. 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.

Odkazy