ControlFlag: een code debugging tool

Intel heeft vrijgegeven het vrijgeven van de significante versie van ControleVlag 1.0, wat een is softwarebesturingssysteem: waardoor fouten en afwijkingen in uw code detecteren broncode met behulp van een machine learning-systeem dat is getraind op een grote hoeveelheid bestaande code.

In tegenstelling tot traditionele statische analysers, ControlFlag past geen vooraf gedefinieerde regels toe, waarin het moeilijk is om alle mogelijke opties te voorzien, maar onderdeel van de gebruiksstatistieken van alle soorten constructies taal in een groot aantal bestaande projecten.

Volgens onderzoek wordt het vinden en verwijderen van bugs in code meestal handmatig gedaan en neemt het meer dan 50% van de werktijd van ontwikkelaars in beslag. 

De tool leert hoe u deze stilistische opties kunt identificeren en labelen en u kunt de identificatie van bugs aanpassen en aanbevelingen oplossen op basis van uw kennis, waardoor slechte codekarakteriseringen van ControlFlag, die eenvoudigweg een stilistische afwijking tussen twee teams van ontwikkelaars kunnen zijn, worden geminimaliseerd.

Over ControlFlag

Het systeem wordt getraind door een statistisch model te bouwen op basis van de bestaande broncodematrix open gepubliceerd op GitHub en vergelijkbare openbare repositories. In de trainingsfase bepaalt het systeem typische sjablonen om structuren in de code te bouwen en bouwt het een syntactische boom van verbindingen tussen deze sjablonen, die de stroom van code-uitvoering in het programma weerspiegelt.

Als resultaat wordt een referentiebeslissingsboom gevormd, die de ontwikkelingservaring van alle geanalyseerde bronteksten combineert. Een soortgelijk proces voor het instellen van patronen wordt uitgevoerd voor de te testen code, die wordt vergeleken met een referentiebeslissingsboom. Grote verschillen met aangrenzende takken duiden op een anomalie in het patroon dat wordt geverifieerd.

Van de kenmerken Van de versie ControlFlag 1.0, volledige ondersteuning voor C-sjablonen is gemarkeerd en het vermogen om te detecteren anomalieën in voorwaardelijke "als" -instructies.

Bijvoorbeeld bij het ontleden van het codefragment "if (x = 7) y = x;" het systeem zal detecteren dat de constructie "variabele == getal" over het algemeen wordt gebruikt in de instructie "if" om numerieke waarden te vergelijken, dus de aanduiding "variabele = getal" in de instructie "if" wordt waarschijnlijk veroorzaakt door een typografische fout.

uitrusting biedt een script waarmee de C-opslagplaatsen die beschikbaar zijn op GitHub . kunnen worden gedownload en gebruik ze om een ​​model te bouwen. Er zijn ook kant-en-klare modellen beschikbaar, zodat u meteen kunt beginnen met het controleren van de code

Het systeem maakt deel uit van het onderzoeksproject Machine Programming (MPR) van Intel, wiens belangrijkste doel het is om door automatisering de tijd die nodig is voor softwareontwikkeling met 1000 keer te verminderen.

In het bijzonder werkt Intel momenteel aan het trainen van Controlflag om gedetecteerde fouten automatisch te corrigeren. Ook in 2020 bracht het bedrijf de MISIM-tool uit, ontwikkeld in samenwerking met MIT-labs, die codefragmenten kan bestuderen om te begrijpen wat een stuk code moet doen. Het systeem is bedoeld om ontwikkelaars te voorzien van manieren om de code-efficiëntie te verbeteren.

"Debugging zal naar verwachting nog meer schade toebrengen aan ontwikkelaars en de industrie als geheel", aldus Intel. Aankondiging… "Wanneer het volledig is geïmplementeerd, kan ControlFlag deze uitdaging helpen verminderen door het gedoe van softwareontwikkeling zoals testen, monitoren en debuggen te automatiseren."

“Het belangrijkste voordeel van ControlFlag's ongecontroleerde benadering van patroonherkenning is dat je in wezen kunt leren je aan te passen aan de stijl van de ontwikkelaar. Omdat het programma beperkte input heeft voor de controletools die je moet evalueren. ControlFlag kan typografische variaties in programmeertalen identificeren op dezelfde manier waarop lezers volledige verschillen tussen woorden kunnen herkennen en Engelse afkortingen kunnen gebruiken”, schrijft Intel.

Eindelijk als u er meer over wilt weten Over ControlFlag, u moet weten dat het is geschreven in C ++ en open source is onder de MIT-licentie en de bijbehorende code wordt gehost op GitHub.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.