콘텐츠로 이동

컴파일러 용어 사전

Swift 컴파일러 및 표준 라이브러리 소스 코드에서 사용되는 핵심 용어 정의. 원본: swift/docs/Lexicon.md

타입 시스템

용어 정의
archetype 제네릭 컨텍스트 내 제네릭 파라미터/연관 타입의 플레이스홀더. "rigid type variable"
canonical type sugar가 제거된 타입. 포인터 동등 비교로 타입 동치 판단 가능
sugared type 편의 구문으로 작성된 타입 (예: Int? = Optional<Int>)
reduced type 제네릭 시그니처 기준으로 더 단순화된 canonical type
existential type 프로토콜 합성 타입 (Any = zero protocol)
interface type 제네릭 컨텍스트 밖의 타입. generic signature과 함께 해석
contextual type (1) 컨텍스트 기반 기대 타입 (2) archetype 포함, type parameter 미포함 타입
metatype 타입을 나타내는 값의 타입. ObjC metaclass의 일반화
type parameter generic parameter type 또는 dependent member type

SIL 관련

용어 정의
SIL Swift Intermediate Language. 고수준 IR, 흐름 감지 진단/최적화/IRGen에 사용
raw SIL SILGen 직후의 SIL. 데이터플로 요구사항 미검증 상태
canonical SIL mandatory pass 이후의 SIL. IRGen 입력으로 사용 가능
OSSA Ownership SSA. 소유권 불변식을 강제하는 SIL 확장 형식
mandatory passes SILGen 직후 실행되는 필수 변환. raw SIL → canonical SIL
witness table conformance의 SIL/런타임 표현. 프로토콜용 vtable
VWT Value Witness Table. 미지 값에 대한 assign/copy/destroy 등 기본 연산 기술
vtable 클래스의 오버라이드 가능 메서드 구현 매핑

컴파일러 일반

용어 정의
Sema Semantic Analysis. 타입 검사, 검증, 표현식 재작성 패스
Clang importer C/ObjC 선언을 Swift에 노출하는 컴파일러 구성 요소
abstraction pattern 속성/함수 파라미터의 비치환 제네릭 타입. 메모리 표현 제약 결정
reabstraction abstraction pattern이 다른 값 사용 시 발생하는 암시적 표현 변환
thunk 호출 규약 조정을 위해 합성되는 함수 (예: ObjC→Swift 브릿지)
DI Definite Initialization. 초기화되지 않은 변수 읽기 방지 분석
WMO Whole-Module Optimization. 모듈 전체를 단일 프로세스에서 컴파일
fragile 변경 시 바이너리 호환성이 깨지는 타입/함수
resilient 특정 변경에도 바이너리 호환성이 유지되는 타입/함수

프로젝트 용어

용어 정의
NFC No Functionality Change. 동작 변경 없는 커밋
QoI Quality of Implementation. 최소 기대를 넘는 구현 품질
gardening 비실행 코드(문서, README)의 오타/문법 수정 기여
DNM Do Not Merge. 논의/분석 진행 중인 PR 표시
module (1) API 배포 단위 (2) 컴파일 단위 (3) SIL 모듈 (4) LLVM 모듈 (5) swiftmodule 파일 (6) Clang 모듈

관련 페이지: overview, sil-reference, type-checker, abi-mangling, abi-type-metadata, runtime, dynamic-casting