Zig (programmeringsspråk)
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 9 juni 2021; kontroller kräver
4 redigeringar .
Zig |
---|
|
Språkklass |
programmeringsspråk , imperativt programmeringsspråk , allmänt programmeringsspråk [d] , kompilerat programmeringsspråk , systemprogrammeringsspråk [d] , programmeringsspråk för flera paradigm , procedurspråk och funktionellt programmeringsspråk |
Utförandetyp |
Sammanställt |
Framträdde i |
2015 [1] |
Författare |
Andrew Kelley |
Utvecklaren |
Andrew Kelley |
Filtillägg _ |
.zig |
Släpp |
0.9.1 (14 februari 2022 ) ( 2022-02-14 ) |
Typ system |
statisk, strikt |
Blivit påverkad |
C , C++ , Go , Rust och JavaScript |
Licens |
MIT |
Hemsida |
ziglang.org |
Mediafiler på Wikimedia Commons |
Zig är ett imperativt , statiskt skrivet , kompilerat , allmänt programmeringsspråk [2] [3] . Språket designades för att skapa mjukvara för " robusthet, optimalitet och underhållsbarhet " [4] [5] . Språket stöder generisk programmering och kompileringstidsreflektion , korskompilering och manuell minneshantering [6] . Huvudmålet med språket är att konkurrera med (och bli bättre) C [7] [8] , samtidigt som man lånar några idéer från Rust [9] .
Språket har många funktioner för programmering på låg nivå , särskilt: packade strukturer (strukturer med nolljustering mellan fält), heltalstyper av godtycklig längd (till exempel: i7, i8, i63) [10] , flera typer av pekare [11] .
Kompilatorn är skriven på själva språket, såväl som i C++. LLVM 12 [12] används som en kompilatorbackend [13] [14] . Kompilatorn är licensierad under den fria MIT-licensen [14] . Kompilatorn har förmågan att kompilera C- och C++- program med hjälp av kommandona "zig cc" och "zig c++" [15] . Programmeringsspråket Nim stöder användningen av Zig-kompilatorn som C-kompilatorn.
Kodexempel
hej världen
const std = @import ( "std" );
pub fn main () ! void {
const stdout = std . io . getStdOut (). författare ();
prova stdout . print ( "Hej, {}! \n " , .{ "världen" });
}
fn LinkedList ( comptime T : type ) typ {
return struct {
pub const Node = struct {
föregående : ?* Nod ,
nästa : ?* Nod ,
data : T _
};
först : ?* Nod ,
sista : ?* Nod ,
len : använda ,
};
}
pub fn main () void {
var node = LinkedList ( i32 ). nod {
. föregående = null ,
. nästa = null ,
. data = 1234 ,
};
var list = LinkedList ( i32 ) {
. första = & nod ,
. sista = & nod ,
. len = 1 ,
};
}
Anteckningar
- ↑ Kelley A. init - 2015.
- ↑ "Zig har all den eleganta enkelheten som C, minus alla sätt att skjuta sig själv i foten " ? . JAXenter (31 oktober 2017). Hämtad 20 september 2020. Arkiverad från originalet 25 november 2021. (obestämd)
- ↑ Trött på C? Nytt programmeringsspråk Zig syftar till att bli mer pragmatiskt och läsbart ? . JAXenter (19 oktober 2017). Hämtad 20 september 2020. Arkiverad från originalet 25 november 2021. (obestämd)
- ↑ Serdar Yegulalp. Ny utmanare ansluter sig till Rust för att störta C- språket . InfoWorld (29 augusti 2016). Hämtad 20 september 2020. Arkiverad från originalet 25 november 2021.
- ↑ IT之 家. tech.sina.com.cn (12 juli 2020). Hämtad 20 september 2020. Arkiverad från originalet 25 november 2021. (obestämd)
- ↑ Zig-programmeringsspråket . ziglang.org . Hämtad 21 september 2020. Arkiverad från originalet 1 april 2022. (obestämd)
- ↑ Mozillas observatorium, Zig-programmeringsspråket och uSens VR/AR SDK—SD Times nyhetssammandrag: Aug. 29, 2016 (engelska) ? . SD Times (29 augusti 2016). Hämtad 21 september 2020. Arkiverad från originalet 25 november 2021. (obestämd)
- ↑ Zig-programmeringsspråket . ziglang.org . Hämtad 21 september 2020. Arkiverad från originalet 1 april 2022. (obestämd)
- ↑ Osäker Zig är säkrare än osäkra rost - Andrew Kelley . andrewkelley.me . Hämtad 21 september 2020. Arkiverad från originalet 21 februari 2022. (obestämd)
- ↑ Sugen på att gå _ExtInt? LLVM Clang-kompilatorn lägger till stöd för heltal med anpassad bredd . www.theregister.com . Hämtad 21 september 2020. Arkiverad från originalet 26 oktober 2020.
- ↑ Dokumentation - Zig-programmeringsspråket . ziglang.org . Hämtad 21 september 2020. Arkiverad från originalet 31 mars 2022. (obestämd)
- ↑ SD Times nyhetssammanfattning: C++20-koncept i Visual Studio 2010 version 16.3, Bootstrap för att släppa IE-stöd och Zig 0.60 släppt ? . SD Times (14 april 2020). Hämtad 21 september 2020. Arkiverad från originalet 25 november 2021. (obestämd)
- ↑ Ett svar på _Vägen till Zig 1.0_ ? . www.gingerbill.org (13 maj 2019). Hämtad 21 september 2020. Arkiverad från originalet 7 september 2021. (obestämd)
- ↑ 1 2 ziglang/zig . — 2020-09-21. Arkiverad från originalet den 30 mars 2022.
- ↑ 0.6.0 Release Notes Zig-programmeringsspråket . ziglang.org . Hämtad 21 september 2020. Arkiverad från originalet 21 februari 2022. (obestämd)
Länkar