Rust 빌림 검사기를 별칭 기반으로 재구성한 실험

An alias-based formulation of the borrow checker (2018)

Rust All Hands 이후, 저자는 기존 NLL(비-렉시컬 라이프타임) 제안의 한계를 극복하고 계산 속도를 높이기 위해 빌림 검사기의 대안적 정식화를 연구해 왔다. 이 새로운 접근법은 MIR(중간 표현)에서 라이프타임을 '대출(loans)의 집합'으로 취급하며, Datalog 규칙과 differential-dataflow 크레이트를 사용해 구현한 프로토타입이 전체 NLL 테스트 스위트를 통과하고 기존 NLL이 처리하지 못하는 일부 사례까지 처리한다. 다만 성능은 아직 최적화 전이라 기존 분석보다 느리다. 최종 사용자 관점에서는 차이가 없지만, 컴파일러가 프로그램을 바라보는 방식에 미묘한 변화가 있어 향후 언어 기능에 영향을 줄 수 있다.

핵심 아이디어는 분석이 각 지역 변수의 값을 직접 계산하는 대신, 제어 흐름 그래프의 각 지점에서 지역들 사이에 성립해야 하는 부분 집합 관계를 계산한다는 것입니다.

같은 날의 다른 소식

2026-08-10