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" });
}
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
- ↑ Kelley A. init - 2015.
- ↑ "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. (ubestemt)
- ↑ 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. (ubestemt)
- ↑ 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.
- ↑ IT之 家. tech.sina.com.cn (12. juli 2020). Hentet 20. september 2020. Arkiveret fra originalen 25. november 2021. (ubestemt)
- ↑ Zig-programmeringssproget . ziglang.org . Hentet 21. september 2020. Arkiveret fra originalen 1. april 2022. (ubestemt)
- ↑ 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. (ubestemt)
- ↑ Zig-programmeringssproget . ziglang.org . Hentet 21. september 2020. Arkiveret fra originalen 1. april 2022. (ubestemt)
- ↑ Usikker Zig er sikrere end usikker rust - Andrew Kelley . andrewkelley.me . Hentet 21. september 2020. Arkiveret fra originalen 21. februar 2022. (ubestemt)
- ↑ 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.
- ↑ Dokumentation - Zig-programmeringssproget . ziglang.org . Hentet 21. september 2020. Arkiveret fra originalen 31. marts 2022. (ubestemt)
- ↑ 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. (ubestemt)
- ↑ Et svar på _Vejen til Zig 1.0_ ? . www.gingerbill.org (13. maj 2019). Hentet 21. september 2020. Arkiveret fra originalen 7. september 2021. (ubestemt)
- ↑ 1 2 ziglang/zig . – 21-09-2020. Arkiveret fra originalen den 30. marts 2022.
- ↑ 0.6.0 Release Notes Zig-programmeringssproget . ziglang.org . Hentet 21. september 2020. Arkiveret fra originalen 21. februar 2022. (ubestemt)
Links