C3 배우기
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
C 언어 및 시스템 프로그래밍 경험이 있는 개발자, Zig, Rust 등 현대적 시스템 언어에 관심 있는 개발자
핵심 요약
- C3 는 C 언어 기반의 고급 기능을 갖춘 시스템 프로그래밍 언어로, 모듈, 연산자 오버로딩, 제네릭, 컴파일 타임 실행 등의 기능 제공
- 에러 처리, defer, foreach, 옵셔널 타입, contracts 등 생산성과 안정성을 강화한 문법 설계
- Zig, Rust, C 등의 언어의 장점을 결합한 설계로, 안전한 메모리 관리와 메타프로그래밍 기능을 지원
섹션별 세부 요약
C3의 주요 특징
- C3 는 C 언어를 기반으로 하며, 모듈, 연산자 오버로딩, 제네릭, 컴파일 타임 실행 등의 고급 기능 제공
- 에러 처리, defer, foreach 등 생산성과 안정성을 강화한 문법 설계
- 옵셔널 타입, contracts, 네임스페이스 등 안전성과 명확성을 향상시킴
- Zig, Rust, C 등의 언어의 장점을 결합한 설계로, 안전한 메모리 관리와 메타프로그래밍 기능을 지원
문법 및 기능 세부 설명
- foreach 문법 지원,
&
기호로 참조 기반 반복 가능 - switch문에서 암시적 break 지원,
nextcase
키워드로 케이스 이동 가능 - defer 예약된 구문을 역순으로 실행하여 자원 정리 가능
- struct 내부에 서브 struct/union 허용, tagged union 패턴 설계 간편
- ? 기호로 옵셔널 타입 지원,
catch
키워드로 에러 분기 가능 - Require/Ensure 조건을
< .. >
로 명시, 컴파일 타임 fold 분석 지원
빌드 및 프로젝트 구성
c3c init
명령으로 표준 폴더 구조 생성(예:LICENSE
,README.md
,project.json
,src
)- LLVM, LLD 설치 필요, CMake 플래그를 통해 경로 지정 가능
- 재귀 하강 파서(Recursive Descent Parser) 및 계산기 핵심 로직 구현 가능
- 임시 할당자(tmem) 사용, 스코프 종료 시 자동 메모리 해제
메타프로그래밍 및 리플렉션
- 매크로(
macro
) 키워드로 컴파일 타임 평가 가능 $
로 컴파일 타임 파라미터,#
로 평가 전 전달 가능- 리플렉션, 메타프로그래밍에 적합하며,
alignof
,typeid
,methodsof
등 메타 정보 관련 함수 지원
기타 주요 기능
- 바이트 시퀀스 직접 선언(예:
b64"..." x"..."
) - 다양한 기본형(int, uint, char, bool, float 등) 및 포인터/사이즈 계열 타입(iptr, uptr, isz, usz 등) 지원
- 연산자 오버로딩, 제네릭, any 타입, bitstructs 등 폭 넓은 기능 세트 제공
- 메모리 관리 방식(tmem, mem)과 함수 단위 할당자 전달 패턴 지원
결론
- C3는 C 언어 기반의 고급 시스템 프로그래밍 언어로, 모듈성, 안전한 메모리/에러 처리, 메타프로그래밍, 직관적 빌드 시스템 등의 기능이 강점이며, Zig, Rust, C 등의 언어의 장점을 결합한 설계로, 실무에서의 차세대 대안 언어로 주목받고 있음.