Intel allibero el codi font de ControlFlag un sistema d'aprenentatge automàtic per detectar errors al codi

Intel va donar a conèixer mitjançant un anunci els desenvolupaments relacionats amb el projecte de recerca ControlFlag, el qual està destinat a crear un sistema daprenentatge automàtic per millorar la qualitat del codi.

L'eina ha estat alliberada sota la llicència MIT i es destaca per permetre, a partir d'un model entrenat sobre una gran quantitat de codi existent, identificar diversos errors i anomalies als textos font escrits en llenguatges d'alt nivell com a C/C++.

el sistema és adequat per detectar diversos tipus de problemes al vostre codi, des de detectar errors tipogràfics i combinacions incorrectes de tipus, fins a identificar comprovacions que falten per a valors nuls en punters i problemes amb la memòria.

El sistema aprèn per ell mateix 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.

Perquè ControlFlag estigui més disponible per a la comunitat de desenvolupament de programari en general, Intel es complau a anunciar que ControlFlag ara és de codi obert i es pot accedir a https://github.com/IntelLabs/control-flag . Ens complau brindar als desenvolupadors l'oportunitat de desenvolupar-hi i veure què més es pot fer amb aquesta tecnologia extremadament valuosa i innovadora.

Des de la seva introducció, ControlFlag s'ha provat en programari de nivell de producció i en sistemes de programari de codi obert àmpliament utilitzats. Per exemple, l'any passat, ControlFlag va identificar una anomalia de codi a Client URL (cURL), un projecte de programari informàtic que transfereix dades utilitzant diversos protocols de xarxa més de mil milions de vegades al dia. Després d'informar l'anomalia a l'equip de cURL, van estar d'acord amb les troballes de ControlFlag i posteriorment van apedaçar-ne el codi.

Es realitza un procés similar 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. El sistema també permet no només identificar un error a la plantilla, sinó també suggerir una solució. Per exemple, en analitzar el fragment de codi «if(x=7) y=x;» el sistema ha determinat 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==nombre" en la instrucció "if" és probablement causada per un error tipogràfic .

Els analitzadors estàtics tradicionals detectarien un error d'aquest tipus, però, a diferència d'ells, ControlFlag no aplica regles llestes per utilitzar, on és difícil preveure totes les opcions possibles, sinó que parteix de les estadístiques de l'ús de tota mena de construccions en una gran quantitat de projectes.

Com a experiment, en utilitzar ControlFlag al codi font de la utilitat cURL, que sovint se cita com un exemple de codi provat i d'alta qualitat, els analitzadors estàtics van revelar un error inadvertit en fer servir l'element d'estructura «s-> keepon», que tenia un tipus numèric, però es va comparar amb el valor booleà TRUE.

Al codi OpenSSL, a més del problema esmentat anteriorment amb «(s1==NULL) ∧ (s2==NULL)», també es van detectar anomalies en les expressions «(-2 == rv)» que menys va ser un error tipogràfic.

També s'informa que l'ús de ControlFlag va fer possible identificar diversos centenars d'errors en programari propietari no específic, fet que va provocar falles i problemes amb la memòria.

Finalment si estàs interessat en poder conèixer més a l'respecte, Pots consultar els detalls en el següent enllaç. Pel que fa als que estiguin interessats a poder veure el codi font, obtenir-lo o clonar-lo en un repositori, poden fer-ho des de el següent enllaç.


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: AB Internet Networks 2008 SL
  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ó.