Zig
Zig | |
---|---|
![]() | |
개발사 | |
개발자 | Andrew Kelley |
최초 출시 | 2016년 2월 8일 |
최신 버전 | 0.15.1 |
지원 운영체제 | |
플랫폼 | |
프로그래밍 언어 | |
라이선스 | MIT |
웹사이트 | 공식 사이트 |
Zig는 2016년 2월 8일 Andrew Kelley가 개발한 프로그래밍 언어이다.
역사
- 2016년, 첫 발표함.
- 2025년, 0.15.1 출시함.
- 이후 활발히 커뮤니티에서 개발이 되고 있음.
주요 특징
Zig 언어는 다음과 같은 특징을 가진다:
- 간결하고 명확한 문법 → C와 비슷하지만 더 안전함
- 저수준 메모리 접근(포인터, 수동 메모리 관리) → 시스템 프로그래밍에 적합
- 플랫폼 및 아키텍처 간 강력한 이식성 (크로스 컴파일 지원이 뛰어남)
- 표준 라이브러리 제공 → 파일 입출력, 문자열 처리, 메모리 관리 등 기본 기능 지원
- 컴파일 타임 실행(Comptime) 기능 → 빌드 시점에 코드 실행 및 최적화 가능
- 오류 처리 방식이 명확함 → 예외(Exception) 대신 에러 집합(Error Set)과 try/catch 사용
예제 코드
Zig 공식 홈페이지에 예제이다.
const std = @import("std");
const parseInt = std.fmt.parseInt;
test "parse integers" {
const input = "123 67 89,99";
const gpa = std.testing.allocator;
var list: std.ArrayList(u32) = .empty;
// 리스트가 스코프 종료 시 해제되도록 보장한다.
// 이 줄을 주석 처리해보라!
defer list.deinit(gpa);
var it = std.mem.tokenizeAny(u8, input, " ,");
while (it.next()) |num| {
const n = try parseInt(u32, num, 10);
try list.append(gpa, n);
}
const expected = [_]u32{ 123, 67, 89, 99 };
for (expected, list.items) |exp, actual| {
try std.testing.expectEqual(exp, actual);
}
}