피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Heap-less Arena 기반 AST 설계로 60KB ELF 바이너리 구현
A program is a tree — building a Verbose compiler in Verbose
AI 요약
Context
기존 verbosec 컴파일러의 일부 로직이 Rust로 작성되어 바이너리 검증 시 Rust 코드에 대한 신뢰가 강제되는 구조적 한계 존재. 소스 코드부터 바이너리까지 전체 경로를 검증 가능한 Verbose 언어로 대체하여 신뢰 체계를 일원화할 필요성 제기.
Technical Solution
- Sum Type 기반의 Recursive 구조를 통해 프로그램의 계층적 특성을 추상화한 AST 설계
- Heap과 Pointer를 완전히 배제한 Index Arena 방식을 도입하여 메모리 관리 복잡도 제거
- max_depth(4096) 및 max_nodes(65535)의 정적 경계 설정을 통해 정지 문제(Termination) 증명 가능 구조 구축
- 하위 노드부터 상위 노드로 구축하는 Bottom-up 방식을 통해 Index 기반의 트리 연결성 확보
- Tokenizer, Parser, Interpreter가 동일한 Arena를 공유하여 데이터 이동 최소화 및 일관성 유지
실천 포인트
1. 런타임 오버헤드 제거가 필수적인 임베디드/보안 시스템 설계 시 Heap-less Arena 구조 검토
2. 재귀적 데이터 구조 설계 시 정적 경계(Static Bound)를 설정하여 메모리 오버플로우 및 무한 루프 가능성 사전 차단
3. 외부 언어 의존성을 줄여 전체 시스템의 Trust Boundary를 최소화하는 설계 방향성 고려