Zig

TechPedia
LunaStev (토론 | 기여)님의 2025년 9월 9일 (화) 02:11 판 (새 문서: {{소프트웨어 정보 | 이름 = Zig | 로고 = 120px | 개발자 = Andrew Kelley | 출시일 = 2016년 2월 8일 | 최신 버전 = 0.15.1 | 확장자 = '''.zig''', .zir, .zigr, .zon | 라이선스 = MIT | 웹사이트 = https://ziglang.org/ }} '''Zig'''는 2016년 2월 8일 '''Andrew Kelley'''가 개발한 프로그래밍 언어이다. == 역사 == * 2016년, 첫 발표함. * 2025년, 0.15.1 출시함. * 이후 활발히...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
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 사용

예제 코드

가장 유명한 예제는 "Hello, World!" 출력이다.

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);
    }
}

활용

관련 문서

참고 자료