Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claims 1-20 have been examined.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claim(s) 1-20 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Smith (US 2020/0097261).
Per Claim 1:
Smith teaches:
- receiving a selection of code and a natural language task describing a modification to the selection of code; and generating, by a code generation model and based on information retrieved from a knowledge base provided as input to the code generation model, suggested code reflecting the modification to the selection of code ([0066] … In step 401, a request is received from a user to open an editor 302 of programming environment 300 and the editor is launched 304. In step 402, a source code file is opened and loaded from memory, such as permanent memory or short-term memory, and source code 310 is visually displayed in the editor 302. The editor 302 may include user interface elements for performing actions on the source code 310. In step 403, the editor 302 responds to inputs of the programmer to perform additions, insertions, modifications, edits, or deletions of the source code 310. Inputs of the programmer may be, for example, inputs from a physical or virtual keyboard, taps, clicks, voice commands, or other inputs. In some embodiments, the source code 310 is buffered in short-term memory and edits or changes are made in the buffered in-memory version of the source code 310 until a save file action is performed to save the updated source code file in permanent memory. In step 404, in parallel with the editor allowing the programming to edit the code, the code completion system 342 waits for an event indicating that a programming co-pilot action, such as code completion or predictive editing, should be performed. An event may be an electronic notification in a computer system indicating that an occurrence or activity has taken place. The triggering event may be of various possible types. For example, the triggering event may be detecting that the user has stopped typing for a specified period of time, detecting that the user has just completed typing a token, detecting that the user has added a new character, deleted a character, or otherwise modified the source code 310, detecting that the user has finished typing a specific character, such as a space, determining that a specified time interval has elapsed since the last code completion suggestion, or other events. … [0068] In step 405, when it is determined that code completion, predictive editing, predictive navigation, snippet generation, or other programming co-pilot actions should be performed, the code completion system 342 performs the code completion, predictive editing, predictive navigation, snippet generation, or other programming co-pilot action. … [0071] In some embodiments, the code storage accessed is an external code storage 110, 111, which is globally and publicly accessible. For example, external code storage 110, 111 may comprise code snippets collected from online communities, apps, or websites for sharing code or expert knowledge examples being Stack Overflow or Github. A web scraper may be used to access and download snippets from an online community, app, or website to store the snippets in a code storage 153. … [0057] In an embodiment, machine learning model 200 may comprise beam search. In a beam search, a search may proceed breadth first and a set number of candidates may be expanded at each level of the search. For example, in one embodiment, code completion system 342 may predict the next token in a completion. The probability of the completion may be computed based on inputting the existing code before the completion plus the proposed completion into the language model and receiving as output a probability value. Beam search may be used to search across multiple candidate next tokens by trying a plurality of tokens and computing their probability. In the beam search, the n best-scoring candidates may be selected for further expansion by adding a succeeding token to the proposed completion and again testing the probability based on inputting the tokens into the language model. The n best-scoring candidates may again be chosen for further expansion, and the process may be repeated recursively. …).
Per Claim 2:
Smith teaches:
- further comprising retrieving the information from the knowledge base based on a query comprising the natural language task (par. 0071).
Per Claim 3:
Smith teaches
- wherein the selection of code and the natural language task are received from an integrated development environment (IDE) accessing code including the
selection of code (par. 0060).
Per Claim 4:
Smith teaches:
- generating, based on example code and a reverse natural language task, modified code; and generating a training data sample for the code generation model comprising the modified code, a forward natural language task, and the example code, wherein the forward natural language task comprises a particular code modification and the reverse natural language task comprises a reversal of the particular code modification (par. 0057).
Per Claim 5:
Smith teaches:
- wherein the training data sample facilitates training the code generation model to perform the particular code modification (par. 0057).
Per Claim 6:
Smith teaches:
- further comprising training the code generation model using a plurality of training data samples including the training data sample (par. 0057).
Per Claim 7:
Smith teaches:
- wherein generating the modified code is performed at least in part by another trained model (par. 0055-0056).
Per Claim 8:
Smith teaches:
- wherein generating the suggested code comprises generating additional suggested code for a plurality of files based on the natural language task (par. 0062-0063).
Per Claims 9-16:
These are medium versions of the claimed method discussed above (claims 1-8, respectively), wherein all claim limitations also have been addressed and/or covered in cited areas as set forth above. Thus, accordingly, these claims are also anticipated by Smith.
Per Claims 17-20:
These are system versions of the claimed method discussed above (claims 1-4, respectively), wherein all claim limitations also have been addressed and/or covered in cited areas as set forth above. Thus, accordingly, these claims are also anticipated by Smith.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Rao (US 2016/0062745) teaches a method for context aware model-based code suggestions.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to QAMRUN NAHAR whose telephone number is (571)272-3730. The examiner can normally be reached Monday - Friday 8-4pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Lewis Bullock can be reached on (571)272-3759. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/QAMRUN NAHAR/Primary Examiner, Art Unit 2199