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-16 have been examined.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1, 10 and 11 are rejected under 35 U.S.C. 101 because the claimed invention is directed to abstract idea without significantly more.
Claim 1 recites parsing a first source code statement, the first source code statement having: a keyword; and a first programming language construct having a name; wherein the keyword identifies the first programming language construct as an alternate construct associated with the name; and examining the source code to locate a second source code statement having a second programming language construct having the name.
The limitation of parsing, as drafted, is a process that, under its broader reasonable interpretation, covers performance of the limitation in the mind. For example, “parsing a first source code statement” in the context of these claims encompasses a user mentally reviewing source code to identify statements. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
This judicial exception is not integrated into a practical application. In particular, the claim recites the additional step of examining the source code to locate a second source code statement having a second programming language construct having the name.
The examining step is recited at a high level of generality (i.e. as a general means of examining code) and amounts to mere data gathering, which is a form of insignificant extra-solution activity. The combination of this additional step is no more than mere instructions to apply the exception. Accordingly, even in combination, this additional step does not integrate the abstract idea into a practical application because it does not impose meaningful limits on practicing the abstract idea.
The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. The only additional element of examining step which is insignificant extra-solution activity (MPEP 2106.05(d)) and WURC as data gathering, which is covered by court cases in MPEP 2106.05(g)). The claim is not patent eligible.
Claim 10 recites "generating an error responsive to a second source code statement having a second programming language construct with the name not being found" (mental processes). The features of this claim do not add any additional elements integrating the abstract idea into a practical application or amounting to significantly more.
Claim 11 recites "sending a message indicating that an error was generated because an alternate candidate construct with the name was found with no corresponding fix keyword" (mental processes). The features of this claim do not add any additional elements integrating the abstract idea into a practical application or amounting to significantly more.
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-16 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Fairweather (US 2018/0013579).
Per Claim 1:
Fairweather teaches:
- parsing a first source code statement, the first source code statement having: a keyword; and a first programming language construct having a name; wherein the keyword identifies the first programming language construct as an alternate construct associated with the name; and examining the source code to locate a second source code statement having a second programming language construct having the name ([0012] In an embodiment, a method is disclosed. The method comprises using at least one hardware processor to compile a script into a virtual-machine program by: whenever an assignment construct is detected in the script that uses an assign-and-wait-while-pending operator to assign a value to a device property for a device, compiling the assignment construct into one or more instructions that assign the value to the device property and wait until a status associated with the device property indicates that a driver that communicates with the device has acknowledged that the assigned value represents an actual value for the device property before proceeding to any other instruction compiled from the script; whenever a trigger construct is detected in the script, compiling the trigger construct into one or more instructions that perform a body of the trigger construct whenever a transition occurs from a first state in which a condition of the trigger construct is not satisfied to a second state in which the condition of the trigger construct is satisfied; whenever an every construct is detected in the script, compiling the every construct into one or more instructions that perform a body of the every construct after each of a plurality of consecutive lapses of a time interval defined in the every construct; whenever a pause construct is detected in the script, compiling the pause construct into one or more instructions that pause for a length of a time period defined in the pause construct before proceeding to any other instruction compiled from the script; and, whenever an activation construct is detected in the script, compiling the activation construct into one or more instructions that activate a script identified in the activation construct as a child script to the script being compiled. When the activation construct is detected in the script with a predetermined keyword, the one or more instructions that are compiled from the activation construct may activate the child script to execute in parallel with the script being compiled, and, when the activation construct is detected in the script without the predetermined keyword, the one or more instructions that are compiled from the activation construct may activate the child script to execute to completion before proceeding to any other instruction compiled from the script being compiled.).
Per Claim 2:
Fairweather teaches:
- compiling the first programming language construct responsive to the second source code statement having a second keyword identifying the second programming language construct as a construct to be fixed associated with the name; and ignoring the second programming language construct (par. 0012).
Per Claim 3:
Fairweather teaches:
- compiling the second programming language construct responsive to the second source code statement not having a second keyword identifying the second programming language construct as a construct to be fixed associated with the name; and ignoring the first programming language construct (par. 0086-0090).
Per Claim 4:
Fairweather teaches:
- replacing the first-mentioned keyword in the first source code statement with a third keyword, the third keyword identifying the first programming language construct as a construct to be ignored (par. 0086-0090).
Per Claim 5:
Fairweather teaches:
- compiling the first programming language construct responsive to the second source code statement having a second keyword identifying the second programming language construct as a construct to be optimized associated with the name; and ignoring the second programming language construct (par. 0088 and 0092).
Per Claim 6:
Fairweather teaches:
- compiling the second programming language construct responsive to the second source code statement not having a second keyword identifying the second programming language construct as a construct to be optimized associated with the name; and ignoring the first programming language construct (par. 0092).
Per Claim 7:
Fairweather teaches:
- further comprising: replacing the first-mentioned keyword in the first source code statement with third keyword identifying the first programming language construct as a construct to be ignored (par. 0012).
Per Claim 8:
Fairweather teaches:
- compiling the first programming language construct responsive to a second source code statement having a second programming language construct with the name not being found (par. 0087 and 0089-0090).
Per Claim 9:
Fairweather teaches:
- further comprising: sending a message indicating that the second source code statement having a second programming language construct with the name was not located (par. 0271).
Per Claim 10:
Fairweather teaches:
- further comprising: generating an error responsive to a second source code statement having a second programming language construct with the name not being found (par. 0271).
Per Claim 11:
Fairweather teaches:
- further comprising: sending a message indicating that an error was generated because an alternate candidate construct with the name was found with no corresponding fix keyword (par. 0271-0272).
Per Claim 12:
Fairweather teaches:
- encountering a first statement naming a first construct of the source code, the first statement accompanied by a first construct-modification tag conveying a first compiler request identifying the first construct as an alternate construct; scanning the source code for a second statement naming a second construct of the source code, the second statement accompanied by a second construct-modification tag conveying a second compiler request identifying the second construct as an inactive construct; and if the scanning finds the second statement, compiling the first construct and ignoring the second construct ([0012] In an embodiment, a method is disclosed. The method comprises using at least one hardware processor to compile a script into a virtual-machine program by: whenever an assignment construct is detected in the script that uses an assign-and-wait-while-pending operator to assign a value to a device property for a device, compiling the assignment construct into one or more instructions that assign the value to the device property and wait until a status associated with the device property indicates that a driver that communicates with the device has acknowledged that the assigned value represents an actual value for the device property before proceeding to any other instruction compiled from the script; whenever a trigger construct is detected in the script, compiling the trigger construct into one or more instructions that perform a body of the trigger construct whenever a transition occurs from a first state in which a condition of the trigger construct is not satisfied to a second state in which the condition of the trigger construct is satisfied; whenever an every construct is detected in the script, compiling the every construct into one or more instructions that perform a body of the every construct after each of a plurality of consecutive lapses of a time interval defined in the every construct; whenever a pause construct is detected in the script, compiling the pause construct into one or more instructions that pause for a length of a time period defined in the pause construct before proceeding to any other instruction compiled from the script; and, whenever an activation construct is detected in the script, compiling the activation construct into one or more instructions that activate a script identified in the activation construct as a child script to the script being compiled. When the activation construct is detected in the script with a predetermined keyword, the one or more instructions that are compiled from the activation construct may activate the child script to execute in parallel with the script being compiled, and, when the activation construct is detected in the script without the predetermined keyword, the one or more instructions that are compiled from the activation construct may activate the child script to execute to completion before proceeding to any other instruction compiled from the script being compiled.).
Per Claim 13:
Fairweather teaches:
- further comprising ignoring the first construct if the scanning fails to find the second statement (par. 0012).
Per Claim 14:
Fairweather teaches:
- wherein the second construct-modification tag suggests the second construct be fixed (par. 0086-0090).
Per Claim 15:
Fairweather teaches:
- wherein the second construct-modification tag suggests the second construct be optimized (par. 0088 and 0092).
Per Claim 16:
Fairweather teaches:
- wherein the first statement and the second statement include the same construct name (par. 0079-0080).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Drepper (US 11,928,447) teaches a method for code injection at compile time.
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