ControlFlag: una eina de depuració de codi

Intel ha donat a conèixer l'alliberament de la versió significativa de ControlFlag 1.0, el qual és un sistema de control de programari que permet detectar errors i anomalies al codi font mitjançant un sistema daprenentatge automàtic entrenat en una gran quantitat de codi existent.

A diferència dels analitzadors estàtics tradicionals, ControlFlag no aplica regles predefinides, en què és difícil preveure totes les opcions possibles, sinó que part de les estadístiques d'ús de tota mena de construccions de llenguatge en una gran quantitat de projectes existents.

Segons la investigació, la cerca i eliminació d'errors al codi es realitza amb més freqüència de forma manual i pren més del 50% del temps de treball dels desenvolupadors. 

L'eina aprèn a identificar i etiquetar aquestes opcions estilístiques i pot personalitzar la identificació d'errors i les recomanacions de solucions en funció dels seus coneixements, cosa que minimitza les caracteritzacions de codi erroni de ControlFlag que poden ser simplement una desviació estilística entre dos equips de desenvolupadors .

Sobre ControlFlag

el sistema s'entrena mitjançant la construcció d'un model estadístic de la matriu existent de codi font obert publicat a GitHub i repositoris públics similars. A l'etapa d'entrenament, el sistema determina plantilles típiques per construir estructures al codi i construeix un arbre sintàctic de connexions entre aquestes plantilles, reflectint el flux d'execució del codi al programa.

Com a resultat, es forma un arbre de decisions de referència, que combina lexperiència de desenvolupament de tots els textos font analitzats. Es realitza un procés semblant de definició de patrons per al codi sota prova, que es compara amb un arbre de decisions de referència. Les grans discrepàncies amb les branques adjacents indiquen una anomalia al patró que s'està verificant.

De les característiques de la versió ControlFlag 1.0, es destaquen el suport complet per a plantilles C i la capacitat de detectar anomalies en declaracions condicionals if.

Per exemple, en analitzar el fragment de codi «if(x=7) y=x;» el sistema detectarà que la construcció «variable==número» s'usa generalment en la instrucció «if» per comparar valors numèrics, per la qual cosa la indicació «variable=número» a la instrucció «if» és probablement causada per un error tipogràfic.

el kit proporciona un script que permet descarregar els repositoris de C disponibles a GitHub i fer-los servir per construir un model. També hi ha disponibles models llestos per utilitzar, cosa que us permet començar a verificar el codi immediatament

el sistema és part del projecte Machine Programming Research (MPR) d'Intel, l'objectiu principal del qual és reduir el temps requerit per al desenvolupament de programari en 1000 vegades a causa de l'automatització.

En particular, Intel està treballant actualment per entrenar Controlflag perquè corregeixi automàticament els errors detectats. També el 2020, la companyia va llançar l'eina MISIM, desenvolupada conjuntament amb els laboratoris del MIT, que pot estudiar fragments de codi per comprendre què pretén fer una part del codi. Està previst que el sistema s'utilitzi per tal d'oferir als desenvolupadors maneres de millorar l'eficiència del codi.

«S'espera que la depuració causi encara més mal als desenvolupadors i la indústria en conjunt», va dir Intel. Anunci … «Quan es realitza completament, ControlFlag pot ajudar a mitigar aquest desafiament en automatitzar la molèstia del desenvolupament de programari, com les proves, el monitoreig i la depuració».

“El principal avantatge de l'enfocament sense supervisió de ControlFlag per al reconeixement de patrons és que essencialment pots aprendre a adaptar-te a l'estil del desenvolupador. Com que el programa té una entrada limitada a les eines de control que cal avaluar. ControlFlag pot identificar variacions tipogràfiques en llenguatges de programació de la mateixa manera que els lectors poden reconèixer diferències completes entre paraules i fer servir abreviatures en anglès”, escriu Intel.

Finalment si estàs interessat en poder conèixer més a l'respecte sobre ControlFlag, has de saber que està escrit a C++ i és de codi obert sota la llicència MIT i el seu codi s'allotja a GitHub.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.