컴파일러 용어 사전
Swift 컴파일러 및 표준 라이브러리 소스 코드에서 사용되는 핵심 용어 정의.
원본: swift/docs/Lexicon.md
정의만 빠르게 보고 싶다면 이 페이지를,
용어가 서로 어떻게 엮이는지 보고 싶다면 위키 키워드 연결망를 같이 보면 좋다.
빠른 묶음 이동
- 타입 체커/진단: 타입 체커 설계 및 구현, 진단 시스템 (Diagnostics)
- 제네릭/프로토콜: Generic Signatures, Archetypes, Substitution Maps, Conformances
- SIL/소유권/최적화: SIL (Swift Intermediate Language), SIL 소유권 모델 (OSSA), Swift 옵티마이저 설계, SIL 옵티마이저 패스 카탈로그
- 동시성/격리: Swift 6 데이터 경쟁 안전성 검사
- ABI/런타임: ABI 안정성, ABI: 타입 메타데이터, Swift 런타임, 라이브러리 진화 (Library Evolution)
- 전체 키워드 허브: 위키 키워드 연결망
타입 시스템
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 모듈 |
관련 페이지