पॉइंटर
Wave Explicit Memory Type Model
Wave의 포인터 설계는 Wave Explicit Memory Type Model을 기반으로 합니다. 이 모델은 포인터와 배열을 문법적 트릭이나 라이브러리 추상화가 아닌, 언어 차원의 명시적인 메모리 타입으로 정의하는 것을 목표로 합니다.
이러한 설계에 따라 Wave에서는 포인터를 ptr<T> 형태의 타입으로 표현하며,
이는 특정 타입 T의 값을 저장하고 있는 메모리 주소를 가리키는 타입임을 명확하게 드러냅니다.
이 접근 방식은 포인터를 연산자나 선언 문법이 아닌 타입 시스템의 일부로 다룸으로써,
메모리 구조를 더 직관적이고 일관되게 표현할 수 있게 합니다.
Wave에서 포인터는 ptr<T> 형태의 명시적 타입입니다.
주소 획득은 &, 역참조는 deref를 사용합니다.
선언과 초기화
var x: i32 = 10;
var p: ptr<i32> = &x;
포인터 타입은 중첩 가능합니다.
var p1: ptr<i32> = &x;
var p2: ptr<ptr<i32>> = &p1;