Inlinec – uus viis C-koodi kasutamiseks Pythoni skriptides

projekt inlinec On välja pakutud uus meetod C-koodi sisemiseks integreerimiseks Pythoni skriptidesse. C-funktsioonid on määratletud otse samas Pythoni koodifailis, mille on esile tõstnud dekoraator „@inlinec”. Kokkuvõtte skripti käivitab Pythoni tõlk ja sõelutakse Pythonis pakutava mehhanismi abil kodekid, mis võimaldab ühendada parseri skripti teisendamiseks enne tõlgi parsimist (reeglina kasutatakse koodekite moodulit teksti läbipaistvaks ümberkodeerimiseks, kuid see võimaldab ka skripti sisu suvaliselt teisendada).

Parser on ühendatud moodulina (“inlineci impordist inlinec”), mis teostab esmase töötluse ja tõlgib käigupealt @inlinec annotatsioonidega esile tõstetud C-funktsioonide definitsioonid ctypes sidumisteks ja asendab C-funktsiooni keha kõne nendele sidemetele. Pärast sellist teisendust saab Pythoni interpretaator skripti õige teisendatud lähteteksti, milles C-funktsioone kutsutakse ctüübid. Sarnast meetodit kasutatakse ka projektis Pyxl4, mis võimaldab segada HTML-i ja Pythoni koodi ühes failis.

# kodeerimine: inlinec
inlinecist import inlinec

@inlinec
def test ():
#kaasake
void test() {
printf("Tere, maailm");
}

Arendust on seni esitletud eksperimentaalse prototüübina, mis sisaldab selliseid puudujääke nagu osutite (v.a stringide) funktsioonile edastamise toe puudumine, vajadus käivitada.
"gcc -E" koodi eeltöötlemiseks, vahepealsete *.so, *.o ja *.c failide salvestamiseks praeguses kataloogis, teisendatud versiooni vahemällu mitte salvestamiseks ja tarbetute parsimisetappide sooritamiseks (pikad viivitused iga kord, kui see töötab).

Allikas: opennet.ru

Lisa kommentaar