본문으로 건너뛰기

© 2026 Molayo

arXiv논문2026. 06. 26. 10:42

Welterweight Go: 복싱, 구조적 서브타이핑(Structural Subtyping), 그리고 제네릭(Generics) (확장 버전)

요약

Go 언어의 제네릭과 구조적 서브타이핑 간의 복잡한 상호작용을 다루는 새로운 핵심 모델 WG(Welterweight Go)를 소개합니다. 저수준 언어 LWG를 통해 Go의 런타임 메커니즘을 모델링하고, 별도 컴파일과 런타임 코드 생성 없는 구현 방식을 제안합니다.

핵심 포인트

  • Go의 제네릭과 구조적 서브타이핑 결합 모델인 WG 소개
  • 런타임 메커니즘 모델링을 위한 저수준 언어 LWG 개발
  • 별도 컴파일 및 런타임 코드 생성 없는 구현 가능성 증명
  • 런타임 타입 변환과 어댑터 메서드를 활용한 컴파일 전략

제네릭(Generics)과 비균일한 런타임 표현(non-uniform runtime representations)을 가진 타입 간의 구조적 서브타이핑(structural subtyping)이라는 Go의 독특한 조합은 언어를 정형화하는 데 상당한 어려움을 줍니다. 우리는 이전 연구에서 제외되었던 핵심 기능들(기저 타입(underlying types), 타입 유니온(type unions) 및 타입 세트(type sets), 그리고 제네릭 메서드(generic methods)와 같이 제안된 새로운 기능들을 포함하는 Go의 핵심 모델인 WG (Welterweight Go)를 소개합니다. 또한 우리는 Go의 런타임 메커니즘, 특히 원시 구조체 값(raw struct values)과 런타임 타입 정보(RTTI)를 전달하는 인터페이스 값(interface values) 사이의 구분을 모델링하는 저수준 언어인 LWG를 개발합니다. 우리는 WG에서 LWG로의 타입 지향 컴파일(type-directed compilation)을 제공하여, Go의 중요한 설계 및 구현 목표인 별도 컴파일(separate compilation)과의 호환성 및 런타임 코드 생성 없음(no runtime code generation)을 준수하면서 제안된 기능들이 어떻게 구현될 수 있는지를 보여줍니다. 정적 모노모피즘(static monomorphisation)에 기반한 기존 방식과 달리, 우리의 컴파일 전략은 구조적 서브타이핑(structural subtyping), 제네릭(generics), 그리고 Go의 런타임 인프라 사이의 복잡한 상호작용을 처리하기 위해 런타임 타입 변환(runtime type conversions)과 어댑터 메서드(adaptor methods)를 사용합니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 arXiv cs.PL (Programming Languages)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0