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

Startup Exaloop on julkaissut koodin Codon-projektille, joka kehittää Python-kielelle kääntäjän, joka pystyy tuottamaan puhdasta konekoodia ulostulona, ​​joka ei ole sidottu Python-ajoaikaan. Kääntäjä on Python-tyyppisen kielen Seq tekijöiden kehittämä ja se on sijoitettu sen kehityksen jatkoksi. Projekti tarjoaa myös oman ajonaikansa suoritettaville tiedostoille ja funktiokirjaston, joka korvaa kirjastokutsut Pythonissa. Kääntäjän, ajonaikaisen ja vakiokirjaston lähdekoodit on kirjoitettu C++:lla (käyttäen LLVM:n kehitystä) ja Pythonilla, ja ne jaetaan BSL:n (Business Source License) alaisina.

MySQL:n perustajat ehdottivat BSL-lisenssiä vaihtoehtona Open Core -mallille. BSL:n ydin on, että edistyneiden toimintojen koodi on alun perin muokattavissa, mutta sitä voidaan käyttää jonkin aikaa maksutta vain, jos lisäehdot täyttyvät, joiden kiertäminen edellyttää kaupallisen lisenssin ostamista. Codon-projektin lisälisenssiehdot edellyttävät koodin siirtämistä Apache 2.0 -lisenssiin 3 vuoden kuluttua (1). Tähän asti lisenssi sallii kopioinnin, jakelun ja muokkaamisen edellyttäen, että sitä käytetään ei-kaupallisiin tarkoituksiin.

Tulostettavien suoritettavien tiedostojen suorituskyky esitetään lähellä C-kielellä kirjoitettuja ohjelmia. Verrattuna CPythonin käyttöön Codonilla käännettäessä suorituskyvyn kasvun arvioidaan olevan 10-100-kertainen yksisäikeisessä suorituksessa. Lisäksi, toisin kuin Python, Codon toteuttaa lisäksi mahdollisuuden käyttää monisäikeistystä, mikä mahdollistaa vielä suuremman suorituskyvyn lisäämisen. Codonin avulla voit myös kääntää yksittäisten toimintojen tasolla käyttääksesi käännettyä esitystä olemassa olevissa Python-projekteissa.

Codon on rakennettu modulaarisella arkkitehtuurilla, jonka avulla voit lisätä toimintoja laajennuksilla, joiden avulla voit lisätä uusia kirjastoja, toteuttaa optimoinnit kääntäjässä ja jopa tarjota tukea lisäsyntaksille. Esimerkiksi useita laajennuksia kehitetään rinnakkain käytettäväksi bioinformatiikassa ja talousmatematiikassa. Boehm-jätteenkerääjää käytetään muistin hallintaan.

Kääntäjä tukee useimpia Python-syntaksia, mutta kääntäminen alkuperäiseen koodiin asettaa joukon rajoituksia, jotka estävät Codonin käyttämisen läpinäkyvänä CPythonin korvaajana. Esimerkiksi Codon käyttää 64-bittistä int-tyyppiä kokonaisluvuille, kun taas CPython käyttää rajoittamatonta kokoa kokonaisluvuille. Suuret koodikannat voivat edellyttää koodimuutoksia Codon-yhteensopivuuden saavuttamiseksi. Pääsääntöisesti yhteensopimattomuudet johtuvat tiettyjen Python-moduulien Codonin toteutuksen puutteesta ja kielen joidenkin dynaamisten ominaisuuksien käyttökyvyttömyydestä. Jokaisesta tällaisesta yhteensopimattomuudesta kääntäjä lähettää yksityiskohtaisen diagnostiikkasanoman, joka sisältää tietoja ongelman kiertämisestä.

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


Lähde: opennet.ru

Lisää kommentti