용어집¶
- annotator
- flow graph에서 일종의 타입 추론를 수행하는 RPython 툴체인의 구성 요소입니다. 문서에서 어노테이션(Annotation) 패스를 참고하십시오.
- 백엔드
- 코드 생성기로서, RPython 언어 프로그램을 RPython 툴체인을 사용하여 대상 언어로 변환합니다.
- 컴파일 타임
- 컴파일 타임이란, JIT의 맥락에서 JIT이 “바로 그 순간에(just in time)” 머신 코드를 생성하는 시점을 의미합니다.
- 외부 함수
- 다양한 이유(예: OS를 호출해야 하는 경우)로 Python으로 구현하고 싶지 않으며, 그 구현을 백엔드에서 제공할 함수입니다.
- 가비지 컬렉션 프레임워크
- Python 자체로 RPython의 가비지 컬렉터를 작성할 수 있게 해주는 코드입니다.
- 가드(guard)
- JIT이 트레이싱 중에 세운 가정이 여전히 참인지 확인하는 작은 테스트
- JIT
- just in time compiler입니다.
- ll인터프리터
- 흐름 그래프(flow graph)를 해석할 수 있는 코드 조각입니다. 이는 특히 RPython Typer 작업을 할 때 테스트 목적으로 매우 유용합니다.
- lltypesystem
- 구조체와 포인터를 포함하는 C와 유사한 타입 모델입니다. 이 타입 시스템을 사용하는 백엔드는 저수준 백엔드(low-level backend)라고도 불립니다. C 백엔드는 이 타입 시스템을 사용합니다.
- 저수준 헬퍼
- 대상 타입 시스템의 관점에서 특정 연산을 구현하는 과정의 일부로 RTyper가 호출을 이용할 수 있는 함수입니다.
- ootypesystem
- 클래스와 인스턴스를 포함하는 객체 지향 타입 모델 <oo-type>. 이 타입 시스템을 사용하는 백엔드는 고수준 백엔드(high-level backend)라고도 부릅니다. JVM 백엔드와 CLI 백엔드(현재는 제거됨)는 이 타입 시스템을 사용했습니다.
- 사전 빌드된 상수(prebuilt constant)
- 모듈 전역 변수는 RPython에서 상수로 간주됩니다. 게다가 전역(즉 미리 만들어진) 리스트와 딕셔너리는 불변이어야 합니다(“미리 만들어진 상수”는 종종 “pbc”로 줄여 씁니다).
- 프로모션(promotion)
- 이는 JIT 용어입니다. promotion은 실행 시점 값이 알려질 때까지 컴파일을 지연시킴으로써, 사실상 컴파일 타임에 런타임 값을 “사용”하는 방법입니다. 도움이 될지 the jit docs를 확인해 보십시오.
- RPython
- RPython 언어은 Python 언어의 제한된 부분집합입니다. 이러한 제한 덕분에 타입 추론이 가능합니다. 또한 PyPy 인터프리터 자체가 작성된 언어이기도 합니다.
- RPython 툴체인
- 어노테이션(Annotation) 패스, RPython 타이퍼(Typer), 그리고 다양한 백엔드들.
- rtyper
- 타입 어노테이션을 기반으로, RPython 타이퍼(Typer)는 lltypesystem이나 ootypesystem을 사용하여 플로우 그래프를 대상 플랫폼/백엔드의 모델에 맞는 그래프로 변환합니다.
- 런타임
- 실행 시간(run time)은 JIT의 맥락에서 JIT가 생성한 코드가 실행되고 있는 시점을 의미합니다.
- 특수화(specialization)
- 특정 함수가 annotator에 의해 어떻게 처리되는지를 제어하는 방법입니다. 한 가지 특수화는 인자 타입이 다른 함수에 대한 호출을, 소스가 동일한 서로 다른 함수에 대한 호출인 것처럼 취급하는 것입니다.
- 변환(transformation)
- 흐름 그래프(flowgraph)를 수정하여 번역(translation) 측면들을 엮어 넣는 코드
- 번역(translation) 시점
- 번역(translation) 시간은 JIT의 맥락에서 PyPy 소스가 분석되고 JIT 자체가 생성되는 시점입니다.
- 번역기(translator)
- 충분히 정적인 Python 프로그램을 저수준 코드로 번역(translation)할 수 있는, PyPy 인터프리터 기반의 도구입니다.
- 타입 시스템
- RTyper는 lltypesystem이나 ootypesystem을 대상으로 삼을 수 있습니다.
- 타입 추론
- 이 type inference article on Wikipedia에서 설명하는 것처럼, 표현식의 타입을 부분적으로 또는 완전하게 추론합니다. 타입 추론에 대한 RPython 툴체인의 방식은 어노테이션(Annotation) 패스 절에서 설명합니다.