ControlFlag: koodin virheenkorjaustyökalu

Intel on julkaissut julkaisemalla merkittävän version ControlFlag 1.0, joka on ohjelmiston ohjausjärjestelmä jolloin havaita virheet ja poikkeamat koodissasi lähde käyttämällä koneoppimisjärjestelmää, joka on koulutettu suurelle määrälle olemassa olevaa koodia.

Toisin kuin perinteiset staattiset analysaattorit, ControlFlag ei ​​käytä ennalta määritettyjä sääntöjä, jossa on vaikea ennakoida kaikkia mahdollisia vaihtoehtoja, vaan pikemminkin osa kaikentyyppisten rakennusten käyttötilastot monissa olemassa olevissa projekteissa.

Tutkimusten mukaan koodin virheiden etsiminen ja poistaminen tapahtuu useimmiten manuaalisesti ja vie yli 50 % kehittäjien työajasta. 

Työkalu oppii tunnistamaan ja merkitsemään nämä tyylivaihtoehdot, ja voit mukauttaa virheiden tunnistamista ja korjata suosituksia tietosi perusteella minimoimalla ControlFlagin huonon koodin luonnehdinnat, jotka voivat olla yksinkertaisesti kahden kehittäjäryhmän välisiä tyylipoikkeamia.

Tietoja ControlFlagista

Järjestelmä on koulutettu rakentamalla tilastollinen malli olemassa olevasta lähdekoodimatriisista avoin julkaistu GitHubissa ja vastaavissa julkisissa arkistoissa. Harjoitusvaiheessa järjestelmä määrittää tyypilliset mallit koodin rakenteiden rakentamiseksi ja rakentaa näiden mallien välisistä yhteyksistä syntaktisen puun, joka kuvastaa koodin suorittamisen kulkua ohjelmassa.

Tuloksena muodostuu viitepäätöspuu, joka yhdistää kaikkien analysoitujen lähdetekstien kehityskokemuksen. Samanlainen kuvion asetusprosessi suoritetaan testattavalle koodille, jota verrataan viitepäätöspuuhun. Suuret erot vierekkäisten haarojen kanssa osoittavat poikkeavaa kuviossa, jota tarkistetaan.

Ominaisuuksista Versiosta ControlFlag 1.0, täysi tuki C-malleille on korostettu ja kyky havaita poikkeavuuksia ehdollisissa "jos"-lauseissa.

Esimerkiksi jäsennettäessä koodinpätkää "if (x = 7) y = x;" järjestelmä havaitsee, että lauseessa "if" käytetään yleensä konstruktia "muuttuja == numero" numeeristen arvojen vertailuun, joten ilmaisu "muuttuja = numero" lauseessa "if" johtuu todennäköisesti typografisesta virheestä.

Pakkaus tarjoaa komentosarjan, jonka avulla voidaan ladata GitHubissa saatavilla olevat C-tietovarastot ja käytä niitä mallin rakentamiseen. Saatavilla on myös valmiita malleja, joiden avulla voit aloittaa koodin tarkistamisen heti

Järjestelmä on osa koneohjelmointitutkimusprojektia (MPR) Inteliltä, ​​jonka päätavoitteena on lyhentää ohjelmistokehitykseen kuluvaa aikaa 1000-kertaiseksi automatisoinnin ansiosta.

Intel työskentelee parhaillaan erityisesti kouluttaakseen Controlflagin korjaamaan havaitut virheet automaattisesti. Myös vuonna 2020 yritys julkaisi MIT-laboratorioiden kanssa yhteistyössä kehitetyn MISIM-työkalun, joka voi tutkia koodinpätkiä ymmärtääkseen, mitä koodinpalalla on tarkoitus tehdä. Järjestelmä on tarkoitettu tarjoamaan kehittäjille tapoja parantaa koodin tehokkuutta.

"Virheenkorjauksen odotetaan aiheuttavan vielä enemmän vahinkoa kehittäjille ja koko teollisuudelle", Intel sanoi. Ilmoitus… "Kun ControlFlag on täysin toteutettu, se voi auttaa lieventämään tätä haastetta automatisoimalla ohjelmistokehityksen vaivan, kuten testauksen, valvonnan ja virheenkorjauksen."

”ControlFlagin valvomattoman hahmontunnistustavan tärkein etu on, että voit oppia mukautumaan kehittäjän tyyliin. Koska ohjelmalla on rajoitetusti syötettä arvioitaviin ohjaustyökaluihin. ControlFlag pystyy tunnistamaan ohjelmointikielten typografiset vaihtelut samalla tavalla kuin lukijat voivat tunnistaa täydelliset erot sanojen välillä ja käyttää englanninkielisiä lyhenteitä”, Intel kirjoittaa.

Vihdoin jos olet kiinnostunut tietämään siitä lisää Tietoja ControlFlagista sinun pitäisi tietää, että se on kirjoitettu C ++ -kielellä ja on avoimen lähdekoodin MIT-lisenssin ja sen koodin alainen. isännöi GitHubissa.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.