피드로 돌아가기
Inside CrabPascal: The Five-Phase Compiler Pipeline | Pipeline do compilador em cinco fases
Dev.toDev.to
Infrastructure

Rust 기반 5단계 파이프라인을 통한 CrabPascal 컴파일러 설계

Inside CrabPascal: The Five-Phase Compiler Pipeline | Pipeline do compilador em cinco fases

CrabPascal2026년 6월 4일5intermediate

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)에 따라 문제 발생 단계를 즉시 특정하는 구조를 구축할 것

원문 읽기