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 .
This action is in response to the amendment filed on 4/8/26.
Claims 1-2, 4-10, 12-18 and 20-23 are pending.
Response to Amendment
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-2, 5-10, 13-18 and 21-23 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, from an integrated development environment (IDE) accessing code, a selection of code comprising a user-selected portion of the code accessed by the IDE and a natural language task describing a modification to the selection of code; and 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. … [0078] In step 503, relevant code snippets are identified from the code storage based on features, such as any of the features described above, for example but not limited to, in step 501. In one embodiment, the relevant code snippets are determined by machine learning model 200 using deterministic, hard-coded rules. For example, in one embodiment, typing a particular token for a class automatically selects as potential code completions the sub-methods or variables of the class. In another example, typing the name of a function automatically selects as a potential code completion a code snippet representing a pattern for making a call to the class. [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 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-10 & 13-16:
These are medium versions of the claimed method discussed above (claims 1-2 and 5-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-18:
These are system versions of the claimed method discussed above (claims 1-2, 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 Claim 21:
Smith teaches:
- wherein the training data sample facilitates training the code generation model to perform the particular code modification (par. 0078).
Per Claim 22:
Smith teaches:
- further comprising training the code generation model using a plurality of training data samples including the training data sample (par. 0071).
Per Claim 23:
Smith teaches:
- wherein generating the modified code is performed at least in part by another trained model (par. 0078).
Allowable Subject Matter
Claims 4, 12 and 20 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Response to Arguments
Applicant's arguments filed on 4/8/26 have been fully considered but they are not persuasive.
In the remarks, the applicant argues that:
a) Smith does not anticipate the claims of the present application under 35 U.S.C. § 102 because Smith does not disclose every element and limitation of independent claims 1, 9, and 17. Particularly, Smith fails to teach receiving, from an integrated development environment (IDE) accessing code, a selection of code comprising a user-selected portion of the code accessed by the IDE 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.
Examiner’s response:
a) Smith teaches receiving, from an integrated development environment (IDE) accessing code, a selection of code comprising a user-selected portion of the code accessed by the IDE 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 (… [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. … [0078] In step 503, relevant code snippets are identified from the code storage based on features, such as any of the features described above, for example but not limited to, in step 501. In one embodiment, the relevant code snippets are determined by machine learning model 200 using deterministic, hard-coded rules. For example, in one embodiment, typing a particular token for a class automatically selects as potential code completions the sub-methods or variables of the class. In another example, typing the name of a function automatically selects as a potential code completion a code snippet representing a pattern for making a call to the class.).
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.
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
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