Η Intel δημοσιεύει το ControlFlag 1.2, ένα εργαλείο για τον εντοπισμό ανωμαλιών στον πηγαίο κώδικα

Η Intel δημοσίευσε την κυκλοφορία του ControlFlag 1.2, μιας εργαλειοθήκης που σας επιτρέπει να εντοπίζετε σφάλματα και ανωμαλίες στον πηγαίο κώδικα χρησιμοποιώντας ένα σύστημα μηχανικής εκμάθησης εκπαιδευμένο σε μεγάλο αριθμό υπάρχοντος κώδικα. Σε αντίθεση με τους παραδοσιακούς στατικούς αναλυτές, το ControlFlag δεν εφαρμόζει έτοιμους κανόνες, στους οποίους είναι δύσκολο να προβλεφθούν όλες οι πιθανές επιλογές, αλλά βασίζεται σε στατιστικά στοιχεία σχετικά με τη χρήση διαφόρων γλωσσικών δομών σε μεγάλο αριθμό υπαρχόντων έργων. Ο κώδικας ControlFlag είναι γραμμένος σε C++ και είναι ανοιχτού κώδικα με την άδεια MIT.

Η νέα έκδοση είναι αξιοσημείωτη για την εφαρμογή της πλήρους υποστήριξης για τον εντοπισμό ανωμαλιών και την εκμάθηση με βάση κοινά πρότυπα κώδικα για τη γλώσσα C++. Σε προηγούμενες εκδόσεις, παρείχε παρόμοια υποστήριξη για γλώσσες C και PHP. Το σύστημα είναι κατάλληλο για τον εντοπισμό διαφόρων τύπων προβλημάτων στον κώδικα, από τον εντοπισμό τυπογραφικών σφαλμάτων και αναντιστοιχιών τύπων, έως τον εντοπισμό ανωμαλιών στις δηλώσεις if και τους ελέγχους NULL που λείπουν στους δείκτες. Το σύστημα εκπαιδεύεται με τη δημιουργία ενός στατιστικού μοντέλου της υπάρχουσας σειράς κώδικα έργων ανοιχτού κώδικα σε C, C++ και PHP, που δημοσιεύονται στο GitHub και παρόμοια δημόσια αποθετήρια.

Στο στάδιο της εκπαίδευσης, το σύστημα καθορίζει τυπικά μοτίβα για την κατασκευή δομών στον κώδικα και δημιουργεί ένα συντακτικό δέντρο συνδέσεων μεταξύ αυτών των προτύπων, αντανακλώντας τη ροή της εκτέλεσης κώδικα στο πρόγραμμα. Ως αποτέλεσμα, σχηματίζεται ένα δέντρο λήψης αποφάσεων αναφοράς που συνδυάζει την εμπειρία ανάπτυξης όλων των αναλυόμενων πηγαίων κωδίκων. Ο υπό εξέταση κώδικας υποβάλλεται σε παρόμοια διαδικασία αναγνώρισης μοτίβων που ελέγχονται σε ένα δέντρο απόφασης αναφοράς. Μεγάλες αποκλίσεις με γειτονικούς κλάδους υποδηλώνουν την παρουσία μιας ανωμαλίας στο υπό έλεγχο σχέδιο.

Η Intel δημοσιεύει το ControlFlag 1.2, ένα εργαλείο για τον εντοπισμό ανωμαλιών στον πηγαίο κώδικα


Πηγή: opennet.ru

Προσθέστε ένα σχόλιο