구문 규칙과 call/cc의 반복된 적용을 사용한 정규 순서 직접 스타일 베타 평가기

2025-09-17

이 논문은 위생적인 Scheme 매크로 내에서 call/cc의 덜 알려진 응용 프로그램, 특히 지루한 람다 계산을 돕는 데 사용하는 방법을 탐구합니다. 저자는 구문 규칙과 call/cc의 반복된 응용 프로그램을 교묘하게 결합한 정규 순서 직접 스타일 베타 정규화기를 제시하고, CPS 변환과 독창적인 직접 스타일 람다 계산기를 사용하여 그 정확성을 증명합니다. 이 논문은 또한 구분된 연속에 대해서도 논의하고, 간단한 매크로가 prompt 및 control과 같은 다양한 구분된 연속 연산자를 어떻게 구현할 수 있는지 보여줍니다. call/cc 기반 계승 함수 구현과 구분된 연속에 대한 논의는 이 접근 방식의 우아함과 실용성을 강조합니다.

더 보기
개발

증분 컴파일러 과정: OCaml을 사용한 Tiger에서 x86-64 어셈블리까지

2025-04-05

고급 언어인 Tiger를 x86-64 기계 코드로 컴파일하는 컴파일러를 구축하는 것을 목표로 하는 매우 실용적인 컴파일러 과정입니다. 이 과정에서는 OCaml을 사용하며, 테스트 주도 개발, 버전 관리, 코드 재사용을 중시합니다. 언어와 컴파일러 기능을 단계적으로 확장하는 반복적인 증분 개발 방식을 채택하며, 확장성을 높이기 위해 tagless-final 스타일을 최대한 활용합니다. 이 과정에서는 구문 분석, 형식 검사, 최적화, 어셈블리 생성 등 컴파일러 과정의 표준적인 주제를 다루지만, 비전통적인 방식으로 접근합니다.

더 보기
개발 증분 개발