-
公开(公告)号:WO2021225691A1
公开(公告)日:2021-11-11
申请号:PCT/US2021/022450
申请日:2021-03-16
摘要: A code completion tool uses machine learning models to more precisely predict the likelihood of a method invocation completing a code fragment that follows one or more method invocations of different classes in a same document during program development. In one aspect, the machine learning model is a n-order Markov chain model that is trained on features that represent characteristics of the context of method invocations found in commonly-used programs from a sampled population. The machine learning model is implemented as a hash table contained a ranked order of hash values in descending order of probability of completing a partially-formed method invocation.
-
公开(公告)号:WO2021230995A1
公开(公告)日:2021-11-18
申请号:PCT/US2021/025839
申请日:2021-04-06
发明人: DENG, Shao Kun , JIN, Matthew Glenn , LAHIRI, Shuvendu K. , LIU, Xiaoyu , SHI, Xin , SUNDARESAN, Neelakantan
摘要: Language interoperability between source code programs not compatible with an interprocedural static code analyzer is achieved through language-independent representations of the programs. The source code programs are transformed into respective intermediate language instructions from which a language-independent control flow graph and a language-independent type environment is created. A program compatible with the interprocedural static code analyzer is generated from the language-independent control flow graph and the language-independent type environment in order to utilize the interprocedural static code analyzer to detect memory safety faults.
-
公开(公告)号:WO2021178046A1
公开(公告)日:2021-09-10
申请号:PCT/US2021/013263
申请日:2021-01-13
发明人: ALLAMANIS, Miltiadis , FU, Shengyu , LIU, Xiaoyu , SUNDARESAN, Neelakantan , SVYATKOVSKIY, Alexey
摘要: A code completion system uses neural components to rank the unordered list of code completion candidates generated from an existing static analyzer. The candidates represent the next sequence of tokens likely to complete a partially-formed program element as a developer is typing in a software development tool. A re-ranking component generates a ranked order of the candidates based on a context embedding of the code context and candidate embeddings of the candidates, where both embeddings are based a common token encoding.
-
-