용어집

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