IBM hapi CodeNet për sistemet e mësimit të makinave, që përkthen dhe verifikon kodin

Kompania IBM prezantoi iniciativën CodeNet, e cila ka për qëllim ofrimin për hulumtues të një grupi të dhënash që lejojnë eksperimentimin me aplikimin e metodave të mësimit të makinerive për të krijuar translatorë nga një gjuhë programimi në një tjetër, si dhe gjeneratorë dhe analizues të kodit. CodeNet përmban një koleksion prej 14 milion shembujsh kodi, që zgjidhin 4053 probleme të zakonshme programimi. Në total, koleksioni ka rreth 500 milion rreshta kodi dhe mbulon 55 gjuhë programimi, si gjuhë moderne si C++, Java, Python dhe Go, ashtu edhe gjuhë të vjetra, përfshirë COBOL, Pascal dhe FORTRAN. Puna e projektit shpërndahet nën licencën Apache 2.0, dhe grupet e të dhënave planifikohen të shpërndahen nën formën e trashëgimisë publike.

Shembujt janë të pajisur me annotime dhe implementojnë algoritme identike në gjuhë të ndryshme programimi. Supozohet se grupi i propozuar do të ndihmojë në trajnimin e sistemeve të mësimit të makinerive dhe zhvillimin e inovacioneve në fushën e translation-it dhe analizës automatike të kodit, në mënyrë të ngjashme me atë siç ndihmoi baza e të dhënave të imazheve të annotuara ImageNet zhvillimin e sistemeve të njohjes së imazheve dhe shikimit të makinerisë. Një nga burimet kryesore të formimit të koleksionit shpallet të jetë garat e ndryshme të programimit.

Ndryshe nga translatorët tradicionalë, të realizuar në bazë të rregullave të transformimit, sistemet e mësimit të makinerive mund të kapin dhe marrin parasysh kontekstin e përdorimit të kodit. Kur bëhet fjalë për transformimin nga një gjuhë programimi në një tjetër, konteksti është po aq i rëndësishëm sa në përkthimin e një gjuhe njerëzore në një tjetër. Pikërisht mungesa e marrjes parasysh të kontekstit pengon transformimin e kodit nga gjuhë të vjetra, siç është COBOL.

Prania e një baze të madhe realizimesh algoritmash në gjuhë të ndryshme do të ndihmojë në krijimin e sistemeve universale të mësimit të makinerive, të cilat në vend të përkthimit të drejtpërdrejtë ndërmjet gjuhëve specifike, manipulojnë me një përfaqësim më abstrakt të kodit, të pavarur nga gjuhët e caktuara të programimit. Një sistem i tillë mund të përdoret si një translator, që përkthen kodin e dorëzuar në çdo një nga gjuhët e mbështetura në përfaqësimin e tij të brendshëm abstrakt, nga i cili mund të gjenerohet më pas kod në shumë gjuhë.

Sistemi do të jetë në gjendje të kryejë transformime dy drejtimesh. Për shembull, në banka dhe institucione shtetërore vazhdojnë të përdoren projekte të shkruara në gjuhën e vjetruar COBOL. Një përkthyes i bazuar në një sistem të mësimit të makinerive do të jetë në gjendje të konvertojë kodin COBOL në një përfaqësim në gjuhën Java, dhe nëse nevojitet, të kthejë një fragment nga Java përsëri në kodin COBOL.

Përveç përkthimit midis gjuhëve, në CodeNet përmenden fusha të tilla si krijimi i sistemeve inteligjente për kërkimin e kodit dhe automatizimin e identifikimit të klonëve, si dhe zhvillimi i optimizuesve dhe sistemeve automatike të korrigjimit të kodit. Në veçanti, shembujt e paraqitur në CodeNet janë të shoqëruar me metadata, të cilat përshkruajnë rezultatet e testimit të performancës, madhësinë e rezultuar të programit, konsumimin e memories dhe gjendjen që lejon dallimin e kodit të saktë nga ai me gabime (për të bërë dallimin midis kodit të saktë dhe atij të gabuar, në koleksion janë përfshirë posaçërisht shembuj me gabime, që përbëjnë 29.5%). Sistemi i mësimit të makinerive mund të marrë parasysh këto metadata për të gjeneruar kodin më optimal ose për të identifikuar regresionet në kodin që po analizohet (sistemi mund të kuptojë se algoritmi në kodin e dërguar nuk është implementuar në mënyrë optimale ose përmban gabime).

Burimi: opennet.ru

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster