상위 질문
타임라인
채팅
관점

Zig (프로그래밍 언어)

위키백과, 무료 백과사전

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

같이 보기

각주

외부 링크

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads