Megjelent a Codon, egy Python fordító

Az induló Exaloop közzétette a Codon projekt kódját, amely egy olyan fordítót fejleszt a Python nyelvhez, amely képes tiszta gépi kódot generálni kimenetként, nem kötve a Python futási környezethez. A fordítóprogramot a Python-szerű Seq nyelv szerzői fejlesztik, és a fejlesztés folytatásaként pozicionálják. A projekt saját futási környezetet is kínál a végrehajtható fájlok számára, valamint egy függvénytárat, amely helyettesíti a Python könyvtárhívásait. A fordító, a futtatókörnyezet és a szabványos könyvtár forráskódja C++ (LLVM fejlesztések felhasználásával) és Python használatával íródott, és BSL (Business Source License) alatt kerül terjesztésre.

A BSL licencet a MySQL társalapítói javasolták az Open Core modell alternatívájaként. A BSL lényege, hogy a fejlett funkcionalitás kódja kezdetben módosítható, de egy ideig csak további feltételek teljesülése esetén használható ingyenesen, amelyek megkerüléséhez kereskedelmi licenc vásárlása szükséges. A Codon projekt további licencfeltételei megkövetelik, hogy a kódot 2.0 év (3. november 1.) után át kell vinni az Apache 2025 licencbe. Eddig az időpontig a licenc lehetővé teszi a másolást, terjesztést és módosítást, feltéve, hogy azt nem kereskedelmi célokra használják fel.

A kimeneti végrehajtható fájlok teljesítménye közel áll a C nyelven írt programokhoz. A CPython használatához képest a teljesítménynövekedés Codon használatával 10-100-szorosra becsülhető egyszálú végrehajtás esetén. Sőt, a Pythontól eltérően a Codon emellett többszálú feldolgozást is megvalósít, ami még nagyobb teljesítménynövekedést tesz lehetővé. A Codon azt is lehetővé teszi, hogy az egyes függvények szintjén fordítsa le a lefordított reprezentációt a meglévő Python-projektekben.

A Codon moduláris architektúrával készült, amely lehetővé teszi a funkcionalitás bővítését bővítmények segítségével, amelyekkel új könyvtárakat adhat hozzá, optimalizálhat a fordítóprogramban, és még további szintaxist is támogathat. Például párhuzamosan több beépülő modult fejlesztenek a bioinformatika és a pénzügyi matematika területén. A Boehm szemétgyűjtő a memória kezelésére szolgál.

A fordító támogatja a legtöbb Python szintaxist, de a gépi kódra fordítás számos korlátozást támaszt, amelyek megakadályozzák, hogy a Codon a CPython transzparens helyettesítőjeként használható legyen. Például a Codon a 64 bites int típust használja az egész számokhoz, míg a CPython korlátlan méretet használ az egész számokhoz. A nagy kódbázisok kódmódosítást igényelhetnek a kodonkompatibilitás eléréséhez. Az inkompatibilitásokat általában az okozza, hogy bizonyos Python-modulok nem implementálták a Codon-t, és nem tudják használni a nyelv egyes dinamikus jellemzőit. Minden egyes ilyen összeférhetetlenség esetén a fordító részletes diagnosztikai üzenetet ad ki a probléma megkerülésére vonatkozó információkkal.

Megjelent a Codon, egy Python fordító


Forrás: opennet.ru

Hozzászólás