기타 Lobsters · 5일 전

러스트(Rust) 가변 참조 제약 깨부쉈다는 새 프로그래밍 언어 '발렌' 등장

핵심 요약
  • 러스트와 C 바인딩 없이 직접 연동되는 실험적 언어 발렌(Valen)의 메모리 안전성 모델이 공개되었습니다.
  • 러스트의 엄격한 가변/공유 참조 제약을 완화하는 '그룹 빌림' 기법을 도입해 코드를 대폭 간소화했습니다.
  • 심지어 러스트 객체에 대해서도 경계를 넘어 복수의 가변 참조를 안전하게 유지할 수 있다고 밝혔습니다.
요약 프로그래밍 언어 발레(Vale)의 후속작으로 개발 중인 실험적 언어 발렌(Valen)의 개발자 에반 오바디아(Evan Ovadia)가 C 언어 래퍼나 바인딩 없이 Rust 컴파일러와 직접 연동해 러스트 함수를 직접 호출하고 메모리 안전성을 검증하는 프로토타입을 공개했습니다. 발렌은 기존 러스트의 핵심 제약인 '공유 또는 가변(shared-xor-mutable)' 규칙 없이도 메모리 안전성을 보장하는 닉 스미스(Nick Smith)의 '그룹 빌림(Group Borrowing)' 모델을 도입했습니다. 기존 러스트에서는 동일한 대상을 가리키는 가변 참조자가 존재할 경우 다른 참조자를 허용하지 않아 복잡한 우회 코드가 필요했으나, 그룹 빌림 방식은 두 참조자가 같은 대상을 가리킬 수 있음을 컴파일러에 명시하고 무효화 추적(invalidation tracking)을 통해 댕글링 참조를 방지함으로써 여러 가변 참조자를 안전하게 다룰 수 있도록 지원합니다. 특히 개발자는 발렌 코드 내부뿐만 아니라 러스트 객체에 대해서도 발렌 경계를 넘나들며 복수의 가변 참조를 안전하게 유지할 수 있다고 밝혔습니다. 현재 발렌은 매우 초기 단계의 실험적 프로젝트로 제네릭을 포함한 러스트 함수 호출, Higher RAII를 위한 선형 타입 지원 등을 갖추고 있으며 향후 몇 달간 코드 정리와 재작성을 거쳐 공개를 본격화할 예정입니다.
Sponsored · 광고