Zig (ohjelmointikieli)

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 9.6.2021 tarkistetusta versiosta . tarkastukset vaativat 4 muokkausta .
Zig
Kieliluokka ohjelmointikieli , pakollinen ohjelmointikieli , yleisohjelmointikieli [d] , käännetty ohjelmointikieli , järjestelmäohjelmointikieli [d] , moniparadigmaohjelmointikieli , proseduuriohjelmointikieli ja toiminnallinen ohjelmointikieli
Toteutustyyppi Käännetty
Esiintyi 2015 [1]
Tekijä Andrew Kelley
Kehittäjä Andrew Kelley
Tiedostotunniste _ .zig
Vapauta 0.9.1 (14. helmikuuta 2022 ) ( 14.2.2022 )
Tyyppijärjestelmä staattinen, tiukka
Vaikutettu C , C++ , Go , Rust ja JavaScript
Lisenssi MIT
Verkkosivusto ziglang.org
 Mediatiedostot Wikimedia Commonsissa

Zig  on pakollinen , staattisesti kirjoitettu , käännetty , yleiskäyttöinen ohjelmointikieli [2] [3] . Kieli on suunniteltu luomaan " kestävyyttä, optimaalisuutta ja ylläpidettävyyttä " ohjelmisto [4] [5] .  Kieli tukee yleistä ohjelmointia ja käännösajan heijastusta , ristikääntämistä ja manuaalista muistinhallintaa [6] . Kielen päätavoite on kilpailla (ja parantaa) C :n [7] [8] kanssa ja samalla lainata ajatuksia Rustilta [9] .

Kielessä on monia ominaisuuksia matalan tason ohjelmointiin , erityisesti: pakatut rakenteet (rakenteet, joissa kenttien välinen tasaus on nolla), mielivaltaisen pituiset kokonaislukutyypit (esimerkiksi: i7, i8, i63) [10] , useita osoittimia [11] .

Kääntäjä on kirjoitettu itse kielellä sekä C++:lla. LLVM 12 [12] käytetään kääntäjän taustaohjelmistona [13] [14] . Kääntäjä on lisensoitu ilmaisella MIT-lisenssillä [14] . Kääntäjällä on kyky kääntää C- ja C++- ohjelmia "zig cc"- ja "zig c++"-komennoilla [15] . Nim - ohjelmointikieli tukee Zig-kääntäjän käyttöä kuten C-kääntäjä.

Koodiesimerkkejä

hei maailma

const std = @tuonti ( "std" ); pub fn main () ! void { const stdout = std . io . getStdOut (). kirjoittaja (); kokeile stdoutia . print ( "Hei, {}! \n " , .{ "maailma" }); }

Yleistetty linkitetty luettelo

fn LinkedList ( comptime T : type ) type { return struct { pub const Node = struct { Edellinen : ?* Solmu , seuraava : ?* Solmu , tiedot : T_ _ }; ensin : ?* Solmu , viimeinen : ?* Solmu , len : käytä , }; } pub fn main () void { var node = LinkedList ( i32 ). solmu { . edellinen = nolla , . seuraava = null , . data = 1234 , }; var list = LinkedList ( i32 ) { . ensimmäinen = & solmu , . viimeinen = & solmu , . len = 1 , }; }

Muistiinpanot

  1. Kelley A. aloitus - 2015.
  2. "Zigissä on kaikki C:n elegantti yksinkertaisuus, miinus kaikki tavat ampua itseäsi jalkaan  "  ? . JAXenter (31. lokakuuta 2017). Haettu 20. syyskuuta 2020. Arkistoitu alkuperäisestä 25. marraskuuta 2021.
  3. Oletko kyllästynyt C:hen?   Uusi ohjelmointikieli Zig pyrkii olemaan pragmaattisempi ja luettavampi ? . JAXenter (19. lokakuuta 2017). Haettu 20. syyskuuta 2020. Arkistoitu alkuperäisestä 25. marraskuuta 2021.
  4. Serdar Yegululp. Uusi haastaja liittyy Rustin kaataakseen C-  kielen . InfoWorld (29. elokuuta 2016). Haettu 20. syyskuuta 2020. Arkistoitu alkuperäisestä 25. marraskuuta 2021.
  5. IT之 . tech.sina.com.cn (12. heinäkuuta 2020). Haettu 20. syyskuuta 2020. Arkistoitu alkuperäisestä 25. marraskuuta 2021.
  6. Zig-ohjelmointikieli . ziglang.org . Haettu 21. syyskuuta 2020. Arkistoitu alkuperäisestä 1. huhtikuuta 2022.
  7. Mozillan observatorio, Zig-ohjelmointikieli ja uSensin VR/AR SDK – SD Times -uutiset: elokuu. 29. 2016  (englanniksi)  ? . SD Times (29. elokuuta 2016). Haettu 21. syyskuuta 2020. Arkistoitu alkuperäisestä 25. marraskuuta 2021.
  8. Zig-ohjelmointikieli . ziglang.org . Haettu 21. syyskuuta 2020. Arkistoitu alkuperäisestä 1. huhtikuuta 2022.
  9. Unsafe Zig on turvallisempi kuin vaarallinen ruoste - Andrew Kelley . andrewkelley.me . Haettu 21. syyskuuta 2020. Arkistoitu alkuperäisestä 21. helmikuuta 2022.
  10. Haluaisitko mennä _ExtInt? LLVM Clang -kääntäjä lisää tuen mukautetuille leveille  kokonaisluvuille . www.theregister.com . Haettu 21. syyskuuta 2020. Arkistoitu alkuperäisestä 26. lokakuuta 2020.
  11. Dokumentaatio - Zig-ohjelmointikieli . ziglang.org . Haettu 21. syyskuuta 2020. Arkistoitu alkuperäisestä 31. maaliskuuta 2022.
  12. SD Times -uutisten tiivistelmä: C++20-konseptit Visual Studio 2010:n versiossa 16.3, Bootstrap poistaa IE-tuen ja Zig 0.60   julkaistu ? . SD Times (14. huhtikuuta 2020). Haettu 21. syyskuuta 2020. Arkistoitu alkuperäisestä 25. marraskuuta 2021.
  13. ↑ Vastaus artikkeliin _The Road to  Zig 1.0_  ? . www.gingerbill.org (13. toukokuuta 2019). Haettu 21. syyskuuta 2020. Arkistoitu alkuperäisestä 7. syyskuuta 2021.
  14. ↑ 1 2 ziglang/zig . - 21-09-2020 Arkistoitu alkuperäisestä 30. maaliskuuta 2022.
  15. 0.6.0:n julkaisutiedot Zig-ohjelmointikieli . ziglang.org . Haettu 21. syyskuuta 2020. Arkistoitu alkuperäisestä 21. helmikuuta 2022.

Linkit