ControlFlag: et kodefeilsøkingsverktøy

Intel har sluppet gi ut den betydelige versjonen av ControlFlag 1.0, hvilken er en programvarekontrollsystem slik oppdage feil og uregelmessigheter i koden din kilde ved hjelp av et maskinlæringssystem trent på en stor mengde eksisterende kode.

I motsetning til tradisjonelle statiske analysatorer, ControlFlag bruker ikke forhåndsdefinerte regler, der det er vanskelig å forutse alle mulige alternativer, men snarere del av statistikken over bruk av alle typer konstruksjoner språk i et stort antall eksisterende prosjekter.

I følge forskning skjer det å finne og fjerne feil i kode som oftest manuelt og tar mer enn 50 % av utviklernes arbeidstid. 

Verktøyet lærer hvordan du identifiserer og merker disse stilistiske alternativene, og du kan tilpasse feilidentifikasjon og fikse anbefalinger basert på kunnskapen din, og minimere ControlFlag dårlige kodekarakteriseringer som ganske enkelt kan være et stilistisk avvik mellom to team av utviklere.

Om ControlFlag

Systemet trenes opp ved å bygge en statistisk modell fra den eksisterende kildekodematrisen åpen publisert på GitHub og lignende offentlige depoter. I treningsstadiet bestemmer systemet typiske maler for å bygge strukturer i koden og bygger et syntaktisk tre av forbindelser mellom disse malene, som gjenspeiler flyten av kodeutførelse i programmet.

Som et resultat dannes et referansebeslutningstre, som kombinerer utviklingserfaringen til alle analyserte kildetekster. En lignende prosess for å definere mønstre utføres for koden som testes, som sammenlignes med et referansebeslutningstre. Store avvik med tilstøtende grener indikerer en anomali i mønsteret som blir verifisert.

Av egenskapene Av versjonen ControlFlag 1.0, full støtte for C-maler uthevet og evnen til å oppdage anomalier i betingede "hvis"-utsagn.

For eksempel, når du analyserer kodebiten "if (x = 7) y = x;" systemet vil oppdage at konstruksjonen "variabel == tall" vanligvis brukes i setningen "hvis" for å sammenligne numeriske verdier, så indikasjonen "variabel = tall" i setningen "hvis" er sannsynligvis forårsaket av en typografisk feil.

Settet gir et skript som tillater nedlasting av C-repositoriene som er tilgjengelige på GitHub og bruke dem til å bygge en modell. Klar-til-gå-modeller er også tilgjengelige, slik at du kan begynne å sjekke koden din med en gang

Systemet er en del av Machine Programming Research-prosjektet (MPR) fra Intel, hvis hovedmål er å redusere tiden som kreves for programvareutvikling med 1000 ganger på grunn av automatisering.

Spesielt jobber Intel for tiden med å trene Controlflag til automatisk å rette opp oppdagede feil. Også i 2020 ga selskapet ut MISIM-verktøyet, utviklet i samarbeid med MIT-laboratorier, som kan studere kodebiter for å forstå hva et stykke kode prøver å gjøre. Systemet er ment å brukes til å gi utviklere måter å forbedre kodeeffektiviteten på.

"Debugging forventes å forårsake enda mer skade for utviklere og industrien som helhet," sa Intel. Kunngjøring... "Når det er fullt implementert, kan ControlFlag bidra til å redusere denne utfordringen ved å automatisere bryet med programvareutvikling som testing, overvåking og feilsøking."

«Den største fordelen med ControlFlags uovervåkede tilnærming til mønstergjenkjenning er at du i hovedsak kan lære å tilpasse deg utviklerens stil. Fordi programmet har begrenset input til kontrollverktøyene du trenger for å evaluere. ControlFlag kan identifisere typografiske variasjoner i programmeringsspråk på samme måte som lesere kan gjenkjenne fullstendige forskjeller mellom ord og bruke engelske forkortelser, skriver Intel.

Endelig hvis du er interessert i å vite mer om det Om ControlFlag bør du vite at det er skrevet i C++ og er åpen kildekode under MIT-lisensen og dens kode er vert på GitHub.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.