Zig (programovací jazyk) - Zig (programming language)
![]() | |
Paradigmata | Multi-paradigma: rozkazovací způsob, souběžně, procesní, funkční |
---|---|
Navrhl | Andrew Kelley |
Vývojář | Andrew Kelley, otevřený zdroj |
Poprvé se objevil | 8. února 2016[1] |
Náhled verze | 0.7.0 / 8. listopadu 2020[2] |
Psací disciplína | Statický, Silný, Odvozeno, Strukturální, Obecný |
Plošina | x86_64, PAŽE, MIPS, x86, WebAssembly, RISC-V |
OS | Cross-platform |
Licence | Licence MIT |
Přípony názvu souboru | .zig |
webová stránka | ziglang |
Ovlivněno | |
C, C ++, LLVM IR, Jít, Rez, JavaScript |
Zig je rozkazovací způsob, univerzální, staticky napsané, sestaven systémový programovací jazyk navrhl Andrew Kelley.[3][4] Jazyk je navržen pro „robustnost, optimálnost a udržovatelnost“[5][6], podpůrné čas kompilace generika a odraz, křížová kompilace a manuální správa paměti.[7] Hlavním cílem jazyka je konkurovat (a vylepšovat) C[8][9], přičemž se také inspiroval Rez[10][11], mezi ostatními.
Zig má mnoho funkcí pro programování na nízké úrovni, zejména: zabalené struktury (struktury s nulovým polstrováním mezi poli), celá čísla s libovolnou šířkou[12] a více typů ukazatelů.[13]
Překladač je napsán v Zig a C ++, použitím LLVM 11[14] jako back-end[15][16], podporující mnoho svých původních cílů.[17]Kompilátor je bezplatný open source software pod Licence MIT[18]. Kompilátor Zig vystavuje schopnost kompilovat C a C ++, podobně jako Zvonit pomocí příkazu „zig cc“ a „zig c ++“.[19] The Programovací jazyk Nim podporuje použití zig cc jako kompilátoru C.[20]
Příklady
Ahoj světe
// zig verze 0.6konststd=@import("std");hospodafnhlavní()!prázdnota{konststdout=std.io.getStdOut().outStream();Snaž sestdout.tisk("Ahoj, {}! n",.{"svět"});}
Obecný propojený seznam
fnSpojový seznam(comptimeT:typ)typ{vrátit sestruktur{hospodakonstUzel=struktur{předchozí:?*Uzel,další:?*Uzel,data:T,};První:?*Uzel,poslední:?*Uzel,len:využít,};}hospodafnhlavní()prázdnota{varuzel=Spojový seznam(i32).Uzel{.předchozí=nula,.další=nula,.data=1234,};varseznam=Spojový seznam(i32){.První=&uzel,.poslední=&uzel,.len=1,};}
Viz také
Reference
- ^ Kelley, Andrew. „Úvod do programovacího jazyka Zig“. andrewkelley.me. Citováno 8. listopadu 2020.
- ^ https://github.com/ziglang/zig/releases
- ^ "Zig má veškerou elegantní jednoduchost C, minus všechny způsoby, jak si střelit do nohy". JAXenter. 2017-10-31. Citováno 2020-02-11.
- ^ „Už vás nebaví C? Nový programovací jazyk Zig si klade za cíl být pragmatičtější a čitelnější“. 2017-10-19. Citováno 2020-04-22.
- ^ Yegulalp, Serdar (29. 8. 2016). „Nový vyzývatel se připojil k Rustovi a svrhl jazyk C“. InfoWorld. Citováno 2020-02-11.
- ^ "Zig jazyk a C". Sina Corp. 2020-07-12. Citováno 2020-08-12.
- ^ „Programovací jazyk Zig“. ziglang.org. Citováno 2020-02-11.
- ^ „Mozillská observatoř, programovací jazyk Zig a uSens VR / AR SDK - přehled zpráv SD Times: 29. srpna 2016“. SD Times. 2016-08-29. Citováno 2020-02-11.
- ^ "Programovací jazyk Zig". ziglang.org. Citováno 2020-02-11.
- ^ Společnost, Sudo Null. „Sudo Null - IT novinky pro vás“. SudoNull. Citováno 2020-02-11.
- ^ Kelley, Andrew. „Unsafe Zig is Safer Than Unsafe Rust“. andrewkelley.me. Citováno 2020-02-11.
- ^ Tim Anderson 24. dubna 2020 v 09:50. „Chcete jít _ExtInt? Kompilátor LLVM Clang přidává podporu pro celá čísla vlastní šířky“. www.theregister.co.uk. Citováno 2020-04-24.
- ^ „Dokumentace - programovací jazyk Zig“. ziglang.org. Citováno 2020-04-24.
- ^ „SD Times news digest: C ++ 20cepts in Visual Studio 2010 version 16.3, Bootstrap to drop IE support, and Zig 0.60 released“. SD Times. 2020-04-14. Citováno 2020-04-19.
- ^ „Odpověď na _The Road to Zig 1.0_“. www.gingerbill.org. 2019-05-13. Citováno 2020-02-11.
- ^ ziglang / zig, Programovací jazyk Zig, 2020-02-11, vyvoláno 2020-02-11
- ^ "Programovací jazyk Zig". ziglang.org. Citováno 2020-02-11.
- ^ „ziglang / zig“. GitHub. Citováno 2020-02-11.
- ^ „Poznámky k verzi 0.6.0 · Programovací jazyk Zig“. ziglang.org. Citováno 2020-04-19.
- ^ „Přidat podporu pro„ zig cc “jako kompilátor jazyka C. od hessammehr · Pull Request # 13757 · nim-lang / Nim“. GitHub. Citováno 2020-04-19.