Bu sitedeki içerik yapay zeka (AI) veya makine çeviri teknolojisi kullanılarak çevrilmiştir ve hatalar içerebilir.

Skip to content
Programming Languages
Artificial Intelligence

Makine Öğrenimi Modelleri, Tip Denetimi Yapılan TypeScript Tipleri Üretiyor mu?

Author

Ming-Ho Yee (Northeastern) ve Arjun Guha (Northeastern ve Roblox)

Venue

Avrupa Nesneye Yönelik Programlama Konferansı (ECOOP) 2023

Abstract

Tip geçişi, derleme sırasında güvenilirlik sağlamak için tip belirtilmemiş koda tip ekleme sürecidir. TypeScript ve diğer kademeli tip sistemleri, programcıların belirsiz tiplerle başlayıp bunları kademeli olarak güçlendirmelerine olanak tanıyarak tip geçişini kolaylaştırır. Ancak, tip ekleme manuel bir çabadır ve büyük endüstri kod tabanlarında yapılan bazı geçişlerin birkaç yıl sürdüğü bildirilmiştir. Araştırma camiasında, TypeScript tip geçişini otomatikleştirmek için makine öğreniminin kullanılmasına büyük ilgi vardır. Mevcut makine öğrenimi modelleri, tek tek TypeScript tür açıklamalarını tahmin etmede yüksek bir doğruluk derecesi sergilemektedir. Ancak bu makalede, doğruluğun yanıltıcı olabileceğini ve farklı bir soruyu ele almamız gerektiğini savunuyoruz: Otomatik bir tür geçiş aracı, TypeScript tür denetleyicisini geçen kod üretebilir mi? Herhangi bir tür tahmin modeliyle kullanılabilen bir TypeScript tür geçiş aracı olan TypeWeaver'ı sunuyoruz. TypeWeaver'ı literatürdeki üç modelle değerlendiriyoruz: DeepTyper, bir tekrarlayan sinir ağı; LambdaNet, bir grafik sinir ağı; ve InCoder, ortayı doldurma görevlerini destekleyen genel amaçlı, çok dilli bir dönüştürücü. Aracımız, bir tür tahmin modelini kullanmak için gerekli olan birkaç adımı otomatikleştirir: (1) bir projenin bağımlılıkları için türleri içe aktarma; (2) JavaScript modüllerini TypeScript notasyonuna taşıma; (3) gerektiğinde TypeScript üretmek için tahmin edilen tür açıklamalarını programa ekleme; ve (4) gerektiğinde tür olmayan tahminleri reddetme. TypeWeaver'ı, daha önce hiç türlendirilmemiş paketler de dahil olmak üzere 513 JavaScript paketinden oluşan bir veri seti üzerinde değerlendiriyoruz. En iyi tür tahmin modeliyle, paketlerin yalnızca %21'inin tür denetiminden geçtiğini, ancak daha da cesaret verici bir şekilde, dosyaların %69'unun tür denetiminden başarıyla geçtiğini tespit ettik.