Zig (språk)

Zig
Logo.
Dato for første versjon 2015
Paradigme Funksjonell , viktig
Forfatter Andrew Kelley
Utvikler Andrew Kelley, åpen kildekode
Siste versjon 0.7.1 (12/13/2020)
Skrive Sterk , statisk
Påvirket av C , C ++ , LLVM IR , Go , Rust , JavaScript
Skrevet i C ++ , Zig
Operativsystemer Multiplatform
Tillatelse MIT-lisens
Nettsted https://ziglang.org/
Filutvidelser .zig

Zig er et allsidig , statisk skrevet imperativt kompilert programmeringsspråk designet av Andrew Kelley. Språket er konstruert for "robusthet", "optimalitet" og "vedlikehold", støtter generika og kompilering-time refleksjon , cross-kompilering, og manuell minnehåndtering . Et hovedmål for språket er å konkurrere med (og forbedre) C , samtidig som man henter inspirasjon fra blant annet Rust .

Zig har mange funksjoner for programmering på lavt nivå, inkludert sammensatte typer ( struct ) uten polstring , heltall av vilkårlig størrelse og forskjellige typer pekere.

Kompilatoren er skrevet i Zig og C ++ , og bruker LLVM 11 som en back-end, og støtter flere av sine opprinnelige mål. Kompilatoren er gratis og åpen kildekode-programvare utgitt under MIT-lisensen . Zig-kompilatoren gir muligheten til å kompilere C og C ++, i likhet med Clang ved å bruke henholdsvis "zig cc" og "zig c ++" -kommandoene. Den Nim programmeringsspråk støtter bruk av sikk cc som en C-kompilator.

Eksempler

Bonjour Monde

// zig version 0.7.1 const std = @import("std"); pub fn main() !void { const stdout = std.io.getStdOut().writer(); try stdout.print("Hello, {}!\n", .{"world"}); }

Generisk koblet liste

fn LinkedList(comptime T: type) type { return struct { pub const Node = struct { prev: ?*Node, next: ?*Node, data: T, }; first: ?*Node, last: ?*Node, len: usize, }; } pub fn main() void { var node = LinkedList(i32).Node { .prev = null, .next = null, .data = 1234, }; var list = LinkedList(i32) { .first = &node, .last = &node, .len = 1, }; }

Merknader og referanser

  1. (no-US) "  Zig har all den elegante enkelheten til C, minus alle måtene å skyte deg selv i foten  " , JAXenter ,31. oktober 2017(åpnet 11. februar 2020 )
  2. (no-US) “  Lei av C? Nytt programmeringsspråk Zig har som mål å være mer pragmatisk og lesbar  ” ,19. oktober 2017(åpnet 22. april 2020 )
  3. (in) Yegulalp, "  New challenger to join Rust topple C language  " , InfoWorld ,29. august 2016(åpnet 11. februar 2020 )
  4. (en-US) "  Zig language and C  " , Sina Corp ,12. juli 2020(åpnet 12. august 2020 )
  5. (no-US) "  The Zig Programming Language  " , ziglang.org (åpnet 11. februar 2020 )
  6. (en-US) “  Mozillas observatorium, Zig-programmeringsspråket og uSens 'VR / AR SDK - SD Times nyhetssammendrag: Aug. 29, 2016  ” , SD Times ,29. august 2016(åpnet 11. februar 2020 )
  7. (no-US) "  The Zig Programming Language  " , ziglang.org (åpnet 11. februar 2020 )
  8. (no) Company, "  Sudo Null - IT News for You  " , SudoNull (åpnet 11. februar 2020 )
  9. (en-US) Kelley, "  Unsafe Zig is Safer Than Rust Unsafe  " , andrewkelley.me (åpnet 11. februar 2020 )
  10. (in) Tim Anderson 24. apr 2020 kl. 9:50, "  Keen to go _ExtInt? LLVM Clang kompilator legger til støtte for tilpassede bredde heltall  ” , www.theregister.co.uk (åpnet 24. april 2020 )
  11. (en-US) “  Documentation - The Zig Programming Language  ” , ziglang.org (åpnet 24. april 2020 )
  12. (no-US) “  SD Times nyhetsfordeling: C ++ 20-konsepter i Visual Studio 2010 versjon 16.3, Bootstrap for å slippe IE-støtte, og Zig 0,60 utgitt  ” , SD Times ,14. april 2020(åpnet 19. april 2020 )
  13. (no-NO) “  Et svar på veien til Zig 1.0  ” , www.gingerbill.org ,13. mai 2019(åpnet 11. februar 2020 )
  14. (no-US) "  The Zig Programming Language  " , ziglang.org (åpnet 11. februar 2020 )
  15. (in) "  ziglang / zig  " , GitHub (åpnet 11. februar 2020 )
  16. (no-US) “  0.6.0 Versjonsmerknader · The Zig Programming Language  ” , ziglang.org (åpnet 19. april 2020 )
  17. (in) "  Legg til støtte for 'zig cc ace C kompilator. av hessammehr · Pull Request # 13757 · nim-lang / Nim  ” , GitHub (åpnet 19. april 2020 )

Se også

Relaterte artikler

Eksterne linker