Ohjelmointi

Python-to-C ++ -kääntäjä lupaa nopeamman suorituksen

Mitä suositumpi kieli, sitä monimuotoisempi sen käyttö. Python on klassinen esimerkki, ja suurin osa sen oletustulkin korvikkeista on kirjoitettu kielten suorittamisen nopeuttamiseksi. Uusimpia ja kiehtovimpia on Nuika.

Nuika (avoimen lähdekoodin GitHubissa) kokoaa Python C ++ -koodiksi, joka voidaan sitten suorittaa paikallaan tai pakata erillisenä tiedostona uudelleenjakelua varten. Toisin kuin jotkut muut korvaukset olemassa oleville Python-tulkeille, se väittää täydellisen yhteensopivuuden kaikkien Python 2.6, 2.7, 3.2 ja 3.3 -kielirakenteiden kanssa.

Projektin johtajan mukaan Kay Hayen, Nuitkan ensimmäinen virstanpylväs - ominaisuus pariteetti kielen kanssa - on jo saavutettu. Hayen esitteli keskustelun Nuitkasta takaisin EuroPython 2012 -konferenssissa, ja työ aloitettiin tosissaan (GitHubin sitoutumishistorian perusteella) vuoden lopussa.

Nuitka vaatii taikuudensa aikaan sekä Python-tulkin nykyisen version (2.x tai 3.x haara) että C ++ -kääntäjän. Microsoft Visual Studio, MinGW ja Clang / LLVM ovat kaikki tuettuja jälkimmäiselle sekä 32- että 64-bittisissä versioissa. Ristikokoamista - esimerkiksi Linuxista Windowsiin tai päinvastoin - ei kuitenkaan tueta, ja 64-bittisen suoritustiedoston kokoaminen Windowsissa vaatii Microsoftin kääntäjän.

Toinen haittapuoli on erillisten suoritettavien tiedostojen luominen. Tätä varten Nuitka sisältää CPythonin uudelleenjakelutiedostot (Windowsissa kokoelman DLL-tiedostoja ja muita tukitiedostoja) suoritettavan tiedoston mukana. Näin ollen erillisissä ohjelmissa on melko paljon yleiskustannuksia: Yksinkertainen "Hello, world" -komentorivikomentosarja Python 2.7: lle tuottaa 2,6 Mt: n 32-bittisen Windows-suoritettavan tiedoston ja 7,4 Mt: n tukitiedostot. (Saman ohjelman GUI-versio painoi 10 Mt suoritettavaa tiedostoa, yhteensä 20 Mt.)

Silti se, mitä Nuitka voi jo saavuttaa, on vaikuttavaa, ja Hayenin suunnitelmat tulevaisuudestaan ​​ovat kunnianhimoiset. Seuraavina vaiheina on tehostaa Nuitkan luomaa koodia, mukaan lukien muuttujatyyppien parempi käsittely ja optimoinnit ohjausvirralle. Etenemissuunnitelmassa on vielä kehittyneempiä ja arvokkaampia ominaisuuksia, kuten Nuitka-käyttöliittymä suoraan Pythonissa käytetyn C-koodin kanssa kielen ctypes-ulkomaistoimintojärjestelmän kautta.

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