Zig
Zig是一个命令式、通用、静态类型、编译的系统编程语言。 [3] [4]以「强健性、最佳性以及可维护性」为内核理念。[5] [6]它支持编译时泛型与反射、交叉编译以及手动内存管理。 [7]目标为改进 C语言[8] [9] ,同时参考从 Rust [10] [11]和其他语言。Zig 有许多低级编程的功能,例如紧致结构(成员间没有填充的结构)、任意大小的整数[12]以及多指针类型。[13]
![]() | |
多重编程范式: 命令式, 并行, 进程式, 函数 | |
设计者 | Andrew Kelley |
2016年2月8日[1] | |
当前版本 |
|
型态系统 | 静态, 强, 自动推导, 结构化, 泛型 |
系统平台 | x86-64, ARM, MIPS, IA-32, WebAssembly, RISC-V |
操作系统 | 跨平台 |
许可证 | MIT许可证 |
文档扩展名 | .zig, .zir |
网站 | ziglang |
启发语言 | |
C语言, C++, LLVM IR, Go, Rust, JavaScript |
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,
};
}
参考数据
- Kelley, Andrew. . andrewkelley.me. [8 November 2020]. (原始内容存档于2022-02-21).
- .
- . JAXenter. 2017-10-31 [2020-02-11]. (原始内容存档于2021-11-25) (美国英语).
- . 2017-10-19 [2020-04-22]. (原始内容存档于2021-11-25) (美国英语).
- Yegulalp, Serdar. . InfoWorld. 2016-08-29 [2020-02-11]. (原始内容存档于2021-11-25) (英语).
- . Sina Corp. 2020-07-12 [2020-08-12]. (原始内容存档于2021-11-25).
- . ziglang.org. [2020-02-11]. (原始内容存档于2022-04-01).
- . SD Times. 2016-08-29 [2020-02-11]. (原始内容存档于2021-11-25) (美国英语).
- . ziglang.org. [2020-02-11]. (原始内容存档于2022-04-01).
- Company, Sudo Null. . SudoNull. [2020-02-11]. (原始内容存档于2021-11-25) (英语).
- Kelley, Andrew. . andrewkelley.me. [2020-02-11]. (原始内容存档于2022-02-21).
- Tim Anderson 24 Apr 2020 at 09:50. . www.theregister.co.uk. [2020-04-24]. (原始内容存档于2020-05-15) (英语).
- . ziglang.org. [2020-04-24]. (原始内容存档于2022-03-31).
- . SD Times. 2020-04-14 [2020-04-19]. (原始内容存档于2021-11-25) (美国英语).
- . www.gingerbill.org. 2019-05-13 [2020-02-11]. (原始内容存档于2021-09-07) (英国英语).
- , Zig Programming Language, 2020-02-11 [2020-02-11], (原始内容存档于2022-03-30)
- . ziglang.org. [2020-04-19]. (原始内容存档于2022-02-21).
- . andrewkelley.me. [2021-05-28]. (原始内容存档于2022-03-17).
- . DEV Community. [2021-05-28]. (原始内容存档于2022-03-03) (英语).
- . Twitter. [2021-05-28]. (原始内容存档于2021-12-01) (英语).
- . ziglang.org. [2021-05-28]. (原始内容存档于2021-11-15).
- . ziglang.org. [2021-05-28]. (原始内容存档于2022-02-21).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.