మెషిన్ లెర్నింగ్ మోడల్స్ టైప్ చెక్ అయ్యే టైప్స్క్రిప్ట్ టైప్లను ఉత్పత్తి చేస్తాయా?
Author
Venue
యూరోపియన్ కాన్ఫరెన్స్ ఆఫ్ ఆబ్జెక్ట్ ఓరియెంటెడ్ ప్రోగ్రామింగ్ (ECOOP) 2023
Abstract
టైప్ మైగ్రేషన్ అనేది కంపైల్ సమయంలో భరోసాను పొందడానికి టైప్ చేయని కోడ్కు టైప్లను జోడించే ప్రక్రియ. టైప్స్క్రిప్ట్ మరియు ఇతర క్రమంగా టైప్లను బలోపేతం చేసే సిస్టమ్లు, ప్రోగ్రామర్లను అస్పష్టమైన టైప్లతో ప్రారంభించి, వాటిని క్రమంగా బలోపేతం చేయడానికి అనుమతించడం ద్వారా టైప్ మైగ్రేషన్ను సులభతరం చేస్తాయి. అయితే, టైప్లను జోడించడం అనేది మాన్యువల్ కృషి మరియు పెద్ద, పరిశ్రమ కోడ్బేస్లపై అనేక మైగ్రేషన్లు చాలా సంవత్సరాలు పట్టినట్లు నివేదించబడింది. పరిశోధన సమాజంలో, టైప్స్క్రిప్ట్ టైప్ మైగ్రేషన్ను ఆటోమేట్ చేయడానికి మెషిన్ లెర్నింగ్ను ఉపయోగించడంలో గణనీయమైన ఆసక్తి ఉంది. ఇప్పటికే ఉన్న మెషిన్ లెర్నింగ్ మోడల్లు వ్యక్తిగత టైప్స్క్రిప్ట్ టైప్ అనొటేషన్లను అంచనా వేయడంలో అధిక స్థాయి కచ్చితత్వాన్ని నివేదిస్తున్నాయి. అయితే, ఈ పత్రంలో కచ్చితత్వం తప్పుదారి పట్టించవచ్చని, మనం వేరే ప్రశ్నను పరిష్కరించాలని మేము వాదిస్తున్నాము: ఒక ఆటోమేటిక్ టైప్ మైగ్రేషన్ టూల్ టైప్స్క్రిప్ట్ టైప్ చెకర్ను పాస్ చేసే కోడ్ను ఉత్పత్తి చేయగలదా? మేము టైప్వీవర్ను (TypeWeaver) ప్రదర్శిస్తున్నాము, ఇది ఏదైనా టైప్ అంచనా మోడల్తో ఉపయోగించగల ఒక టైప్స్క్రిప్ట్ టైప్ మైగ్రేషన్ టూల్. మేము లిటరేచర్ నుండి మూడు మోడళ్లతో టైప్వీవర్ను మూల్యాంకనం చేస్తాము: డీప్టైపర్, ఒక రికరెంట్ న్యూరల్ నెట్వర్క్; లాంబడానెట్, ఒక గ్రాఫ్ న్యూరల్ నెట్వర్క్; మరియు ఇన్కోడర్, మధ్యలో పూరించే పనులకు మద్దతు ఇచ్చే ఒక సాధారణ-ప్రయోజనం, బహుళ-భాషా ట్రాన్స్ఫార్మర్. మా టూల్ ఒక టైప్ ప్రిడిక్షన్ మోడల్ను ఉపయోగించడానికి అవసరమైన అనేక దశలను ఆటోమేట్ చేస్తుంది, (1) ఒక ప్రాజెక్ట్ యొక్క డిపెండెన్సీల కోసం టైప్లను దిగుమతి చేసుకోవడం; (2) జావాస్క్రిప్ట్ మాడ్యూల్స్ను టైప్స్క్రిప్ట్ నోటేషన్కు వలస చేయడం; (3) అవసరమైనప్పుడు టైప్స్క్రిప్ట్ను ఉత్పత్తి చేయడానికి ప్రోగ్రామ్లో అంచనా వేయబడిన టైప్ అనోటేషన్లను చొప్పించడం; మరియు (4) అవసరమైనప్పుడు నాన్-టైప్ అంచనాలను తిరస్కరించడం. మేము ఇంతకు ముందెన్నడూ టైప్ చేయని ప్యాకేజీలతో సహా, 513 జావాస్క్రిప్ట్ ప్యాకేజీల డేటాసెట్పై టైప్వీవర్ను మూల్యాంకనం చేసాము. ఉత్తమ టైప్ అంచనా మోడల్తో, కేవలం 21% ప్యాకేజీలు మాత్రమే టైప్ చెక్ అవుతాయని మేము కనుగొన్నాము, కానీ మరింత ప్రోత్సాహకరంగా, 69% ఫైళ్లు విజయవంతంగా టైప్ చెక్ అయ్యాయి.
