Zig

| 此條目翻譯品質不佳。 (2022年11月19日)
翻譯者可能不熟悉中文或原文語言，也可能使用了機器翻譯。請協助翻譯本條目或重新編寫，并注意避免翻译腔的问题。明顯拙劣的翻譯請改掛`{{d|G13}}`提交刪除。

|

Zig

编程范型| 多重編程範式: 命令式, 並行, 程序式, 函式
設計者| Andrew Kelley
发行时间| 2016年2月8日，​8年前​（2016-02-08）[1]
当前版本|

* 0.13.0 (2024年6月6日)[2]

型態系統| 靜態, 強, 自動推導, 結構化, 泛型
系统平台| x86-64, ARM, MIPS, IA-32, WebAssembly, RISC-V
操作系统| 跨平臺
許可證| MIT許可證
文件扩展名| .zig, .zir
網站| ziglang.org
啟發語言
C語言, C++, LLVM IR, Go, Rust, JavaScript

Zig是一個命令式、通用、静态型別、编译的系統程式語言。 [3] [4]以「強健性、最佳性以及可維護性」為核心理念。[5] [6]它支援編譯時泛型與反射、交叉編譯以及手動記憶體管理。 [7]目標為改進 C语言[8] [9] ，同時參考從 Rust [10] [11]和其他語言。Zig 有許多低階程式設計的功能，例如緊緻結構（成員間沒有填充的結構）、任意大小的整數[12]以及多指針型別。[13]

Zig 最初的編譯器是用 Zig 和 C++ 編寫而成，以 LLVM 13[14] 為後端[15] [16]。這個編譯器使用 MIT許可證 授權。Zig 編譯器和 Clang 類似，能編譯 C 與 C++（使用「zig cc」以及「zig c++」指令）[17]，也為不同的平台提供標頭檔，包括 C標準函式庫 和 C++標準函式庫，因此 Zig 的 cc 與 c++ 子命令能直接作為交叉編譯器。 [18] [19]

Zig 的開發由 Zig 軟體基金會 (ZSF) 資助，該資金會是一家非營利公司，由 Andrew Kelley 擔任總裁，也有雇傭一些全職員工，同時接受捐款。 [20] [21] [22]

## 範例[编辑]

### Hello World[编辑]

const std = @import("std");

