Programovanie

Kompilátor Python-to-C ++ sľubuje rýchlejšiu realizáciu

Čím populárnejší je jazyk, tým sú rozmanitejšie jeho implementácie. Python je klasický príklad, pričom väčšina náhrad za jeho predvoleného tlmočníka je napísaná s cieľom urýchliť vykonávanie jazyka. Medzi najnovšie a najzaujímavejšie patrí Nuika.

Nuika (otvorený zdroj na GitHub) kompiluje Python do C ++ kódu, ktorý potom môže byť spustený na mieste alebo zabalený ako samostatný súbor na ďalšiu distribúciu. Na rozdiel od niektorých iných náhrad existujúcich tlmočníkov Pythonu požaduje úplnú kompatibilitu so všetkými jazykovými konštrukciami v jazykoch Python 2.6, 2.7, 3.2 a 3.3.

Podľa vedúcej projektu Kay Hayen už bol prvý míľnik Nuitky - parita funkcií s jazykom - už splnený. Hayen predstavila diskusiu o Nuitke späť na konferencii EuroPython 2012 a okolo konca toho roku sa začalo s vážnymi prácami (na základe histórie spáchania GitHubu).

Na fungovanie svojej mágie vyžaduje Nuitka ako aktuálnu verziu tlmočníka Pythonu (vetva 2.x alebo 3.x) a kompilátor C ++. Microsoft Visual Studio, MinGW a Clang / LLVM sú pre poslednú verziu podporované v 32- aj 64-bitových vydaniach. Krížová kompilácia - povedzme z Linuxu na Windows alebo naopak - však nie je podporovaná a na zostavenie 64-bitového spustiteľného súboru v systéme Windows je potrebný prekladač spoločnosti Microsoft.

Ďalšou nevýhodou je vytvorenie samostatných spustiteľných súborov. Za týmto účelom Nuitka obsahuje spustiteľný súbor CPython, ktoré je možné ďalej distribuovať (v systéme Windows, zbierka DLL a ďalších podporných súborov). Preto majú samostatné programy značnú réžiu: Jednoduchý skript príkazového riadku „Hello, world“ pre program Python 2.7 produkuje 2,6 MB 32-bitový spustiteľný systém Windows spolu s 7,4 MB podporných súborov. (Verzia rovnakého programu s grafickým rozhraním vážila pre spustiteľný súbor 10 MB, spolu 20 MB.)

To, čo už Nuitka môže dosiahnuť, je stále pôsobivé a Hayenove plány do budúcnosti sú ambiciózne. Ďalším krokom je zefektívnenie kódu generovaného Nuitkou, vrátane lepšieho spracovania typov premenných a optimalizácie toku riadenia. Ďalej sú v pláne ešte sofistikovanejšie a hodnotnejšie funkcie, ako napríklad priame rozhranie Nuitka s kódom C použitým v Pythone prostredníctvom systému zahraničných funkcií ctypes.

$config[zx-auto] not found$config[zx-overlay] not found