77范文网 - 专业文章范例文档资料分享平台

2015-FSE-Suggesting accurate method and class names(2)

来源:网络收集 时间:2020-12-24 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

1privatevoidcreateDefaultShader(){2StringvertexShader="literal_1";3StringfragmentShader="literal_2";

4shader=newShaderProgram(vertexShader,5fragmentShader);

6if(shader.isCompiled()==false)7thrownewIllegalArgumentException(8"literal_3"+shader.getLog());9}

Figureprogrammer1:Amethodingnamedit;fromautomaticallylibgdx’sCameraGroupStrategynamingitrequiresinvent-.Amodelaneologism,suggestsunderstandsaverycreateShadersthathardits.

nameinferenceshouldproblem.startwithOurcreatesubtokenandcanbetterexploitthestructureofcode,takingintoaccountlongrangedependenciesandmodelingthecontextsurroundingtheirde nitionsmorepreciselythanatthetoken-level,whileminimizingtheeffectsofdatasparsity.

Thispapertacklesthemethodnamingproblemwithanovel,neurallogbilinearcontextmodelforcode,inspiredbyneuralprob-abilisticlanguagemodelsfornaturallanguage,whichhaveseenmanyrecentsuccesses[37,28,35,31].Aparticularlyimpressivesuccessofthesemodelshasbeenthattheyassignwordstocon-tinuousvectorsthatsupportanalogicalreasoning.Forexample,vector(’king’)-vector(’man’)+vector(’woman’)resultsinavectorclosetovector(’queen’)[35,36].Althoughmanyofthebasicideashavealonghistory[10],thisclassofmodelisreceivingincreas-ingrecentinterestbecauseofincreasedcomputationalpowerfromGPUsandbecauseofmoreef cientlearningalgorithmssuchasnoisecontrastiveestimation[21,39].

Intuitively,ourmodelassignstoeveryidenti ernameusedinaprojectacontinuousvectorinahighdimensionalspace,insuchawaythatidenti erswithsimilarvectors,or“embeddings”,tendtoappearinsimilarcontexts.Then,tonameamethod(oraclass),weselectthenamethatismostsimilarinthisembeddingspacetothoseinthefunctionbody.Inthisway,ourmodelrealizesFirth’sfamousdictum,“Youshallknowawordbythecompanyitkeeps”.Thissloganencapsulatesthedistributionalhypothesis,thatsemanticallysimilarwordstendtoco-occurwiththesameotherwords.Twowordsaredistributionallysimilariftheyhavesimilardistributionsoversurroundingwords.Forexample,evenifthewords“hot”and“cold”neverappearinthesamesentence,theywillbedistribution-allysimilariftheybothoftenco-occurwithwordslike“weather”and“tea”.Thedistributionalhypothesisisacornerstoneofmuchworkincomputationallinguistics,butweareunawareofpreviousworkthatexploreswhetherthishypothesisholdsinsourcecode.Earlierworkonthenaturalnessofcode[25]foundthatcodetendstorepeatconstructsandexploitedthisrepetitionforprediction,butdidnotconsiderthesemanticsoftokens.Incontrast,thedistribu-tionalhypothesisstatesthatyoushallrecognizesemanticallysimilartokensbecausetheytendalsotobedistributionallysimilar.

Indeed,wequalitativelyshowinSection4thatourcontextmodelproducesembeddingsthatdemonstrateimplicitsemanticknowledgeaboutthesimilarityofidenti ers.Forinstance,itsuccessfullydis-tinguishesgettersandsetters,assignsfunctionnameswithsimilarfunctionality(likegrowandresize)tosimilarlocations,anddis-coversmatchingcomponentsofnames,whichwecallsubtokens,likeminandmax,andheightandwidth.

Furthermore,toallowustosuggestneologisms,weintroduceanewsubtokencontextmodelthatexploitstheinternalstructureofidenti ernames.Inthismodel,wepredictnamesbybreakingthemintoparts,whichwecallsubtokens,suchasget,create,andHeight,andthenpredictingnamesonesubtokenatatime.Thesubtokenmodelautomaticallyinfersconventionsabouttheinternalstructureofvariablenames,suchas“aninterfacestartswithanI”,or“anabstractclassstartswithAbstract”.Oursubtokenmodelalsolearnsconventionslikepre xingnamesofbooleanmethods

