Codon, Python-kääntäjä, on julkaistu

Startup-yritys Exaloop on julkaissut Codon-projektin koodin. Projekti kehittää Python-kääntäjää, joka pystyy tuottamaan puhdasta konekoodia, joka ei liity Pythonin ajonaikaiseen ympäristöön. Kääntäjän kehittävät Pythonin kaltaisen Seq-kielen tekijät, ja se on asemoitu kyseisen kielen jatkeeksi. Projekti tarjoaa myös oman ajonaikaisen ympäristön suoritettaville tiedostoille ja funktiokirjaston, joka korvaa Python-kirjastokutsuja. Kääntäjän, ajonaikaisen ympäristön ja standardikirjaston lähdekoodi on kirjoitettu C++:lla (käyttäen LLVM:n kehitystä) ja Pythonilla, ja se jaetaan Business Source License (BSL) -lisenssillä.

MySQL:n perustajat ehdottivat BSL-lisenssiä vaihtoehtona Open Core -mallille. BSL-lisenssi sallii laajennettujen toimintojen omaavan koodin aluksi saataville muokkaamista varten, mutta rajoitetun ajan sitä voi käyttää ilmaiseksi vain lisäehdoilla, jotka vaativat kaupallisen lisenssin ohittamiseksi. Codon-projektin lisälisenssiehdot edellyttävät koodin siirtämistä Apache 2.0 -lisenssiin kolmen vuoden kuluttua (1. marraskuuta 2025). Siihen asti lisenssi sallii kopioinnin, jakelun ja muokkaamisen, edellyttäen, että käyttö ei ole kaupallista.

Tuloksena olevien suoritettavien tiedostojen suorituskyvyn väitetään olevan lähellä C-kielellä kirjoitettujen ohjelmien suorituskykyä. CPythoniin verrattuna Codonilla käännettäessä suorituskyvyn parannuksen arvioidaan olevan 10–100-kertainen yksisäikeisessä suorituksessa. Toisin kuin Python, Codonissa on myös monisäikeisyys, joka mahdollistaa vielä suuremmat suorituskyvyn parannukset. Codon mahdollistaa myös funktiotason kääntämisen käännetyn esityksen käyttämiseksi olemassa olevissa Python-projekteissa.

Codon on rakennettu modulaarisen arkkitehtuurin avulla, joka mahdollistaa laajennetun toiminnallisuuden laajennusten avulla. Näitä laajennuksia voidaan käyttää uusien kirjastojen lisäämiseen, kääntäjien optimointiin ja jopa lisäsyntaksin tukemiseen. Esimerkiksi useita laajennuksia kehitetään rinnakkain bioinformatiikan ja rahoitusmatematiikan käyttöön. Boehmin roskienkerääjää käytetään muistinhallintaan.

Kääntäjä tukee suurinta osaa Pythonin syntaksista, mutta natiivikoodiin kääntäminen asettaa useita rajoituksia, jotka estävät Codonin käytön saumattomana CPythonin korvaajana. Esimerkiksi Codon käyttää 64-bittistä int-tyyppiä kokonaisluvuille, kun taas CPythonilla ei ole rajoitusta kokonaislukujen koolle. Yhteensopivuuden saavuttaminen Codonin kanssa suurissa koodikannoissa saattaa vaatia koodimuutoksia. Nämä yhteensopimattomuudet johtuvat tyypillisesti tiettyjen Python-moduulien toteutusten puutteesta Codonissa ja kyvyttömyydestä käyttää tiettyjä dynaamisia kieliominaisuuksia. Jokaisesta tällaisesta yhteensopimattomuudesta kääntäjä antaa yksityiskohtaisen diagnostiikkaviestin, jossa on tietoja ongelman kiertämisestä.

 Codon, Python-kääntäjä, on julkaistu


Lähde: opennet.ru

Lisää kommentti