용어집¶
- 어노테이터(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 툴체인의 타입 추론 방식은 어노테이션 패스 절에 설명되어 있습니다.