프로그래밍 언어를 만들어 SQL 한 줄로 컴파일하다
Arrows to arrows, categories to queries (2025)
Haskell 커뮤니티에서 활동하는 isovector가 catlang이라는 장난감 프로그래밍 언어를 만들었다. 중간 언어가 카테고리 이론 기반의 화살표 표기법으로 되어 있어, 컴파일하면 하나의 거대한 SELECT 문이 나온다. while 루프처럼 동작하는 count 함수가 WITH RECURSIVE를 포함한 끔찍하게 복잡한 SQL로 변환되는 과정을 보여준다.
그래서 왜 이걸 만들었냐고? 언어의 실제 기능, 즉 중간 언어가 온갖 추상 카테고리 이론 쓰레기로 이루어져 있다는 점을 시험해볼 재미있는 컴파일 타깃이 필요했기 때문이다.