Python-to-C ++ 컴파일러는 더 빠른 실행을 약속합니다.

더 대중적인 언어 일수록 더 다양한 구현이 가능합니다. Python은 언어 실행 속도를 높이기 위해 작성된 기본 인터프리터를 대체하는 대부분의 고전적인 예입니다. 가장 최근에 가장 흥미로운 것은 Nuika입니다.

Nuika (GitHub의 오픈 소스)는 Python을 C ++ 코드로 컴파일 한 다음 내부에서 실행하거나 재배포를 위해 독립 실행 형 파일로 패키지화 할 수 있습니다. 기존 Python 인터프리터의 다른 대체품과 달리 Python 2.6, 2.7, 3.2 및 3.3의 모든 언어 구성과 완벽하게 호환됩니다.

프로젝트 책임자 인 Kay Hayen에 따르면 Nuitka의 첫 번째 이정표 (언어와 동등한 기능)가 이미 충족되었습니다. Hayen은 EuroPython 2012 컨퍼런스에서 Nuitka에 대한 토론을 발표했으며 그해 말쯤에 본격적으로 작업이 시작되었습니다 (GitHub 커밋 기록을 기반으로).

마법을 사용하려면 Nuitka는 현재 버전의 Python 인터프리터 (2.x 또는 3.x 브랜치)와 C ++ 컴파일러가 모두 필요합니다. Microsoft Visual Studio, MinGW 및 Clang / LLVM은 모두 32 비트 및 64 비트 버전에서 후자에 대해 지원됩니다. 그러나 크로스 컴파일 (예 : Linux에서 Windows로 또는 그 반대로)은 지원되지 않으며 Windows에서 64 비트 실행 파일을 컴파일하려면 Microsoft 컴파일러가 필요합니다.

또 다른 단점은 독립 실행 형 실행 파일의 생성입니다. 이를 위해 Nuitka는 CPython의 재배포 가능 파일 (Windows에서는 DLL 및 기타 지원 파일 모음)을 실행 파일과 함께 포함합니다. 결과적으로 독립 실행 형 프로그램에는 상당한 오버 헤드가 있습니다. Python 2.7 용 간단한 "Hello, world"명령 줄 스크립트는 7.4MB의 지원 파일과 함께 2.6MB 32 비트 Windows 실행 파일을 생성합니다. (동일 프로그램의 GUI 버전은 실행 파일의 경우 10MB, 총 20MB입니다.)

그래도 Nuitka가 이미 달성 할 수있는 것은 인상적이며 Hayen의 미래 계획은 야심 찬 것입니다. 다음 단계는 제어 흐름을위한 최적화 및 변수 유형의 더 나은 처리를 포함하여 Nuitka에서 생성 된 코드를 더 효율적으로 만드는 것입니다. 로드맵에는 언어의 ctypes 외부 함수 시스템을 통해 Python에서 사용되는 C 코드와 직접 Nuitka 인터페이스를 갖는 것과 같은 훨씬 더 정교하고 가치있는 기능이 있습니다.