# Show GN: Lamina: LLVM 없이 네이티브 코드를 생성하는 멀티 아키텍처 컴파일러 백엔드

> Clean Markdown view of GeekNews topic #24297. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24297](https://news.hada.io/topic?id=24297)
- GeekNews Markdown: [https://news.hada.io/topic/24297.md](https://news.hada.io/topic/24297.md)
- Type: show
- Author: [miniex](https://news.hada.io/@miniex)
- Published: 2025-11-11T18:10:49+09:00
- Updated: 2025-11-11T18:10:49+09:00
- Original source: [github.com/SkuldNorniern](https://github.com/SkuldNorniern/lamina)
- Points: 4
- Comments: 0

## Topic Body

안녕하세요, 제 지인이 최근에 컴파일러 백엔드를 개발했는데 꽤 흥미로워서 공유합니다.  
  
1. 프로젝트 소개  
  
Lamina는 LLVM 같은 무거운 의존성 없이, SSA 기반 IR에서 바로 네이티브 코드를 생성하는   
멀티 아키텍처 컴파일러 백엔드입니다. x86_64, AArch64, RISC-V, WebAssembly를   
하나의 IR로 지원합니다.  
  
간단한 DSL이나 실험적인 언어를 만들 때마다 LLVM을 빌드하고 수 GB짜리 의존성을   
관리하는 게 너무 무겁다고 느꼈다고 합니다. "그냥 IR 넣으면 어셈블리 나오는   
가벼운 거 하나 만들어보자"는 생각으로 시작했다네요.  
  
2. 주요 특징  
  
▸ 외부 의존성 제로  
  LLVM이나 Cranelift 없이 IR에서 머신코드로 직접 변환합니다.  
  빌드 시간도 짧고 배포도 간단합니다.  
  
▸ SSA 기반 IR  
  Static Single Assignment 형태라 최적화 파이프라인 구성이 깔끔합니다.  
  
▸ 명시적 메모리 모델  
  스택/힙 할당을 IR 레벨에서 명확히 구분해서, 메모리 분석이 쉽습니다.  
  
▸ 멀티 아키텍처  
  하나의 IR로 여러 타겟 지원:  
  - x86_64 (Linux, macOS, Windows)  
  - AArch64/ARM64 (Linux, macOS, Windows)  
  - RISC-V (RV32/64/128)  
  - WebAssembly (32/64-bit)  
  
▸ IRBuilder API  
  함수형 스타일로 IR을 구성할 수 있는 API를 제공합니다.  
  타입 안전하게 제어 흐름이나 메모리 연산을 표현할 수 있다고 하네요.  
  
3. 현재 상태  
  
기본 산술 연산, 조건/분기/루프 같은 제어 흐름, 비재귀 함수 호출,   
간단한 최적화가 동작합니다.  
  
프로덕션 레디는 아니지만, 토이 랭귀지나 DSL 백엔드로 실험해보기엔   
충분하다고 합니다.  
  
4. 사용 워크플로우  
  
대략 이런 식으로 쓴다고 하네요:  
  
1. 소스 언어 파싱해서 AST 만들고  
2. IRBuilder로 AST를 Lamina IR로 변환  
3. Lamina가 최적화하고 타겟별 네이티브 코드 생성  
  
IR 생성 부분만 잘 작성하면, 나머지는 Lamina가 알아서 처리합니다  
  
5. 마치며.  
  
개인적으로 "컴파일러 백엔드를 만든다"는 게 되게 먼 이야기처럼 느껴졌는데,  
지인이 실제로 만드는 걸 보니까 신기하더라고요.  
  
물론 LLVM 수준의 성숙도나 최적화는 아니지만, 가볍게 실험하거나   
교육용으로 쓰기엔 꽤 괜찮아 보입니다.  
  
저도 실제로 lamina를 통해 엄준식 랭 컴파일러를 개발해보았습니다.  
  
관심 있으신 분들은 한번 살펴보셔도 좋을 것 같습니다!

## Comments



_No public comments on this page._
