용어집

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) 패스 절에서 설명합니다.