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 .
DETAILED ACTION
1. This Office Action is in response to the arguement filed on 05/12/2026. Claims 31-61 are pending in this application while claims 1-30 are canceled. Claims 31, 43 and 49 are independent claims. This Office Action is made Final.
Claim Rejections - 35 USC § 101
2. 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.
3. Claims 31-61 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. The independent claims 31, 43 and 49 are corresponding to one of four statutory categories including method, system, and method respectively under step 1.
The claim 31 recites “a method comprising: receiving, at a compiler, source code comprising a loop construct associated with one or more state variables; verifying, by the compiler, a State Variable Mutation (SVM) principle for the loop construct, wherein the SVM principle is not satisfied when a total number of state variables defined in association with the loop construct is not equal to a total number of unique state variables mutated within the loop construct; generating a compiler message when the SVM principle is not satisfied during compilation; providing validated code when the SVM principle is satisfied”.
The claim 43 recites “a system for compiling source code, comprising: a scanner that scans a source code statement and a parser engine that parses the source code statement, wherein the source code statement defines one or more state variables and a loop construct in which the one or more state variables are mutated; an intermediate representation generator engine that receives a parse tree from the scanner and parser and generates an Intermediate Representation (IR); a loop concurrency validator engine that receives the IR and generates a concurrency validated IR; a code optimizer engine that receives the concurrency validated IR and generates an optimized concurrency validated IR; a code generator engine that receives the optimized concurrency validated IR and generates validated code”.
The claim 49 recites “a method for compiling source code of a programming language, the method comprising: receiving one or more state variables associated with a loop construct; verifying that each state variable is not mutated more than once; and generating a compiler message if a state variable is mutated more than once”.
The limitation of the claim 31 of “verifying, by the compiler, a State Variable Mutation (SVM) principle for the loop construct, wherein the SVM principle is not satisfied when a total number of state variables defined in association with the loop construct is not equal to a total number of unique state variables mutated within the loop construct” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “verifying” in the context of this claim encompasses the user may verify a State Variable Mutation (SVM) principle for the loop construct, wherein the SVM principle is not satisfied when a total number of state variables defined in association with the loop construct is not equal to a total number of unique state variables mutated within the loop construct with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 31 recites additional elements such as “receiving, at a compiler, source code comprising a loop construct associated with one or more state variables;”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to mere data gathering under MPEP § 2106.05(g): Insignificant Extra-Solution Activity, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 31 recites additional elements such as “generating a compiler message when the SVM principle is not satisfied during compilation;”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to mere data displaying under MPEP § 2106.05(g): Insignificant Extra-Solution Activity, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 31 recites additional elements such as “providing validated code when the SVM principle is satisfied”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to apply it under MPEP § 2106.05(f): Mere Instructions to Apply an Exception, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
The limitation of the claim 43 of “a scanner that scans a source code statement and a parser engine that parses the source code statement,” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “scanning” and “parsing” in the context of this claim encompasses the user may scan a source code statement and parse the source code statement with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 43 of “wherein the source code statement defines one or more state variables and a loop construct in which the one or more state variables are mutated” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “defining” in the context of this claim encompasses the user may define one or more state variables and a loop construct in which the one or more state variables are mutated in the source code statement with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 43 recites additional elements such as “an intermediate representation generator engine that receives a parse tree from the scanner and parser”, “a loop concurrency validator engine that receives the IR”, “a code optimizer engine that receives the concurrency validated IR” and “a code generator engine that receives the optimized concurrency validated IR”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to mere data gathering under MPEP § 2106.05(g): Insignificant Extra-Solution Activity, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 43 recites additional elements such as “an intermediate representation generator engine that generates an Intermediate Representation (IR);”, “a loop concurrency validator engine that generates a concurrency validated IR”, “a code optimizer engine that generates an optimized concurrency validated IR” and “a code generator engine that generates validated code”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to apply it under MPEP § 2106.05(f): Mere Instructions to Apply an Exception, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
The limitation of the claim 49 of “verifying that each state variable is not mutated more than once” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “verifying” in the context of this claim encompasses the user may verify that each state variable is not mutated more than once with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 49 recites additional elements such as “receiving one or more state variables associated with a loop construct”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to mere data gathering under MPEP § 2106.05(g): Insignificant Extra-Solution Activity, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 49 recites additional elements such as “generating a compiler message if a state variable is mutated more than once”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to mere data displaying under MPEP § 2106.05(g): Insignificant Extra-Solution Activity, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 32 recites additional elements such as “returning values of the mutated state variables at the end of the loop construct if the SVM principle is satisfied”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to mere data displaying under MPEP § 2106.05(g): Insignificant Extra-Solution Activity, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
The limitation of the claim 33 of “wherein the state variables are accessible and mutated only within a scope of the loop construct, except when returned by a return statement associated with an enclosing construct, wherein mutation of the state variables is restricted outside the scope of the loop construct” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “accessing”, “mutating” in the context of this claim encompasses the user may access and mutate the state variables only within a scope of the loop construct, except when returned by a return statement associated with an enclosing construct, wherein mutation of the state variables is restricted outside the scope of the loop construct with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 34 recites additional elements such as “all instructions at a same indentation level within the loop construct are executed concurrently, ensuring that each state variable mutation adheres to the State Variable Mutation (SVM) principle during parallel execution”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to apply it under MPEP § 2106.05(f): Mere Instructions to Apply an Exception, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 35 recites additional elements such as “each of the one or more state variables is either a singleton variable or a collection variable, the collection variable comprising an unordered set of non-duplicate elements called the collection set or a sequence of ordered elements called the collection sequence”.
Examiner would like to point out that with the broad reasonable interpretation, this element
especially “a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a device to cause the device” amount to additional elements such as insignificant extra-solution such as “field of use” as in MPEP § 2106.05(h): Field of Use and Technological Environment, which does not impose any meaningful limits on practicing the mental process. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under step 2B.
The limitation of the claim 36 of “verification of SVM principles includes ensuring that a total number of singleton state variables and collection set state variables defined in the loop construct matches a total number of mutation statements attempting to mutate the singleton and collection set state variables within the loop construct and generating an appropriate compiler message if the numbers are unequal” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “matching” in the context of this claim encompasses the user may ensure that a total number of singleton state variables and collection set state variables defined in the loop construct matches a total number of mutation statements attempting to mutate the singleton and collection set state variables within the loop construct and generating an appropriate compiler message if the numbers are unequal with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 37 of “a mutation operation changes a value of a first state variable of the one or more state variables, and wherein the mutation operation is an update operation” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “changing” in the context of this claim encompasses the user may change a value of a first state variable of the one or more state variables, and wherein the mutation operation is an update operation with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 38 of “a mutation operation applied to a collection state variable changes a size of a first variable of one or more collection state variables, and wherein a mutation operation is an append operation or a remove operation” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “changing” in the context of this claim encompasses the user may change a size of a first variable of one or more collection state variables by a mutation operation applied to a collection state variable, and wherein a mutation operation is an append operation or a remove operation with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 39 of “the mutation operation applied to the collection state variable modifies either a value of an element in the collection or a size of the collection relative to a previous iteration of the corresponding element of the collection, wherein: for a collection set variable, the mutation includes discarding the old set and creating a new set during append or removal of an element within the set; and for a collection sequence variable, the mutation modifies either the value at a specific index location or a size of the sequence by appending or removing an element at a specified index location” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “modifying” in the context of this claim encompasses the user may modify either a value of an element in the collection or a size of the collection relative to a previous iteration of the corresponding element of the collection, wherein: for a collection set variable, the mutation includes discarding the old set and creating a new set during append or removal of an element within the set; and for a collection sequence variable, the mutation modifies either the value at a specific index location or a size of the sequence by appending or removing an element at a specified index location with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 40 recites additional elements such as “the one or more state variables includes a collection sequence state variable, and wherein two or more mutation operations attempting to update a same index location of a collection sequence state variable results in an invalid mutation and a corresponding compiler message being produced”.
Examiner would like to point out that with the broad reasonable interpretation, this element
especially “a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a device to cause the device” amount to additional elements such as insignificant extra-solution such as “field of use” as in MPEP § 2106.05(h): Field of Use and Technological Environment, which does not impose any meaningful limits on practicing the mental process. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under step 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 41 recites additional elements such as “the one or more state variables are accessible to an enclosing construct of the loop construct using a return statement”.
Examiner would like to point out that with the broad reasonable interpretation, this element
especially “a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a device to cause the device” amount to additional elements such as insignificant extra-solution such as “field of use” as in MPEP § 2106.05(h): Field of Use and Technological Environment, which does not impose any meaningful limits on practicing the mental process. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under step 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 42 recites additional elements such as “the loop construct is a foreach loop construct, and wherein mutation of an iteration parameter of the foreach loop construct is prohibited within the loop construct”.
Examiner would like to point out that with the broad reasonable interpretation, this element
especially “a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a device to cause the device” amount to additional elements such as insignificant extra-solution such as “field of use” as in MPEP § 2106.05(h): Field of Use and Technological Environment, which does not impose any meaningful limits on practicing the mental process. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under step 2B.
The limitation of the claim 44 of “perform validation of the one or more state variables in the IR, which are mutated within the loop construct” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “validating” in the context of this claim encompasses the user may validate the one or more state variables in the IR, which are mutated within the loop construct with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 44 recites additional elements such as “generate a compiler message if not validated, wherein the state variable is a singleton state variable or a collection state variable”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to mere data displaying under MPEP § 2106.05(g): Insignificant Extra-Solution Activity, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
The limitation of the claim 45 of “a state dependency analyzer subengine to associate the one or more state variables to corresponding loop constructs, wherein the one or more state variables of the loop construct are valid as determined by the state validator subengine” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “associating” and “determining” in the context of this claim encompasses the user may associate the one or more state variables to corresponding loop constructs and determine that the one or more state variables of the loop construct are valid with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 46 of “the state variable is selected from the group consisting of a single state variable, a collection sequence state variable, and a combination of these” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “selecting” in the context of this claim encompasses the user may associate the one or more state variables to corresponding loop constructs and determine that the one or more state variables of the loop construct are valid with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 47 of “wherein during operation: the state mutation analyzer sub-engine determines that a first state variable of the one or more state variables is a singleton state variable or a collection set state variable; the state localizer determines a scope of the first variable with respect to the loop construct; and the instruction-specific state appropriator determines that a state of the loop construct within a determined scope is assigned to not more than one mutation instruction” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “determining” in the context of this claim encompasses the user may determine that a first state variable of the one or more state variables is a singleton state variable or a collection set state variable; the state localizer determines a scope of the first variable with respect to the loop construct; and determine that a state of the loop construct within a determined scope is assigned to not more than one mutation instruction with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 47 recites additional elements such as “a state mutation analyzer subengine that includes a state localizer and an instruction-specific state appropriator”.
Examiner would like to point out that with the broad reasonable interpretation, this element
especially “a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a device to cause the device” amount to additional elements such as insignificant extra-solution such as “field of use” as in MPEP § 2106.05(h): Field of Use and Technological Environment, which does not impose any meaningful limits on practicing the mental process. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under step 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 47 recites additional elements such as “generates an invalid mutation compiler message when the same state variable is mutated more than once”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to mere data displaying under MPEP § 2106.05(g): Insignificant Extra-Solution Activity, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
The limitation of the claim 48 of “the state mutation analyzer determines that a first state variable of the one or more state variables is a collection sequence variable; the state localizer determines a scope of the first variable with respect to the loop construct; and the instruction-specific state appropriator determines that a state of the loop construct within a determined scope is assigned to not more than one mutation instruction” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “determining” in the context of this claim encompasses the user may determine that a first state variable of the one or more state variables is a collection sequence variable; the state localizer determines a scope of the first variable with respect to the loop construct; and determine that a state of the loop construct within a determined scope is assigned to not more than one mutation instruction with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 48 recites additional elements such as “a state mutation analyzer subengine that includes a state localizer and an instruction-specific state appropriator, wherein during operation”.
Examiner would like to point out that with the broad reasonable interpretation, this element
especially “a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a device to cause the device” amount to additional elements such as insignificant extra-solution such as “field of use” as in MPEP § 2106.05(h): Field of Use and Technological Environment, which does not impose any meaningful limits on practicing the mental process. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under step 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 48 recites additional elements such as “generates an invalid mutation compiler message when more than one mutation statements access the same index location of the collection sequence variable”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to mere data displaying under MPEP § 2106.05(g): Insignificant Extra-Solution Activity, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
The limitation of the claim 50 of “a singleton state variable is mutated no more than once within the loop construct” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “mutating” in the context of this claim encompasses the user may mutate a singleton state variable no more than once within the loop construct with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 51 of “a collection set state variable is mutated no more than once within the loop construct” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “mutating” in the context of this claim encompasses the user may mutate a collection set state variable no more than once within the loop construct with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 52 of “the state variables are accessible and mutated only within a scope of the loop construct, except when returned by a return statement associated with an enclosing construct, wherein mutation of the state variables is restricted outside the scope of the loop construct” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “accessing” and “mutating” in the context of this claim encompasses the user may access and mutate the state variables only within a scope of the loop construct, except when returned by a return statement associated with an enclosing construct, wherein mutation of the state variables is restricted outside the scope of the loop construct with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 53 recites additional elements such as “each of the one or more state variables is either a singleton variable or a collection variable, the collection variable comprising an unordered set of non-duplicate elements called the collection set variable or a sequence of ordered elements called the collection sequence”.
Examiner would like to point out that with the broad reasonable interpretation, this element
especially “a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a device to cause the device” amount to additional elements such as insignificant extra-solution such as “field of use” as in MPEP § 2106.05(h): Field of Use and Technological Environment, which does not impose any meaningful limits on practicing the mental process. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under step 2B.
The limitation of the claim 54 of “a mutation operation changes a value of a first state variable of the one or more state variables, and wherein the mutation operation is an update operation” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “changing” in the context of this claim encompasses the user may change a value of a first state variable of the one or more state variables, and wherein the mutation operation is an update operation with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 55 of “a mutation operation changes a size of a first variable of the one or more collection state variables, and wherein the mutation operation is an append operation or a remove operation” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “changing” in the context of this claim encompasses the user may change a size of a first variable of the one or more collection state variables, and wherein the mutation operation is an append operation or a remove operation with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
The limitation of the claim 56 of “the mutation modifies either a value at a specific index location or a size of the sequence by appending or removing an element” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “modifying” in the context of this claim encompasses the user may modify either a value at a specific index location or a size of the sequence by appending or removing an element with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 56 recites additional elements such as “the one or more state variables includes a collection sequence state variable”.
Examiner would like to point out that with the broad reasonable interpretation, this element
especially “a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a device to cause the device” amount to additional elements such as insignificant extra-solution such as “field of use” as in MPEP § 2106.05(h): Field of Use and Technological Environment, which does not impose any meaningful limits on practicing the mental process. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under step 2B.
The limitation of the claim 57 of “wherein the mutation operation applied to a collection state variable modifies either a value of an element in the collection or a size of the collection relative to a previous iteration of the corresponding element of the collection, wherein: for a collection set variable, the mutation includes or eliminates an element within the set; and for a collection sequence variable, the mutation modifies either a value at a specific index location or a size of the sequence by appending or removing an element” as drafted, is a mental process that, under its broadest reasonable interpretation, covers mental processes but for the recitation of generic computer components. For example, but for the “modifying” and “including or eliminating” in the context of this claim encompasses the user may modify either a value of an element in the collection or a size of the collection relative to a previous iteration of the corresponding element of the collection and includes or eliminates an element within the set; and for a collection sequence variable, the mutation modifies either a value at a specific index location or a size of the sequence by appending or removing an element with a pen and paper or in a human mind. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 58 recites additional elements such as “two or more mutation operations applied to a collection sequence state variable from the one or more state variables results in an invalid mutation compiler message if more than one operation attempts to update the same index location”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to apply it under MPEP § 2106.05(f): Mere Instructions to Apply an Exception, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 59 recites additional elements such as “the one or more state variables are returned to an enclosing construct of the loop construct using a return statement in which the loop construct is defined”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to apply it under MPEP § 2106.05(f): Mere Instructions to Apply an Exception, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 60 recites additional elements such as “the loop construct is a foreach loop construct, and wherein mutation of an iteration parameter of the for each loop construct is prohibited within the loop construct”.
Examiner would like to point out that with the broad reasonable interpretation, this element
especially “a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a device to cause the device” amount to additional elements such as insignificant extra-solution such as “field of use” as in MPEP § 2106.05(h): Field of Use and Technological Environment, which does not impose any meaningful limits on practicing the mental process. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under step 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 61 recites additional elements such as “ensuring that the defined state variables are mutated within the loop construct and generating an appropriate compiler message if not mutated”.
Examiner would like to point out that with the broad reasonable interpretation, this element amounts to apply it under MPEP § 2106.05(f): Mere Instructions to Apply an Exception, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B.
Dependent claims 32-42, 44-48 and 50-61 are also similar rejected under same rationale as cited above wherein these claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. These claims are merely further elaborate the mental process itself or providing additional definition of process which does not impose any meaningful limits on practicing the abstract idea. Claims 32-42, 44-48 and 50-61 are also rejected for incorporating the deficiency of their independent claims 31, 43 and 49.
Reasons for Allowance
4. The following is an examiner’s statement of reasons for allowance: the prior-art, Flatland (US PGPub 20110040905), in view of Moyer (US Patent 5920890), in view of Branson (US PGPub 20150334148), in view of Moiseev (US PGPub 20190034179), and further in view of Roper (US PGPub 20150295816) failed to disclose of a method comprising: receiving, at a compiler, source code comprising a loop construct associated with one or more state variables; verifying, by the compiler, a State Variable Mutation (SVM) principle for the loop construct, wherein the SVM principle is not satisfied when a total number of state variables defined in association with the loop construct is not equal to a total number of unique state variables mutated within the loop construct; generating a compiler message when the SVM principle is not satisfied during compilation; providing validated code when the SVM principle is satisfied, as recited by the independent claim 31.
Regarding Claim 31, the closest prior-art found, Flatland, Moyer, Branson, Moiseev and Roper discloses of a method comprising: receiving, at a compiler, source code comprising a loop construct associated with one or more state variables; verifying, by the compiler, a State Variable Mutation (SVM) principle; generating a compiler message when the SVM principle is not satisfied during compilation; providing validated code when the SVM principle is satisfied.
The prior-art, Flatland, Moyer, Branson, Moiseev, and Roper failed to disclose of a system for compiling source code, comprising: a scanner that scans a source code statement and a parser engine that parses the source code statement, wherein the source code statement defines one or more state variables and a loop construct in which the one or more state variables are mutated; an intermediate representation generator engine that receives a parse tree from the scanner and parser and generates an Intermediate Representation (IR); a loop concurrency validator engine that receives the IR and generates a concurrency validated IR; a code optimizer engine that receives the concurrency validated IR and generates an optimized concurrency validated IR; a code generator engine that receives the optimized concurrency validated IR and generates validated code, as recited by the independent claim 43.
Regarding Claim 43, the closest prior-art found, Flatland, Moyer, Branson, Moiseev and Roper discloses of a system for compiling source code, comprising: a scanner that scans a source code statement and a parser engine that parses the source code statement, wherein the source code statement defines one or more state variables; an intermediate representation generator engine that receives a parse tree from the scanner and parser and generates an Intermediate Representation (IR); a code optimizer engine that receives the concurrency validated IR and generates an optimized concurrency validated IR; a code generator engine that receives the optimized concurrency validated IR and generates validated code.
The prior-art, Flatland, Moyer, Branson, Moiseev, and Roper failed to disclose of a method for compiling source code of a programming language, the method comprising: receiving one or more state variables associated with a loop construct; verifying that each state variable is not mutated more than once; and generating a compiler message if a state variable is mutated more than once.
as recited by the independent claim 49.
Regarding Claim 49, the closest prior-art found, Flatland, Moyer, Branson, Moiseev and Roper discloses of a method for compiling source code of a programming language, the method comprising:
receiving one or more state variables associated with a loop construct; verifying if a state variable is mutated.
Individually, Flatland teaches that the association between the enhanced buffered reader and the BufferFillSizeSelector is established either by passing a reference to BufferFillSizeSelector to the buffered reader's constructor or by calling a setter on the buffered reader. As one skilled in the art will know, a setter in object-oriented programming is a method of an object used to mutate one of the object's state variables.
Moyer teaches that FIG. 4 illustrates a state machine 100 having a REPLACE state 102 and a FREEZE state 104. REPLACE state 102 is analogous to when the REPLACE bit is set equal to 1, while the FREEZE state represents when REPLACE is equal to 0. As indicated by the state machine, a state variable changes from REPLACE to FREEZE when there is both a loop cache hit and a change-of-flow. From the FREEZE state, the state variable is changed to REPLACE upon the occurrence of one of two conditions; 1) either the loop cache has been invalidated, or 2) there is a GTAG hit, a change-of-flow, and a loop cache miss. This is indicated in process 70 as a step 80. In a decision step 82, it is next determined if either REPLACE equals 1, or the entry is invalid (i.e. the valid bit indexed by LCACHE index 42 of instruction address 40 is negated or set to zero). If either one of these two conditions occur, the instruction array entry selected by LCACHE index 42 is loaded with the instruction received from main memory in a step 84, and the entry is validated (i.e. the valid bit associated with the entry is set equal to 1). The same instruction is then supplied to the CPU in a step 86. A next instruction address is then computed and received in step 74, and process 70 continues.
Branson teaches that wherein the computer readable program further causes the computing device to compile the clone by: compiling, in response to the first processing element and second processing element being assigned to different compute nodes, a state variable into each of the stream operator of interest and the clone that is maintained by a stream manager, wherein the state variable contains changes of state between the stream operator of interest and the clone.
Moiseev teaches that Further, the compiler 132 may find all loop edges of the CFG, wherein a loop edge is an edge that connects a vertex to itself. The compiler 132 may utilize the CFG and the loop edges to determine where redundant activations may occur. During execution of the compiled source code, computations performed on the non-looped edges change the state variable and therefore, are not redundant. Redundant activations are possible only on loop edges. The compiler 132 may generate variables that have values assigned at the loop edge and may be used at the next iteration of the loop edge. These variables may be called significant variables. There could be multiple such variables, and significant variables can be found with live variable analysis going backwards from state variable assignment.
Roper teaches that a method of executing a loop computer program comprising receiving at an execution unit a set of state variables which define an entry state, wherein one of the state variables defines a sequence of loop options; recording the entry state in a storage unit; in the execution unit, executing a first loop option in the ordered sequence of loop options in the entry state, using as parameters at least one of the other state variables in the set of state variables, wherein executing the first loop option comprises cancelling the first loop option from the ordered sequence, carrying out processing steps using at least one state variable, and determining if any of the state variables have altered as a result of the processing steps, wherein if none of the state variables have altered, entering a next loop iteration with an entry state in which the first loop option is cancelled from the ordered sequence, revealing a new first loop option, and; if at least one of the state variables has altered, reinstating the cancelled first loop option in the ordered sequence and entering a next loop iteration with an entry state defined by the altered state variable (s) and the original ordered sequence, whereby each next loop iteration receives a new entry state.
However, the prior-art, Flatland, Moyer, Branson, Moiseev and Roper failed to disclose the following subject matter such as “verifying, by the compiler, a State Variable Mutation (SVM) principle for the loop construct, wherein the SVM principle is not satisfied when a total number of state variables defined in association with the loop construct is not equal to a total number of unique state variables mutated within the loop construct” in the claim 31.
The prior-art, Flatland, Moyer, Branson, Moiseev and Roper failed to disclose the following subject matter such as “wherein a loop construct in which the one or more state variables are mutated; a loop concurrency validator engine that receives the IR and generates a concurrency validated IR” in the claim 43.
The prior-art, Flatland, Moyer, Branson, Moiseev and Roper failed to disclose the following subject matter such as “verifying that each state variable associated with a loop construct is not mutated more than once and generating a compiler message if more than once” in the claim 49.
Therefore, the prior-art, Flatland, Moyer, Branson, Moiseev and Roper failed to teach the method of claim 31, the system of claim 43 and the method of claim 49 as well as their dependent claims. Thus, claims 31-61 contain allowable subject matter while claims 1-30 are canceled.
5. Any comments considered necessary by applicant must be submitted no later than the payment of the issue fee and, to avoid processing delays, should preferably accompany the issue fee. Such submissions should be clearly labeled “Comments on Statement of Reasons for Allowance.”
Response to Arguments
Applicant's arguments with respect to the claims 31, 43 and 49 and their dependent claims have been fully considered but they are not persuasive.
Regarding the first argument of the remark on pages 8-9 regarding 101 Abstract Idea rejection that the limitation such as “verifying, by the compiler, a state variable mutation principle for the loop construct, wherein the SVM principle is not satisfied when a total number of state variables defined in association with the loop construct is not equal to a total number of unique state variables mutated within the loop construct” cannot be performed in a human mind since it requires a specific compiler to perform this operation of verifying, the examiner would like to point out that a compiler is considered as a compiler in the generic purpose computer and the limitation required to perform by the generic purpose computer may still recite a mental process according to MPEP as follows. The examiner would also like to point out that most of compilers are considered to be implemented by a general-purpose computer (hardware device) while the examples of the special-purpose computers (hardware devices) include quantum computers and hardware accelerators. Thus, the examiner maintains the 101 Abstract Idea rejection over this particular argument. And also in terms of subject matter, determining if a total number of state variables defined in association with the loop construct is not equal to a total number of unique state variables mutated within the loop construct by counting a total number of state variables mutated within the loop in the code and determining that they are the only state variables can be performed in the human mind.
C. A Claim That Requires a Computer May Still Recite a Mental Process
Claims can recite a mental process even if they are claimed as being performed on a computer.
In evaluating whether a claim that requires a computer recites a mental process, examiners should carefully consider the broadest reasonable interpretation of the claim in light of the specification. For instance, examiners should review the specification to determine if the claimed invention is described as a concept that is performed in the human mind and applicant is merely claiming that concept performed 1) on a generic computer, or 2) in a computer environment, or 3) is merely using a computer as a tool to perform the concept. In these situations, the claim is considered to recite a mental process.
1. Performing a mental process on a generic computer.
2. Performing a mental process in a computer environment.
3. Using a computer as a tool to perform a mental process.
Regarding the second argument of the remark on page 10 that the limitation integrates the judicial exception into a practical application since it provides technical improvement by enabling concurrency of execution for each block to facilitate optimization and reduce execution time, the examiner would like to point out that in order to determine if additional element is integrating the abstract idea into a practical application, 1) The specification should describe the claimed improvement to achieve the desired goal and 2) The claimed improvement should be reflected at least in the additional elements by specifying how the claimed improvement performs the additional element to improve functioning of a computer or existing technical field according to MPEP as follows.
2106.05(a) Improvements to the Functioning of a Computer or To Any Other Technology or Technical Field [R-07.2022]
If it is asserted that the invention improves upon conventional functioning of a computer, or upon conventional technology or technological processes, a technical explanation as to how to implement the invention should be present in the specification. That is, the disclosure must provide sufficient details such that one of ordinary skill in the art would recognize the claimed invention as providing an improvement. The specification need not explicitly set forth the improvement, but it must describe the invention such that the improvement would be apparent to one of ordinary skill in the art.
I. RELEVANT CONSIDERATIONS FOR EVALUATING WHETHER ADDITIONAL ELEMENTS INTEGRATE A JUDICIAL EXCEPTION INTO A PRACTICAL APPLICATION
The Supreme Court and Federal Circuit have identified a number of considerations as relevant to the evaluation of whether the claimed additional elements demonstrate that a claim is directed to patent-eligible subject matter. The list of considerations here is not intended to be exclusive or limiting. Additional elements can often be analyzed based on more than one type of consideration and the type of consideration is of no import to the eligibility analysis. Additional discussion of these considerations, and how they were applied in particular judicial decisions, is provided in MPEP § 2106.05(a) through (c) and MPEP § 2106.05(e) through (h).
Limitations the courts have found indicative that an additional element (or combination of elements) may have integrated the exception into a practical application include:
• An improvement in the functioning of a computer, or an improvement to other technology or technical field, as discussed in MPEP §§ 2106.04(d)(1) and 2106.05(a);
Regarding the third argument of the remark on pages 10-11 that the additional elements are significantly more than judicial exception since the additional limitations such as receiving source code, generating a message and providing code are not well-known, routine and conventional activity (WRCA), the examiner would like to point out that when it comes to determining whether additional elements are significantly more than the judicial exception or the abstract idea (i.e. verifying), how it’s performed is taking into account, rather than on what’s performed. For example, it’s more relevant as to how it receives, how it’s generating and how it’s providing rather than what it receives i.e. “source code”, what it is generating i.e. “a message” and what it is providing i.e. “a verified code”. Please see how each additional limitation is considered as insignificant in relation to the abstract idea such as a mental process for detailed rationale in 101 Abstract Idea rejection above.
Pertinent References
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Falcon (US PGPub 20230350650): Falcon teaches that an event loop can repeatedly trigger execution of the top-level component (e.g., the “run” method), which in turn can call a series of child components (e.g., their “run” methods); this can enable the components to have their executions immediately reflect changes in state variable values.
Van Matre (US PGPub 20230060546): Van Matre teaches that execution may entail a range of actions to include taking no action, communicating a decision back to the loop itself, relaying a decision to another system or process e.g., another RIDES Loop, updating or modifying the state of a variable or process, or taking a concrete step intended to affect the environment outside the process.
Conclusion
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 JAE UK JEON whose telephone number is (571)270-3649. The examiner can normally be reached 10am-6pm. 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, Chat Do can be reached at 571-272-3721. 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.
/JAE U JEON/Primary Examiner, Art Unit 2193