Spectre IEEE rapports sur codonun compilateur Python spécialement développé pour, comme ils le disent, “turbocompresser le compilateur notoirement lent de Python.”

“Nous effectuons une vérification de type pendant la compilation processus, ce qui nous permet d’éviter toutes ces manipulations de type coûteuses lors de l’exécution », déclare Ariya Shajii, étudiante diplômée du MIT CSAIL et auteure principale d’un article récent sur Codon.

Sans données inutiles ni vérification de type pendant l’exécution, Codon n’entraîne aucune surcharge, selon Shajii. Et en ce qui concerne les performances, “Codon est généralement à égalité avec C++. Par rapport à Python, nous constatons généralement une amélioration de 10 à 100 fois”, dit-il. Mais l’approche de Codon vient avec ses compromis. “Nous effectuons cette vérification de type statique et nous interdisons certaines des fonctionnalités dynamiques de Python, comme la modification dynamique des types au moment de l’exécution”, explique Shajii. “Il existe également des bibliothèques Python que nous n’avons pas encore implémentées…”

Codon a été initialement conçu pour être utilisé en génomique et en bioinformatique. “Les ensembles de données deviennent vraiment volumineux dans ces domaines, et les langages de haut niveau comme Python et R sont trop lents pour gérer des téraoctets par ensemble de données de séquençage”, explique Shajii. “C’était la lacune que nous voulions combler – donner aux experts du domaine qui ne sont pas nécessairement des informaticiens ou des programmeurs en formant un moyen d’aborder des données volumineuses sans avoir à écrire de code C ou C++.” Outre la génomique, Codon pourrait également être appliqué à des applications similaires qui traitent des ensembles de données massifs, ainsi que des domaines tels que la programmation GPU et programmation parallèle, que le compilateur basé sur Python prend en charge. En fait, Codon est maintenant utilisé commercialement dans les secteurs de la bioinformatique, de l’apprentissage en profondeur et de la finance quantitative par le biais de la startup Exaloop, que Shajii a fondée pour faire passer Codon d’un projet académique à une application industrielle.

Pour permettre à Codon de travailler avec ces différents domaines, l’équipe a développé un système de plug-in. “C’est comme un compilateur extensible”, explique Shajii. “Vous pouvez écrire un plug-in pour la génomique ou un autre domaine, et ces plug-ins peuvent avoir de nouvelles bibliothèques et de nouvelles optimisations de compilateur….” En ce qui concerne l’avenir de Codon, Shajii et son équipe travaillent actuellement sur des implémentations natives des bibliothèques Python largement utilisées, ainsi que des optimisations spécifiques à la bibliothèque pour obtenir de bien meilleures performances de ces bibliothèques. Ils prévoient également de créer une fonctionnalité largement demandée : un back-end WebAssembly pour que Codon active exécution de code sur un navigateur Web.

By mrtrv