A A A

Komputery będą pomagać w kodowaniu?

31 lipca 2020, 13:00
Sieć neuronowa MISIM może sprawić, że komputery staną się pomocnikami programistów.
Komputery będą pomagać w kodowaniu?

MISIM: Machine Inferred Code Similarity

System o nazwie MISIM (Machine Inferred Code Similarity) potrafi samodzielnie wyodrębnić znaczenie fragmentu kodu – w sposób podobny do tego, jak systemy przetwarzające język naturalny (NLP) mogą odczytywać użytkownikowi akapity napisane w danym języku.

Za projekt odpowiada grupa kierowana przez Justina Gottschlicha, dyrektora zespołu badawczego ds. programowania maszyn w Intelu. W skład grupy wchodzą eksperci z zespołu Intela, Massachusetts Institute of Technology (MIT) i Instytutu Technicznego Georgii. Badają oni możliwości maszyn w zakresie samodzielnego kodowania.

 

Od ołówka do sieci neuronowej

Pierwsi programiści pisali programy ręcznie: rysowali symbole na papierze milimetrowym przed przekształceniem ich w stosy perforowanych kart, które można było przetworzyć na komputerze. Jeden znak w złym miejscu wystarczył, by całą sekwencję pisać od nowa.

Obecnie programiści używają potężnych narzędzi, które automatyzują większość zadań – od wychwytywania błędów podczas pisania po testowanie kodu przed jego wdrożeniem. Ale pod innymi względami niewiele się zmieniło. Nadal jeden błąd może spowodować awarię całego oprogramowania. A ponieważ systemy są coraz bardziej złożone, śledzenie tych błędów staje się coraz trudniejsze. Dlatego powstał MISIM.

 

Zrób to inaczej

System MISIM po odczytaniu tego, co kod każe komputerowi zrobić, może zasugerować inne sposoby pisania kodu. Proponowane poprawki mają sprawić, że programowanie będzie szybsze lub bardziej wydajne. Zdolność narzędzia do rozumienia, co konkretny kod chce zrobić na komputerze, pozwala mu zidentyfikować inne programy wykonujące podobne zadania. W ten sposób maszyny, które napisały własne oprogramowanie, wykorzystują tzw. mozaikę istniejących wcześniej kodów i stworzonych przy ich pomocy programów do doskonalenia nowych kodów.

MISIM najpierw tłumaczy kod na formę, która przechwytuje zlecone zdania, ale ignoruje sposób, w jaki kod jest napisany (czasem dwa programy napisane na różne sposoby robią dokładnie to samo). Następnie wykorzystuje sieć neuronową do znalezienia innego kodu o podobnym znaczeniu.

System działa więc poprzez porównywanie fragmentów kodu z milionami innych programów, które wcześniej poznał. A pobiera je z dużej liczby repozytoriów online. Taka praca wymaga tylko minimalnego nadzoru człowieka.

 

Sukces maszyn

Gottschlich i jego współpracownicy poinformowali, że MISIM jest 40 razy dokładniejszy niż poprzednie systemy, które próbowały w taki sposób działać. To duży krok naprzód, jak podkreśla Veselin Raychev, dyrektor generalny ds. technologii w szwajcarskiej firmie DeepCode, której narzędzia do wykrywania błędów wykorzystują sieci neuronowe, by sugerować koderom ulepszenia podczas pisania.

Raychev wspomina też o ograniczeniach uczenia maszynowego: wciąż nie radzi sobie ono z przewidywaniem, czy coś jest błędem, czy nie. Trudno jest nauczyć sieć neuronową rozróżniania fałszu i prawdy, chyba że zostało to jasno oznaczone przez człowieka. Jednak MISIM omija i ten problem. System wykorzystuje uczenie maszynowe do wykrywania podobieństw między programami, zamiast bezpośrednio identyfikować błędy. Porównując nowy kod z istniejącym oprogramowaniem, o którym wiadomo, że jest poprawne, pokazuje programiście istotne różnice, które mogą okazać się błędami.

Intel planuje wykorzystać to narzędzie jako wewnętrzny system rekomendacji kodu dla programistów, sugerujący alternatywne sposoby pisania kodu (szybsze lub bardziej wydajne). Ponieważ MISIM nie jest powiązany ze składnią konkretnego programu, może potencjalnie zrobić o wiele więcej. Na przykład da się go użyć do przetłumaczenia kodu napisanego w starym języku, takim jak COBOL, na bardziej nowoczesny język, np. Python. To cenna umiejętność, bo wiele instytucji, w tym rząd Stanów Zjednoczonych, nadal polega na oprogramowaniu napisanym w językach, które niewielu programistów potrafi dziś obsługiwać lub aktualizować.

fot. Needpix

 


Tagi:
Ocena:
Oceń:
Komentarze (0)

Redakcja nie ponosi odpowiedzialności za treść komentarzy. Komentarze wyświetlane są od najnowszych.
Najnowsze aktualności


Nie zapomnij o haśle!
21 czerwca 2022
Choć mogą się wydawać mało nowoczesne, hasła to nadal nie tylko jeden z najpopularniejszych sposobów zabezpieczania swoich kont, ale także...


Załóż konto
Co daje konto w serwisie pcformat.pl?

Po założeniu konta otrzymujesz możliwość oceniania materiałów, uczestnictwa w życiu forum oraz komentowania artykułów i aktualności przy użyciu indywidualnego identyfikatora.

Załóż konto