CodeNet, një projekt IBM për sistemet e të mësuarit makinerik 

Logoja e IBM

IBM zbuloi së fundmi projekti i tij i ri i quajtur "CodeNet" synon t'u sigurojë studiuesve një grup të dhënash për të eksperimentuar duke përdorur teknikat e të mësuarit makinerik për të krijuar përkthyes nga një gjuhë programimi në tjetrën, si dhe gjeneratorë dhe analistë të kodit.

CodeNet përfshin një koleksion prej 14 milion kampionësh të kodit që zgjidhin 4053 probleme të zakonshme të programimit. Në total, koleksioni përmban rreth 500 milion rreshta kodi dhe mbulon 55 gjuhë programimi, të dyja gjuhët moderne si C ++, Java, Python dhe Go, si dhe gjuhë të trashëguara, përfshirë COBOL, Pascal dhe FORTRAN.

"Softueri po ha botën", shkroi biznesmeni i famshëm amerikan Marc Andreessen në 2011. Shpejt përpara sot: softueri gjendet në shërbimet financiare dhe kujdesin shëndetësor, telefonat inteligjentë dhe shtëpitë e mençura. Edhe veturat tani kanë më shumë se 100 milion rreshta të kodit.

Zhvillimet e projektit lëshohen nën licencën Apache 2.0 dhe grupet e të dhënave pritet të lëshohen në domenin publik.

Shembujt janë shënuar dhe zbatojnë algoritme identikë në gjuhë të ndryshme programimi. Seti i propozuar supozohet të ndihmojë në trajnimin e sistemeve të të mësuarit të makinës dhe të zhvillojë risi në fushën e përkthimit dhe analizës automatike të kodit, për analogji me mënyrën se si baza e të dhënave ImageNet e imazheve të shënuara ndihmon në zhvillimin e sistemeve të njohjes së imazhit dhe vizionit artificial. Garat e ndryshme të programimit përmenden si një nga burimet kryesore të ndërtimit të mbledhjes.

Project CodeNet mund të nxisë në mënyrë specifike inovacionin algoritmik për të nxjerrë këtë kontekst me modele sekuence pas sekuence, ashtu si ato që kemi aplikuar në gjuhët njerëzore, për të bërë një kuptim më domethënës në makinë për të kuptuar kodin sesa përpunimin e kodit. .

Ndryshe nga përkthyesit tradicionalë të bazuar në rregullat e përkthimit, sistemet e të mësuarit në makinë mund të kapin dhe marrin parasysh kontekstin e përdorimit të kodit. Kur konvertoni nga një gjuhë programimi në një tjetër, konteksti është po aq i rëndësishëm sa kur përktheni nga një gjuhë njerëzore në tjetrën. Isshtë mungesa e vetëdijes kontekstuale që e pengon kodin të kthehet nga gjuhët e trashëguara si COBOL.

Prania e një baze të madhe të zbatimeve të algoritmeve në gjuhë të ndryshme do të ndihmojë në krijimin e sistemeve universale të të mësuarit të makinës që, në vend të përkthimit të drejtpërdrejtë midis gjuhëve specifike, manipulojnë një përfaqësim më abstrakt të kodit, të pavarur nga gjuhët specifike të programimit.

Një sistem i tillë mund të përdoret si një përkthyes që përkthen kodin e transmetuar në ndonjë prej gjuhëve të mbështetura në përfaqësimin e tij të brendshëm abstrakt, nga i cili mund të gjenerohet kodi në shumë gjuhë.

Përfshirë sistemin, ju mund të kryeni transformime dydrejtimëshe. Për shembull, bankat dhe agjencitë qeveritare vazhdojnë të përdorin projekte të trashëguara COBOL. Një përkthyes për të mësuar makinerinë mund të shndërrojë kodin COBOL në përfaqësim Java dhe në mënyrë opsionale të përkthejë një fragment Java përsëri në kodin COBOL.

Përveç përkthimit ndërmjet gjuhëve, përmenden fushat e aplikimit CodeNet siç janë krijimi i sistemeve inteligjente të kërkimit të kodit dhe automatizimi i zbulimit të kloneve, si dhe zhvillimi i optimizuesve dhe sistemeve për korrigjimin automatik të kodit.

Në veçanti Shembujt e paraqitur në CodeNet janë të pajisur me meta të dhëna që përshkruajnë rezultatet e testeve të performancës, madhësia e programit që rezulton, konsumi i kujtesës dhe gjendja që lejon të dallosh kodin e saktë nga kodi me gabime (për të dalluar kodin e saktë nga kodi i pasaktë, shembujt me gabime përfshihen posaçërisht në koleksion, pjesa e të cilit është 29,5, XNUMX%).

Një sistem i të mësuarit makinerik mund të marrë parasysh këto meta të dhëna për të gjeneruar kodin më optimal ose për të zbuluar regresionet në kodin e analizuar (sistemi mund të kuptojë që algoritmi nuk është zbatuar në mënyrë optimale në kodin e transmetuar ose përmban gabime).

Më në fund Nëse jeni të interesuar të mësoni më shumë rreth CodeNet, ju mund të kontrolloni detajet Në lidhjen vijuese.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.