withisorhas.Thismodelalsoallowsustoproposeneologisms,byproposingsequencesofsubtokensthathavenotbeenseenbefore.ConsiderFigure1;oursubtokenmodelbuildsandexploresanembeddingspacethatallowsittosuggestcreateShaders,whichisusefullyclosetothenameaprogrammeractuallychose.Ourcontributionsfollow:

Weintroducealog-bilinearneuralnetworktomodelcodecontextsthat,unlikestandardlanguagemodelsinNLP,inte-gratesinformationfrompreceding,succeeding,andnon-localtokens.

Wearethe rsttoapplyaneuralcontextmodeltothemethodnamingproblem;and

Wedemonstratethatourmodelscanaccuratelysuggestnames:forthesimplervariablenamingproblem,theyimproveonthestateoftheart,andforclassandmethodnaming,ourbestmodelachievesF1scoresof60%onmethodnamesand55%onclassnames,whenrequiredtopredictnamesfor20%ofmethodandclassdeclarations.Additionally,oursubtokenmodel,thatcansuggestpreviouslyunseennames,achievesanF1of50%whenrequiredtosuggestnamesfor50%oftheclasses.ExampleSuggestionsToillustrateourmodel’scapabilities,wepresentafewexamplesofnamessuggestedbythemodel(forquan-titativeresults,seeSection5).Whenevaluatedonlibgdx,agraphicslibraryforAndroid,andaskedtosuggestanameforthevariablethatprogrammershadnamedisLooping,althoughitscon dencewaslow,ourmodelhaslearnedthatthenameshouldstartwithis.FormultipartmethodnameslikegetPersistentManifoldPool,itunderstoodgetwasalikelypre x,suggestingitwith38%con -denceandthatManifoldwasimportant,assigningitsinclusionaprobabilityof28%,andevenincludedgetManifoldPoolamongitstop vesuggestions.Onshorteragglutinations,likesetPad,itperformedbetter:all vetop-rankedsuggestionsstartedwithset,fourofitssuggestionsincludedtherootPad,anditrankedsetPad,theactualname,third.Itshandlingofclassnameswassimilar.ItlearnedthatthenameofanexceptionclassshouldendwithExceptionandinferredthatthenamesofActionandTestsub-classesshouldendinActionandTest.AparticularlyinterestingsuggestionourmodelmadethatcaughtoureyewasAndroidAudiofortheclassAndroidMusic.

UseCasesOursuggestionmodelcanbeembeddedwithinavarietyoftoolstosupportcodedevelopmentandcodereview.Duringdevelopment,supposethatthedeveloperisaddingamethodoraclasstoanexistingproject.Afterwritingthebody,thedevelopermaybeunsureifthenameshechoseisdescriptiveandconventionalwithintheproject.Ourmodelsuggestsalternativenamesfrompatternsitlearnedfromothermethodsintheproject.Duringcodereview,ourmodelcanhighlightthosenamestowhichourmodelassignsalowscore.Ineithercase,thesystemhastwophases:atrainingphase,whichtakesasinputatrainingsetofsource les(e.g.thecurrentrevisionoftheproject)andreturnsaneuralnetworkmodelthatcansuggestnames;andatestingordeploymentphase,inwhichtheinputisatrainedneuralnetworkandthesourcecodeofamethodorclass,andtheoutputisarankedlistofsuggestednames.Anysuggestionsystemhasthepotentialtosufferfromwhatwehavecalledthe“Clippyeffect”[2],inwhichtoomanylowqualitysuggestionsalienatetheuser.Topreventthis,oursuggestionmodelalsoreturnsanumericscorethatre ectsitsdegreeofcon denceinitssuggestion;practicaltoolswouldonlymakeasuggestiontotheuserifthecon denceweresuf cientlyhigh.

2.NEURALCONTEXTMODELSOFCODE

Inthissection,weintroducefourlanguagemodelsofcode,start-ingwiththen-grammodeltobuildintuition.Thenweintroduce

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2015-FSE-Suggesting accurate method and class names(2)在线全文阅读。

2015-FSE-Suggesting accurate method and class names(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1169913.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: