첫 문단부터 문제가 있군요... 프로그래밍 언어 쪽에서 컴파일 시간 계산은 이른바 멀티 스테이지 프로그래밍이라고 하여 메타 프로그래밍을 구현하는 방법 중 하나입니다. 멍청한 아이디어가 전혀 아닙니다.
멀티 스테이지 프로그래밍을 "어쩌다" 구현해 버린 C++ 같은 언어들은 각 스테이지(이 경우 컴파일 시간과 실행 시간)에서 코드가 극적으로 달라지는 문제가 생기는데(C++는 이제 constexpr가 있지만 여전히 이리 저리 부족하죠), Zig는 처음부터 멀티 스테이지 프로그래밍을 염두에 두고 언어를 설계해서 컴파일 시간과 실행 시간에 거의 같은 코드를 쓸 수 있다는 장점과 컴파일 시간에 예측할 수 있는 사항이 별로 없다는 단점을 함께 지니게 되었습니다.
첫 문단부터 문제가 있군요... 프로그래밍 언어 쪽에서 컴파일 시간 계산은 이른바 멀티 스테이지 프로그래밍이라고 하여 메타 프로그래밍을 구현하는 방법 중 하나입니다. 멍청한 아이디어가 전혀 아닙니다.
멀티 스테이지 프로그래밍을 "어쩌다" 구현해 버린 C++ 같은 언어들은 각 스테이지(이 경우 컴파일 시간과 실행 시간)에서 코드가 극적으로 달라지는 문제가 생기는데(C++는 이제 constexpr가 있지만 여전히 이리 저리 부족하죠), Zig는 처음부터 멀티 스테이지 프로그래밍을 염두에 두고 언어를 설계해서 컴파일 시간과 실행 시간에 거의 같은 코드를 쓸 수 있다는 장점과 컴파일 시간에 예측할 수 있는 사항이 별로 없다는 단점을 함께 지니게 되었습니다.