상위 질문
타임라인
채팅
관점
Zig (프로그래밍 언어)
위키백과, 무료 백과사전
Remove ads
Zig(지그)는 명령형, 범용 목적의 정적 자료형 체계, 컴파일 시스템 프로그래밍 언어이며 앤드루 켈리가 설계했다.[3][4] 이 언어는 내구성, 최적성, 유지보수성을 위해 설계되어 있으며[5][6] 컴파일 타임, 제네릭스, 반영, 평가, 크로스 컴파일, 수동 메모리 관리를 지원한다.[7] 이 언어의 주요 목표는 C 언어 기반에서 개선점을 찾으면서[5][8] 러스트 등의 장점을 취하는 것이다.[9][5] 지그는 저급 프로그래밍, 특히 필드간 패딩이 없는 구조체(packed struct), 무작위 폭 정수,[10] 다중 포인터형[11] 등 수많은 기능을 보유하고 있다.
스테이지 1 컴파일러는 지그와 C++로 개발되어 있으며 LLVM 13을 백엔드로 사용하며 네이티브 타겟 중 다수를 지원한다. 컴파일러는 MIT 허가서로 배포되는 오픈 소스이다.
Remove ads
예시
Hello World
const std = @import("std");
pub fn main() !void {
const stdout = std.io.getStdOut().writer();
try stdout.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,
};
}
Remove ads
같이 보기
각주
외부 링크
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads