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" });
}
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
- ↑ Kelley A. aloitus - 2015.
- ↑ "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. (määrätön)
- ↑ 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. (määrätön)
- ↑ Serdar Yegululp. Uusi haastaja liittyy Rustin kaataakseen C- kielen . InfoWorld (29. elokuuta 2016). Haettu 20. syyskuuta 2020. Arkistoitu alkuperäisestä 25. marraskuuta 2021.
- ↑ IT之 家. tech.sina.com.cn (12. heinäkuuta 2020). Haettu 20. syyskuuta 2020. Arkistoitu alkuperäisestä 25. marraskuuta 2021. (määrätön)
- ↑ Zig-ohjelmointikieli . ziglang.org . Haettu 21. syyskuuta 2020. Arkistoitu alkuperäisestä 1. huhtikuuta 2022. (määrätön)
- ↑ 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. (määrätön)
- ↑ Zig-ohjelmointikieli . ziglang.org . Haettu 21. syyskuuta 2020. Arkistoitu alkuperäisestä 1. huhtikuuta 2022. (määrätön)
- ↑ Unsafe Zig on turvallisempi kuin vaarallinen ruoste - Andrew Kelley . andrewkelley.me . Haettu 21. syyskuuta 2020. Arkistoitu alkuperäisestä 21. helmikuuta 2022. (määrätön)
- ↑ 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.
- ↑ Dokumentaatio - Zig-ohjelmointikieli . ziglang.org . Haettu 21. syyskuuta 2020. Arkistoitu alkuperäisestä 31. maaliskuuta 2022. (määrätön)
- ↑ 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. (määrätön)
- ↑ Vastaus artikkeliin _The Road to Zig 1.0_ ? . www.gingerbill.org (13. toukokuuta 2019). Haettu 21. syyskuuta 2020. Arkistoitu alkuperäisestä 7. syyskuuta 2021. (määrätön)
- ↑ 1 2 ziglang/zig . - 21-09-2020 Arkistoitu alkuperäisestä 30. maaliskuuta 2022.
- ↑ 0.6.0:n julkaisutiedot Zig-ohjelmointikieli . ziglang.org . Haettu 21. syyskuuta 2020. Arkistoitu alkuperäisestä 21. helmikuuta 2022. (määrätön)
Linkit