5P by skuldnorniern 7시간전 | ★ favorite | 댓글 1개

Releasing Lamina 블로그 포스트

Lamina는 Intermediate Representation code (IR code)를 입력으로 받아 머신 코드/바이너리를 생성하는 컴파일러 백엔드 프로젝트입니다.
제 지난 4~5년간의 언어/컴파일러 공부와 프로젝트들을 바탕으로 시작했으며, 컴파일러에 관심 있는 분들께 직관적으로 이해 가능한 간단한 레퍼런스가 되길 바랍니다.

현재 지원 플렛폼

  • macOS (aarch64)
  • Linux (x86_64)
  • WebAssembly (wasm32/64)

지원 예정 플렛폼

  • Windows (x86_64)
  • macOS (Intel)
  • Linux (aarch64)
  • Risc-V

Windows aarch64의 경우 필자에게 장비가 없어 우선순위 낮아 생략

현재 상태

현재 컴파일러 최적화 패스가 없어, 속도는 C#보다 소폭 느린 수준입니다.
다음 업데이트 중 Machine IR 레이어가 구현될 예정이며, 그와 함께 최적화 패스의 도입이 예정되어 있습니다.

또한 0.1 릴리즈 전까지 Testcode 와 codegen 부분에서 AI를 이용해 생성된 내용 대부분 삭제 후 재작성 예정

컴파일러 프론트엔드 예시

Brainfuck-Lamina Repo - 간단한 Brainfuck 컴파일러

이후 개발 예정 기능

  • GPU 코드 생성 지원 (이후 자체구현 ML 라이브러리의 백엔드로 활용)
  • JIT 컴파일 지원
  • 디버거 등 툴셋 제공
  • 자체구현 어셈블러, 링커 제공 (기존 유틸 지원은 유지)

대단하시네요 ㄷㄷ