Objavljen je Codon, prevajalnik Pythona

Startup Exaloop je objavil kodo za projekt Codon, ki razvija prevajalnik za jezik Python, ki je sposoben generirati čisto strojno kodo kot izhod, ki ni vezan na izvajalno okolje Python. Prevajalnik razvijajo avtorji Pythonu podobnega jezika Seq in je postavljen kot nadaljevanje njegovega razvoja. Projekt ponuja tudi lastno okolje izvajanja za izvršljive datoteke in knjižnico funkcij, ki nadomešča klice knjižnice v Pythonu. Izvorne kode prevajalnika, izvajalnega okolja in standardne knjižnice so napisane z uporabo C++ (z uporabo razvoja LLVM) in Python ter se distribuirajo pod licenco BSL (Business Source License).

Licenco BSL so predlagali soustanovitelji MySQL kot alternativo modelu Open Core. Bistvo BSL je v tem, da je koda napredne funkcionalnosti na začetku na voljo za spreminjanje, nekaj časa pa jo je mogoče uporabljati brezplačno le ob izpolnjevanju dodatnih pogojev, ki za obhod zahtevajo nakup komercialne licence. Dodatni licenčni pogoji projekta Codon zahtevajo, da se koda po 2.0 letih (3. november 1) prenese v licenco Apache 2025. Do tega trenutka licenca dovoljuje kopiranje, distribucijo in spreminjanje, pod pogojem, da se uporablja v nekomercialne namene.

Zmogljivost izhodnih izvedljivih datotek je predstavljena kot podobna programom, napisanim v jeziku C. V primerjavi z uporabo CPython je povečanje zmogljivosti pri prevajanju s Codonom ocenjeno na 10- do 100-krat za enonitno izvajanje. Poleg tega Codon za razliko od Pythona dodatno implementira možnost uporabe večnitnosti, kar omogoča še večje povečanje zmogljivosti. Codon vam omogoča tudi prevajanje na ravni posamezne funkcije za uporabo prevedene predstavitve v obstoječih projektih Python.

Codon je zgrajen z uporabo modularne arhitekture, ki vam omogoča povečanje funkcionalnosti s pomočjo vtičnikov, s katerimi lahko dodate nove knjižnice, implementirate optimizacije v prevajalnik in celo zagotovite podporo za dodatno sintakso. Na primer, vzporedno se razvija več vtičnikov za uporabo v bioinformatiki in finančni matematiki. Boehmov zbiralnik smeti se uporablja za upravljanje pomnilnika.

Prevajalnik podpira večino sintakse Python, vendar prevajanje v izvorno kodo nalaga številne omejitve, ki preprečujejo uporabo Codona kot pregledne zamenjave za CPython. Codon na primer uporablja 64-bitni tip int za cela števila, medtem ko CPython uporablja neomejeno velikost za cela števila. Velike kodne baze lahko zahtevajo spremembe kode, da se doseže združljivost s kodonom. Nezdružljivosti so praviloma posledica pomanjkanja implementacije določenih modulov Python za Codon in nezmožnosti uporabe nekaterih dinamičnih funkcij jezika. Za vsako takšno nezdružljivost prevajalnik izda podrobno diagnostično sporočilo z informacijami o tem, kako zaobiti težavo.

Objavljen je Codon, prevajalnik Pythona


Vir: opennet.ru

Dodaj komentar