피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Rust 기반 5단계 파이프라인을 통한 CrabPascal 컴파일러 설계
Inside CrabPascal: The Five-Phase Compiler Pipeline | Pipeline do compilador em cinco fases
AI 요약
Context
전형적인 컴파일러 이론을 현대적 언어인 Rust로 구현하여 .pas 소스 코드를 실행 가능한 형태로 변환하는 구조 설계.
Technical Solution
- Lexer를 통한 문자열 단위 스캔으로 키워드 및 식별자 중심의 Token 추출
- Parser 단계에서 Token을 조합하여 문법 구조를 검증하고 AST(Abstract Syntax Tree) 구축
- Semantic Analyzer의 Symbol Table 구성을 통한 타입 호환성 및 OOP 구조의 정적 검증
- 실행 모드에 따른 Code Generation 전략 분리 및 run 명령 시 AST 직접 순회 방식의 Runtime Dispatch 적용
- build-exe 명령 시 C 소스 생성 후 gcc/clang 외부 컴파일러를 활용한 최적화 위임
- Rust의 모듈 시스템을 컴파일러 파이프라인 단계와 1:1 매핑하여 유지보수 및 디버깅 효율성 강화
실천 포인트
- 컴파일러 설계 시 각 단계(Lexer-Parser-Semantic)의 경계를 명확히 분리하여 모듈화할 것 - AST를 serde로 직렬화하여 중간 단계의 상태를 가시화하고 디버깅 효율을 높일 것 - 자체 최적화 구현보다 검증된 외부 컴파일러(gcc, clang)의 최적화 레이어를 활용하는 전략을 검토할 것 - 에러 메시지의 유형(Syntax, Identifier, Runtime Crash)에 따라 문제 발생 단계를 즉시 특정하는 구조를 구축할 것