Zig (programmeringssprog)

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 9. juni 2021; checks kræver 4 redigeringer .
Zig
Sprog klasse programmeringssprog , imperativt programmeringssprog , programmeringssprog til generelle formål [d] , kompileret programmeringssprog , systemprogrammeringssprog [d] , multi-paradigme programmeringssprog , proceduremæssigt programmeringssprog og funktionelt programmeringssprog
Udførelsestype Kompileret
Dukkede op i 2015 [1]
Forfatter Andrew Kelley
Udvikler Andrew Kelley
Filtypenavn _ .zig
Frigøre 0.9.1 (14. februar 2022 ) ( 2022-02-14 )
Type system statisk, streng
Blev påvirket C , C++ , Go , Rust og JavaScript
Licens MIT
Internet side ziglang.org
 Mediefiler på Wikimedia Commons

Zig  er et imperativt , statisk skrevet , kompileret , generelt programmeringssprog [2] [3] . Sproget blev designet til at skabe " robusthed, optimalitet og vedligeholdelse " software [4] [5] .  Sproget understøtter generisk programmering og kompileringstidsreflektion , krydskompilering og manuel hukommelsesstyring [6] . Hovedmålet med sproget er at konkurrere med (og blive bedre) C [7] [8] , samtidig med at man låner nogle ideer fra Rust [9] .

Sproget har mange funktioner til programmering på lavt niveau , især: pakkede strukturer (strukturer med nul justering mellem felter), heltaltyper af vilkårlig længde (for eksempel: i7, i8, i63) [10] , flere typer pointere [11] .

Compileren er skrevet på selve sproget, såvel som i C++. LLVM 12 [12] bruges som en compiler backend [13] [14] . Compileren er licenseret under den gratis MIT-licens [14] . Compileren har evnen til at kompilere C- og C++- programmer ved hjælp af kommandoerne "zig cc" og "zig c++" [15] . Programmeringssproget Nim understøtter brugen af ​​Zig-kompileren ligesom C-kompileren.

Kodeeksempler

hej verden

const std = @import ( "std" ); pub fn main () ! void { const stdout = std . io . getStdOut (). forfatter (); prøv stdout . print ( "Hej, {}! \n " , .{ "verden" }); }

Generaliseret linket liste

fn LinkedList ( comptime T : type ) type { return struct { pub const Node = struct { forrige : ?* Node , næste : ?* Node , data : T _ }; første : ?* Node , sidste : ?* Node , len : bruge , }; } pub fn main () void { var node = LinkedList ( i32 ). node { . forrige = null , . næste = null , . data = 1234 , }; var list = LinkedList ( i32 ) { . første = & node , . sidste = & node , . len = 1 , }; }

Noter

  1. Kelley A. init - 2015.
  2. "Zig har al den elegante enkelhed som C, minus alle måder at skyde dig selv i foden på  "  ? . JAXenter (31. oktober 2017). Hentet 20. september 2020. Arkiveret fra originalen 25. november 2021.
  3. Træt af C?   Nyt programmeringssprog Zig sigter mod at være mere pragmatisk og læsbar ? . JAXenter (19. oktober 2017). Hentet 20. september 2020. Arkiveret fra originalen 25. november 2021.
  4. Serdar Yegulalp. Ny udfordrer slutter sig til Rust for at vælte C  -sproget . InfoWorld (29. august 2016). Hentet 20. september 2020. Arkiveret fra originalen 25. november 2021.
  5. IT之 . tech.sina.com.cn (12. juli 2020). Hentet 20. september 2020. Arkiveret fra originalen 25. november 2021.
  6. Zig-programmeringssproget . ziglang.org . Hentet 21. september 2020. Arkiveret fra originalen 1. april 2022.
  7. Mozilla's Observatory, Zig-programmeringssproget og uSens' VR/AR SDK—SD Times nyhedsoversigt: Aug. 29, 2016  (engelsk)  ? . SD Times (29. august 2016). Hentet 21. september 2020. Arkiveret fra originalen 25. november 2021.
  8. Zig-programmeringssproget . ziglang.org . Hentet 21. september 2020. Arkiveret fra originalen 1. april 2022.
  9. Usikker Zig er sikrere end usikker rust - Andrew Kelley . andrewkelley.me . Hentet 21. september 2020. Arkiveret fra originalen 21. februar 2022.
  10. Lyst til at gå _ExtInt? LLVM Clang compiler tilføjer understøttelse af brugerdefinerede bredde  heltal . www.theregister.com . Hentet 21. september 2020. Arkiveret fra originalen 26. oktober 2020.
  11. Dokumentation - Zig-programmeringssproget . ziglang.org . Hentet 21. september 2020. Arkiveret fra originalen 31. marts 2022.
  12. SD Times nyhedsoversigt: C++20-koncepter i Visual Studio 2010 version 16.3, Bootstrap for at droppe IE-understøttelse og Zig 0.60   frigivet ? . SD Times (14. april 2020). Hentet 21. september 2020. Arkiveret fra originalen 25. november 2021.
  13. ↑ Et svar på _Vejen til  Zig 1.0_  ? . www.gingerbill.org (13. maj 2019). Hentet 21. september 2020. Arkiveret fra originalen 7. september 2021.
  14. ↑ 1 2 ziglang/zig . – 21-09-2020. Arkiveret fra originalen den 30. marts 2022.
  15. 0.6.0 Release Notes Zig-programmeringssproget . ziglang.org . Hentet 21. september 2020. Arkiveret fra originalen 21. februar 2022.

Links