pub fn main() void {
std.debug.print("Hello, {s}!\n", .{"World!"});

### 鏈結串列[编辑]

pub fn main() void {
var node = LinkedList(i32).Node {
.prev = null,
.next = null,
.data = 1234,

var list = LinkedList(i32) {
.first = &node,
.last = &node,
.len = 1,

fn LinkedList(comptime T: type) type {
return struct {
pub const Node = struct {
prev: ?*Node,
next: ?*Node,
data: T,

first: ?*Node,
last:  ?*Node,
len:   usize,

## 參見[编辑]

* C
* C++
* Nim
* Rust
* D

## 參考資料[编辑]

1. ^ Kelley, Andrew. Introduction to the Zig Programming Language. andrewkelley.me.  [8 November 2020]. （原始内容存档于2022-02-21）.
2. ^ 2.0 2.1 Release 0.13.0.
3. ^ Zig has all the elegant simplicity of C, minus all the ways to shoot yourself in the foot. JAXenter. 2017-10-31  [2020-02-11]. （原始内容存档于2021-11-25） （美国英语）.
4. ^ Tired of C? New programming language Zig aims to be more pragmatic and readable. 2017-10-19  [2020-04-22]. （原始内容存档于2021-11-25） （美国英语）.
5. ^ Yegulalp, Serdar. New challenger joins Rust to topple C language. InfoWorld. 2016-08-29  [2020-02-11]. （原始内容存档于2021-11-25） （英语）.
6. ^ Zig language and C. Sina Corp. 2020-07-12  [2020-08-12]. （原始内容存档于2021-11-25）.
7. ^ The Zig Programming Language. ziglang.org.  [2020-02-11]. （原始内容存档于2022-04-01）.
8. ^ Mozilla's Observatory, the Zig programming language, and uSens' VR/AR SDK—SD Times news digest: Aug. 29, 2016. SD Times. 2016-08-29  [2020-02-11]. （原始内容存档于2021-11-25） （美国英语）.
9. ^ The Zig Programming Language. ziglang.org.  [2020-02-11]. （原始内容存档于2022-04-01）.
10. ^ Company, Sudo Null. Sudo Null - IT News for you. SudoNull.  [2020-02-11]. （原始内容存档于2021-11-25） （英语）.
11. ^ Kelley, Andrew. Unsafe Zig is Safer Than Unsafe Rust. andrewkelley.me.  [2020-02-11]. （原始内容存档于2022-02-21）.
12. ^ Tim Anderson 24 Apr 2020 at 09:50. Keen to go _ExtInt? LLVM Clang compiler adds support for custom width integers. www.theregister.co.uk.  [2020-04-24]. （原始内容存档于2020-05-15） （英语）.
13. ^ Documentation - The Zig Programming Language. ziglang.org.  [2020-04-24]. （原始内容存档于2022-03-31）.
14. ^ SD Times news digest: C++20 concepts in Visual Studio 2010 version 16.3, Bootstrap to drop IE support, and Zig 0.60 released. SD Times. 2020-04-14  [2020-04-19]. （原始内容存档于2021-11-25） （美国英语）.
15. ^ A Reply to _The Road to Zig 1.0_. www.gingerbill.org. 2019-05-13  [2020-02-11]. （原始内容存档于2021-09-07） （英国英语）.
16. ^ ziglang/zig, Zig Programming Language, 2020-02-11  [2020-02-11], （原始内容存档于2022-03-30）
17. ^ 0.6.0 Release Notes · The Zig Programming Language. ziglang.org.  [2020-04-19]. （原始内容存档于2022-02-21）.
18. ^ 'zig cc': a Powerful Drop-In Replacement for GCC/Clang - Andrew Kelley. andrewkelley.me.  [2021-05-28]. （原始内容存档于2022-03-17）.
19. ^ Zig Makes Go Cross Compilation Just Work. DEV Community.  [2021-05-28]. （原始内容存档于2022-03-03） （英语）.
20. ^ Jakub Konka on Twitter. Twitter.  [2021-05-28]. （原始内容存档于2021-12-01） （英语）.
21. ^ Announcing the Zig Software Foundation ⚡ Zig Programming Language. ziglang.org.  [2021-05-28]. （原始内容存档于2021-11-15）.
22. ^ Sponsor ZSF ⚡ Zig Programming Language. ziglang.org.  [2021-05-28]. （原始内容存档于2022-02-21）.

## 外部連接[编辑]

* 官方網站
* GitHub （页面存档备份，存于互联网档案馆）

* 查
* 论
* 编

程序设计语言

范型|

| 过程式|

* FORTRAN
* COBOL
* JOVIAL
* ALGOL 60
* JOSS（英语：JOSS）
* BASIC
* QB64（英语：QB64）
* PL/I
* MUMPS（英语：MUMPS）
* ALGOL 68
* Forth
* Pascal
* Turbo Pascal
* C
* Modula-2
* Ada 83
* occam
* Oberon
* Go
* Zig

|

面向对象|

* Simula 67
* Smalltalk
* Objective-C
* Eiffel
* Object Pascal
* Delphi
* Self
* Visual Basic
* Gambas
* Ada 95
* Java
* C#
* Vala

多范型|

* C++
* Modula-3
* Dylan
* Python
* Lua
* JavaScript
* Ruby
* D
* Factor
* Scala
* F#
* F*
* Haxe
* Nim
* Rust
* Dart
* Julia
* Swift

函数式|

* LISP
* Scheme
* Common Lisp
* Clojure
* Logo
* APL/J
* ML
* Standard ML
* OCaml
* Erlang
* Elixir
* Haskell
* Curry
* SAC
* Agda
* Idris
* jq（英语：jq (programming language)）
* Cuneiform

逻辑式|

* Prolog
* Datalog
* Mercury
* AnsProlog

脚本语言|

| 动态语言|

* SNOBOL
* Icon
* REXX
* Perl
* Raku
* Tcl/Tk
* CLOS
* newLISP
* Python
* Lua
* Ruby
* PHP
* Hack
* CFML（英语：ColdFusion Markup Language）
* REBOL
* Julia

|

Shell语言|

* Unix shell
* sh/ash
* csh/tcsh
* ksh
* bash
* zsh
* rc（英语：rc (Unix shell)）
* sed
* AWK
* PowerShell

ECMA-262|

* ECMAScript
* JavaScript
* TypeScript
* CoffeeScript/LiveScript（英语：LiveScript (programming language)）
* Elm
* PureScript
* Reason

特定平台|

| .NET|

* C#
* C++/CLI
* F#
* PowerShell
* VB.NET
* Small Basic

|

JVM|

* Java
* AspectJ（英语：AspectJ）
* Scala
* Clojure
* Groovy
* Kotlin

特定领域|

| 科学计算|

* Speakeasy（英语：Speakeasy (computational environment)）
* IDL
* GDL
* Maxima
* Maple
* MATLAB
* Octave
* Scilab
* Wolfram
* R
* Yorick（英语：Yorick (programming language)）
* SageMath
* Julia

|

GPU计算|

* Cg/HLSL
* GLSL
* Brook（英语：BrookGPU）
* OpenCL
* SYCL
* CUDA/PTX（英语：Parallel Thread Execution）
* Futhark
* SPIR-V（英语：Standard Portable Intermediate Representation）

数据查询|

* SQL
* PL/SQL
* T-SQL
* SQL/PSM（英语：SQL/PSM）
* xBase（英语：xBase）
* XPath
* XQuery（英语：XQuery）
* GraphQL

可视化|

* Simulink
* LabVIEW
* Orange（英语：Orange (software)）
* KNIME（英语：KNIME）
* Scratch
* Snap!
* Power Fx

传媒设计|

* SuperCollider
* Pure Data
* Processing
* ChucK

` `|

| 其它|

* 汇编语言
* APT（英语：APT (programming language)）
* GPSS（英语：GPSS）
* dc
* yacc
* make
* PostScript
* XSLT
* LLVM IR
* WebAssembly

|

* 目录
* 列表
* 历史
* 比较（英语：Comparison of programming languages）
* 时间线（英语：Timeline of programming languages）

*[查]: 查看该模板
*[论]: 讨论该模板
*[编]: 编辑该模板