Ohm의 PEG-to-Wasm 컴파일러 내부
Ohm v18는 기존 파싱 엔진을 완전히 재작성하여, 실제 문법 처리 속도를 50배 이상 향상시키고 메모리 사용량은 약 10%로 줄였습니다.
핵심 기술은 파싱 표현 문법(PEG)을 WebAssembly 모듈로 컴파일하는 방식으로, 기존의 AST 해석 방식을 대체하여 런타임 오버헤드를 크게 줄였습니다.
또한, Wasm 선형 메모리 내에서의 범프 할당(bump allocation)을 도입해 구문 트리(CST) 노드의 메모리 관리를 최적화하고, 블록 희소 표현(block-sparse representation)을 활용한 메모이제이션으로 메모리 낭비를 최소화했습니다.
이외에도, 매개변수화된 규칙을 컴파일 타임에 특수화하여 런타임 복잡성을 낮추고, 공백 처리 최적화로 불필요한 노드 생성을 지연시켜 성능을 크게 개선하였습니다.
이러한 기술적 진보는 PEG 파서의 효율성과 확장성을 높여, 복잡한 문법 분석 작업에 실용적인 가치를 제공합니다.