선형 유형과 분리 논리는 훌륭하지만 프로그래머의 노력이 많이 필요할 수 있습니다. 예를 들어 Rust에서 안전한 링크 된 목록을 작성하는 것은 매우 어려울 수 있습니다.
그러나 덜 엄격한 보증에도 불구하고 훨씬 적은 프로그래머 노력이 필요한 대안이 있습니다. (꽤 오래된) 작업 흐름은 (일반적으로 스택) 영역을 사용하여 메모리 안전을 보장하는 것입니다. 영역 유추를 사용하여 컴파일러는 할당 된 데이터가 들어갈 영역을 정적으로 결정하고 범위를 벗어날 때 영역을 할당 해제 할 수 있습니다.
영역 유추는 아마도 안전하고 (접근 가능한 메모리를 할당 해제 할 수 없음) 최소한의 프로그래머 간섭이 필요하지만 "총"이 아닙니다 (즉, "아무것도하지 않는 것보다 훨씬 낫지 만 여전히 메모리가 누출 될 수 있음"). 실제로 GC. 그만큼MLtonML Kit 컴파일러는 리전을 사용하여 대부분의 GC 호출을 제거하지만 여전히 메모리가 누출되므로 여전히 GC가 있습니다. 지역의 초기 개척자 중 일부에 따르면 지역 유추는 실제로이 목적을 위해 발명되지는 않았습니다 (자동 병렬화를위한 것입니다). 그러나 방금 메모리 관리에도 사용될 수 있다는 것이 밝혀졌습니다.
우선 Mads Tofte와 Jean-Pierre Talpin의 "영역 스택을 사용하여 유형별 값별 호출 λ- 미적분의 구현"이라는 논문을 참조하십시오. 지역 유추에 대한 논문을 더 보려면 M. Tofte와 J.-P.의 다른 논문을 찾아보십시오. Pierre Jouvelot의 작품 중 일부인 Talpin과 Greg Morrisett, Mike Hicks, 그리고 Cyclone에 대한 Dan Grossman의 논문 시리즈.