Zig (프로그래밍 언어)

Zig(지그)는 명령형, 범용 목적의 정적 자료형 체계, 컴파일 시스템 프로그래밍 언어이며 앤드루 켈리가 설계했다. 이 언어는 내구성, 최적성, 유지보수성을 위해 설계되어 있으며 컴파일 타임, 제네릭스, 반영, 평가, 크로스 컴파일, 수동 메모리 관리를 지원한다. 이 언어의 주요 목표는 C 언어 기반에서 개선점을 찾으면서 러스트 등의 장점을 취하는 것이다. 지그는 저급 프로그래밍, 특히 필드간 패딩이 없는 구조체(packed struct), 무작위 폭 정수, 다중 포인터형 등 수많은 기능을 보유하고 있다.

스테이지 1 컴파일러는 지그와 C++로 개발되어 있으며 LLVM 13을 백엔드로 사용하며 네이티브 타겟 중 다수를 지원한다. 컴파일러는 MIT 허가서로 배포되는 오픈 소스이다.

 예시 
 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,
    };
}

 같이 보기 
 C (프로그래밍 언어)
 C++
 님 (프로그래밍 언어)
 러스트 (프로그래밍 언어)
 D (프로그래밍 언어)

 각주 

 외부 링크 

 Zig on GitHub
 Movie: Introducing Zig
 Movie: The Road to 1.0
 Zig Weekly 

분류:프로그래밍 언어
분류:크로스 플랫폼 자유 소프트웨어
분류:크로스 플랫폼 소프트웨어
분류:임베디드 시스템
분류:자유 컴파일러와 인터프리터
분류:자유 라이브러리
분류:정적 타입 프로그래밍 언어
분류:MIT 라이선스 소프트웨어
분류:시스템 프로그래밍 언어
분류:C 컴파일러