I-Python iphakathi kolunye lwezilimi zokuhlela ezidume kakhulu, nokho ngokuvamile akuyona into yokuqala uma kudingeka isivinini.
Ngenkathi ingalungiselelwa ukusebenza okungcono, iPython iyaziswa izimfanelo ngaphandle kwesivinini, esifana nokufundeka, ijika lokufunda elilawulekayo, i-ecosystem enwetshiwe, kanye nensizakalo kokubili kwezemfundo nezamabhizinisi.
Ososayensi bekhompyutha be-MIT kanye nozakwabo, nokho, bakholelwa ukuthi bathole indlela yokuba nakho konke – ukufinyeleleka kolimi olusezingeni eliphezulu ngesivinini solimi olusezingeni eliphansi. Bakhe i-Python compiler ebizwa ngokuthi i-Codon eguqula ikhodi ye-Python ibe ikhodi yomshini womdabu ngaphandle kokushaya kokusebenza kwesikhathi sokusebenza.
“Ukushesha okujwayelekile phezu kwePython ku-oda lika-10-100x noma ngaphezulu, kuchungechunge olulodwa,” i-Codon repo. uyamemezela. “Ukusebenza kwe-Codon kuvame ukuhambisana (futhi ngezinye izikhathi kungcono kuno) kwe-C/C++.”
Kukhona ukushayisana, kunjalo. I-Codon isebenzisa kakhulu kodwa hhayi lonke ulimi lwePython. Amanye amamojula wePython awazange afakwe ku-Codon. Futhi ishiya izici ezifana nokukhohlisa kohlobo oluguqukayo kanye nokuboniswa kwesikhathi sokusebenza okwenza ikhodi kube nzima kakhulu ukuyihlaziya nokuthuthukisa. Ngokwenza kanjalo, ingancika enjinini yokuhlanganisa yokubhala ngezibalo okuthi – ngokuhlangana nezinye izinto ezintsha ezifana nesebenziseka kalula futhi eguquguqukayo. ukumelwa okuphakathi (IR) [PDF] – ikhiqiza ikhodi esheshayo.
I-Codon ekuqaleni yasungulwa njengohlaka lokudala izilimi ezithile zesizinda esisebenza kahle kakhulu (Ama-DSL) kuPython. Ama-DSL izilimi ezigxile enjongweni ethile, ngokuphambene nolimi lokuhlela lwenhloso evamile njenge-Python noma i-C. Izibonelo zama-DSL zifaka i-CSS, i-SQL, kanye nama-runes asendulo enza ukuqonda.
Isuselwe kwi Seqi-DSL ye-bioinformatics ne-genetics, i-Codon ikhule yaba umdidiyeli wolimi ohambisana kakhulu ne-Python 3. Njengoba kuchazwe ku- iphepha [PDF] kuhlinzekwe ku Irejista ngaphambi kokukhishwa kwayo okuhleliwe kwangomhla ziyi-16 kuNdasa, “Codon: A Compiler for High-Performance Pythonic Applications and DSLs,” i-toolchain “inika amandla ukuthuthukiswa kwama-DSL abelana nge-syntax ne-semantics ye-Python kanye nezici ezengeziwe eziqondene nesizinda kanye nokuthuthukiswa kwe-IR.”
Ababhali bephepha – u-Ariya Shajii (Exaloop), uGabriel Ramirez (MIT CSAIL), uHaris Smajlović (University of Victoria, Canada), Jessica Ray (MIT CSAIL), Bonnie Berger (MIT CSAIL) Saman Amarasinghe (MIT CSAIL), kanye U-Ibrahim Numanagić (iNyuvesi yaseVictoria) – yithi ngenxa yokuthi i-Codon ingakwazi ukukhipha ikhodi yomdabu ngaphandle kwe-Python runtime overhead, bayakwazi ukufeza ukusebenza okufana no-C ngemibhalo yePython.
“Ngokungafani nezinye izinhlelo zokusebenza ze-Python ezigxile ekusebenzeni (njenge-PyPy noma i-Nummba), i-Codon yakhiwe kusukela phansi njengesistimu ezimele ehlanganisa kusenesikhathi ukuze isebenze kahle futhi ayiboshelwe esikhathini esikhona se-Python (isb. CPython noma i-RPython) ukuze abulawe,” kusho leli phepha. “Ngenxa yalokho, i-Codon ingakwazi ukuzuza ukusebenza okungcono futhi inqobe izinkinga ezithile zesikhathi sokusebenza ezifana nokukhiya komhumushi emhlabeni jikelele.”
Esikhundleni sokudinga … ukubhala kabusha ngokuphelele ngolimi olufana no-C, i-Codon ingasebenzisa ukuqaliswa kwePython efanayo futhi inikeze ukusebenza okufanayo ozokuthola ngokubhala kabusha ngo-C.
Ababhali baxoxa ngama-DSL ahlukahlukene asuselwa ku-Codon, asebenza kahle kakhulu adizayinelwe i-bioinformatics, ukucindezelwa kwedatha, nezinhlelo ezifanayo ezisizakala ngengqalasizinda yomdidiyeli we-Codon. Kepha i-Codon ingasheshisa nezinhlelo ezijwayelekile zePython kakhulu, yize lezo ezithembele emitapweni yolwazi yangaphandle njenge-Django noma i-DocUtils kufanele zithembele ebhulohweni le-CPython elikhawulela ukusebenza kulelo le-CPython. Isibonelo, kuforamu ye-Codon, omunye unjiniyela osafufusa ubika ukuthi umbhalo we-Fibonacci ohlanganiswe ne-Codon ugijime ngaphezu kwalokho. 70x ngokushesha kunenguqulo ye-CPython.
USolwazi we-MIT kanye noMseshi Omkhulu we-CSAIL uSaman Amarasinghe utshele i-MIT News service ekukhululweni okunikezwe Irejista ukuthi iPython ivamise ukusetshenziswa ngochwepheshe besizinda abangebona ochwepheshe bezinhlelo futhi abangakazilungiseleli izinhlelo zabo zokusebenza kahle.
“Esikhundleni sokudinga ukubhala kabusha uhlelo usebenzisa umtapo wolwazi oqaliswe ngu-C njenge-numpy noma ubhale kabusha ngokuphelele ngolimi olufana no-C, i-Codon ingasebenzisa ukuqaliswa kwePython efanayo futhi inikeze ukusebenza okufanayo ozokuthola ngokubhala kabusha ku-C,” kuchaza u-Amarasinghe. “Ngakho, ngikholelwa ukuthi i-Codon iyindlela elula yokuya phambili yezinhlelo zokusebenza eziphumelelayo zePython ezifinyelele umkhawulo ngenxa yokuntuleka kokusebenza.”
Sitshelwa ukuthi i-Codon isivele isetshenziselwa ukuthengisa emikhakheni esukela kwezezimali kanye ne-bioinformatics kuya ekufundeni okujulile. Futhi ezinyangeni ezizayo, lindela ukuthi abathuthukisi beCodon basebenzise ezinye izici ezingekho zePython. ®