피드로 돌아가기
I Built My Own Programming Language at 19 – Introducing Akro
Dev.toDev.to
Backend

Go 기반의 Recursive Descent Parser를 활용한 JS Transpiler 언어 Akro 설계

I Built My Own Programming Language at 19 – Introducing Akro

Ankit bishnoi2026년 5월 6일2advanced

Context

Python의 실행 속도 저하, Go의 과도한 Verbosity, JavaScript의 구조적 불명확성이라는 언어별 트레이드오프 발생. 세 언어의 장점을 결합하여 생산성과 실행 성능을 동시에 확보한 통합 언어 환경 구축 필요.

Technical Solution

  • Go 언어로 구현한 Hand-written Lexer를 통한 정밀한 토큰 분석 및 입력 데이터 처리
  • Recursive Descent Parser 채택으로 구문 분석 단계의 논리적 구조화 및 유연한 문법 확장성 확보
  • Tree-walking Interpreter 구조를 통한 AST(Abstract Syntax Tree) 기반의 즉각적인 코드 실행 환경 구현
  • AST to JavaScript Transpiler 설계를 통한 브라우저 런타임 호환성 및 배포 편의성 달성
  • Type Inference 및 Pattern Matching 도입으로 런타임 안정성 강화와 코드 가독성 개선
  • Struct 및 Method Implementation 구조 설계를 통한 객체 지향적 데이터 모델링 지원

- 도메인 특화 언어(DSL) 설계 시 AST 기반의 Transpiler 구조를 통해 기존 생태계(JS)의 런타임을 활용하는 전략 검토 - 복잡한 문법 분석이 필요한 경우 Generator 기반 파서보다 제어권이 높은 Recursive Descent Parser 도입 고려 - 정적 타입의 안정성과 동적 타입의 생산성을 절충하기 위한 Type Inference 메커니즘 설계 적용

원문 읽기