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

  1. Kelley A. init - 2015.
  2. „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.
  3. 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.
  4. 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.
  5. IT之 . tech.sina.com.cn (12 iulie 2020). Preluat la 20 septembrie 2020. Arhivat din original la 25 noiembrie 2021.
  6. Limbajul de programare Zig . ziglang.org . Preluat la 21 septembrie 2020. Arhivat din original la 1 aprilie 2022.
  7. 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.
  8. Limbajul de programare Zig . ziglang.org . Preluat la 21 septembrie 2020. Arhivat din original la 1 aprilie 2022.
  9. 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.
  10. 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.
  11. Documentație - Limbajul de programare Zig . ziglang.org . Preluat la 21 septembrie 2020. Arhivat din original la 31 martie 2022.
  12. 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.
  13. ↑ 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.
  14. ↑ 1 2 ziglang/zig . — 21.09.2020. Arhivat din original la 30 martie 2022.
  15. 0.6.0 Note de lansare Limbajul de programare Zig . ziglang.org . Preluat la 21 septembrie 2020. Arhivat din original la 21 februarie 2022.

Link -uri