⚡ 간결한 언어
프로그래밍 언어에 대한 지식을 디버깅하는 대신, 프로그램의 디버깅에만 집중하세요.
- 숨겨진 흐름 제어 없음.
- 숨겨진 메모리 할당 없음.
- 전처리기와 매크로 없음.
⚡ 컴파일 타임 코드 실행
컴파일 타임 코드 실행 기능과 지연 평가 기능을 활용한, 메타프로그래밍의 새로운 접근법을 확인해보세요.
- 어떤 함수든 컴파일 타임에 호출 가능.
- 런타임 오버헤드 없이 모든 자료형을 값처럼 수정 가능.
- 컴파일 타임 코드 실행 시 대상 아키텍처를 그대로 에뮬레이트 가능.
⚡ Zig를 이용한 코드 관리
C/C++/Zig 코드베이스를 점진적으로 향상시키세요.
- Zig를 크로스 컴파일을 지원하며, 다른 컴파일러를 바로 대체할 수 있는 독립적인 C/C++ 컴파일러로 사용 가능.
zig build
를 이용하여 모든 플랫폼에서 일관성 있는 개발 환경 구축 가능.- C/C++ 프로젝트에 Zig 컴파일 단위를 추가하여, Zig 표준 라이브러리가 제공하는 다양한 기능을 C/C++ 코드에서도 사용 가능.
const std = @import("std");
const parseInt = std.fmt.parseInt;
test "parse integers" {
const input = "123 67 89,99";
const ally = std.testing.allocator;
var list = std.ArrayList(u32).init(ally);
// Ensure the list is freed at scope exit.
// Try commenting out this line!
defer list.deinit();
var it = std.mem.tokenizeAny(u8, input, " ,");
while (it.next()) |num| {
const n = try parseInt(u32, num, 10);
try list.append(n);
}
const expected = [_]u32{ 123, 67, 89, 99 };
for (expected, list.items) |exp, actual| {
try std.testing.expectEqual(exp, actual);
}
}
$ zig test index.zig 1/1 index.test.parse integers...OK All 1 tests passed.
Zig Software Foundation
ZSF는 501(c)(3) 비영리 단체입니다.
Zig Software Foundation은 Zig를 만든 Andrew Kelley가 프로그래밍 언어의 개발을 지원하기 위해 2020년에 창립한 비영리 단체입니다. 현재, ZSF는 소수의 프로젝트 핵심 기여자에게만 회사 수준의 급여를 지급할 수 있는 상황입니다. 저희는 미래에 더 많은 프로젝트 핵심 기여자분들에게 급여를 지급할 수 있기를 바라고 있습니다.
Zig Software Foundation은 기부금만으로 운영됩니다.
더 알아보기
후원 기업
아래 기업은 Zig Software Foundation을 재정적으로 지원해주고 있습니다.
GitHub 스폰서
Zig를 후원해주시는 분들 덕분에, 이 프로젝트는 기업의 주주가 아닌 오픈 소스 커뮤니티가 운영하고 있습니다.
특히, 아래 명단에 계신 분들은 Zig를 매달 $200 이상 후원해주시고 있습니다:
이 목록은 매일 업데이트됩니다.