Le progiciel des étudiants du MIT corrige automatiquement le fonctionnement des programmes

image

Lors d'une conférence sur le développement et la mise en œuvre de langages de programmation, une équipe d'experts en informatique du Massachusetts Institute of Technology (MIT) a présenté un système aux fonctionnalités étonnantes . Selon eux, ce progiciel trouve automatiquement les erreurs dans les programmes, et les corrige, en remplaçant à leur place des éléments qui conviennent aux fonctionnalités d'autres programmes. Dans le même temps, le système n'a pas besoin de se familiariser avec le code source du programme en cours de correction pour fonctionner - il n'a besoin que d'un fichier exécutable.

Les programmeurs virtuoses ont nommé leur programme CodePhage (codephage). Les développeurs expliquent que leur système "analyse l'exécution du programme et caractérise les types de contrôles de sécurité qu'il effectue". Après cela, le codeophage peut prendre les mêmes vérifications des autres programmes donateurs, même s'ils sont écrits dans d'autres langages de programmation, et les envoyer au programme destinataire. Comment les donateurs sont sélectionnés pour cela, les développeurs n'ont pas précisé.

"Il existe déjà de nombreux programmes open source - il y a des millions de projets dans les référentiels, et beaucoup d'entre eux répondent à des spécifications similaires", explique Stelios Sidiroglu-Duskos, sous la direction duquel CodePhage a été développé. - Même si les programmes sont essentiellement différents, ils peuvent souvent trouver des composants avec des fonctionnalités similaires. Avec CodePhage, il sera un jour possible de créer un tel système hybride qui comprend les meilleurs composants de toutes les implémentations disponibles. »

Pour démarrer la recherche d'erreurs, le phage de code magique a besoin d'un peu - un ensemble de données d'entrée auquel le programme à l'étude se bloque et un autre auquel il ne se bloque pas. Ensuite, le codéphage démarre automatiquement le programme du donneur avec ces ensembles de données et enregistre son travail. Par exemple, si le programme destinataire peut ouvrir des fichiers d'un certain format, mais tombe sur un fichier, CodePhage enregistre tout ce que le programme donateur «correct» fait avec ce fichier, en particulier les vérifications qu'il effectue. Après cela, le codeophage analyse en quoi le fonctionnement du programme du donateur diffère du fonctionnement du programme du destinataire et corrige le destinataire en conséquence.

Les développeurs affirment que leur programme a réussi à corriger les programmes qui ne fonctionnent pas correctement et sont optimistes quant à l'avenir, dans lequel les programmeurs n'auront pas à écrire ces morceaux de code dont la fonctionnalité a déjà été implémentée par quelqu'un.

"La technologie consistant à emprunter du code à un autre programme avec des fonctionnalités similaires et à corriger un programme défectueux avec lui est certainement cool", a déclaré Emery Berger, professeur d'informatique dans une autre université du Massachusetts à Amherst, qui a commenté le travail de spécialistes. "Pour être honnête, je suis surpris qu'elle travaille même."

Source: https://habr.com/ru/post/fr381263/


All Articles