빠른 산술 바이트코드 VM(2부): Haskell의 컴파일러와 디컴파일러

2025-08-28
빠른 산술 바이트코드 VM(2부): Haskell의 컴파일러와 디컴파일러

이 게시물은 Haskell에서 산술 표현식을 위한 빠른 바이트코드 가상 머신의 컴파일러와 디컴파일러에 대해 자세히 설명하는 시리즈 게시물의 두 번째 부분입니다. AST 해석보다 바이트코드가 왜 더 빠른지 설명하고, 스택 기반 바이트코드 가상 머신을 설계하고, Num, BinOp, Var, Let이라는 AST 노드에 대한 바이트코드 명령어를 설명합니다. 컴파일러는 강력한 오류 처리와 함께 미리 할당된 바이트 배열과 포인터 조작을 사용하여 성능을 최적화합니다. 다양한 데이터 구조와 제어 흐름을 비교한 성능 벤치마크를 보여줍니다. 마지막으로 디버깅과 테스트를 지원하기 위해 디컴파일러를 구현합니다.

더 보기
개발

Haskell로 작성된 산술 바이트코드 가상 머신: 파서

2025-08-03
Haskell로 작성된 산술 바이트코드 가상 머신: 파서

이 게시물은 Haskell에서 산술 표현식을 위한 바이트코드 가상 머신을 구축하는 프로젝트의 첫 번째 부분인 파서에 대해 자세히 설명합니다. 이 VM은 let 바인딩 및 중첩된 let 표현식을 포함한 간단한 산술 표현식을 구문 분석, 컴파일, 해석 및 실행합니다. 저자는 표현식 구문, 파서 구현(attoparsec 라이브러리 사용), 오류 처리를 설명합니다. 파서의 정확성을 검증하기 위한 단위 테스트가 제시됩니다. AST 인터프리터의 구현 및 테스트에 대한 간략한 개요도 포함되어 있습니다. 향후 게시물에서는 컴파일러와 가상 머신을 다룹니다.

더 보기
개발