DETAILED ACTION
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 .
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.
Claim(s) 1-6 is/are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Claim(s) 1 and 5-6 recite(s):
analyze a first program;
detect a portion of the first program that includes a conditional branch and calculates a value according to an execution result of the conditional branch;
and on the basis of the analysis result, generate a second program including a plurality of combinations of a conditional expression and a calculation expression and using a value indicated by the calculation expression combined with the conditional expression that becomes true, wherein the calculation expression indicates the value and does not include a conditional branch and only one conditional expression from among the plurality of conditional expressions becomes true;
generate a logical table including the plurality of combinations of the conditional expression and the calculation expression;
index the logical table using the plurality of combinations of the conditional expression and the calculation expression;
and execute, using the logical table, the second program.
Step 1: are the claims to a process, machine, manufacture, or a composition of matter?
Yes. Claim 1 is a machine
Yes. Claim 5 is a method
Yes. Claim 6 is a manufacture
Step 2A, Prong I; Does the claim recite an abstract idea, law of nature, or natural phenomenon?
Yes: (an) abstract idea(s).
The limitation of "analyze", as drafted in #1 above, under its broadest reasonable interpretation, covers performance of the mind, but for generic computer parts. That is, other than reciting "at least one processor" or "a computer", nothing in the claim element precludes the step from being performed by a person on paper.
The limitation of "detect", as drafted in #2 above, under its broadest reasonable interpretation, covers performance of the mind, but for generic computer parts. That is, other than reciting "at least one processor" or "a computer", nothing in the claim element precludes the step from being performed by a person on paper.
The limitation of "generate", as drafted in #3-4 above, under its broadest reasonable interpretation, covers performance of the mind, but for generic computer parts. That is, other than reciting "at least one processor" or "a computer", nothing in the claim element precludes the step from being performed by a person on paper.
The limitation of "index", as drafted in #5 above, under its broadest reasonable interpretation, covers performance of the mind, but for generic computer parts. That is, other than reciting "at least one processor" or "a computer", nothing in the claim element precludes the step from being performed by a person on paper.
Step 2A Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
The "execute" limitation in #6 above. As claimed and under BRI, is an additional element that is mere instructions to apply an exception. For example, "execute,.. the second program" in the context of this claim encompasses merely running a program. See in the MPEP §§2106.05(f).
Additionally, the claims recite the following additional element:
a program conversion device,
at least one memory,
at least one processor,
a computer,
a non-transitory computer readable medium
The element that is recited in the claims are stated at a high level of generality (i.e. as a generic processor performing a generic computer function) such that it amounts no more than mere instructions to apply the exception using generic computer component. See the MPEP §§ 2106.05(f). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limitation on practicing the abstract idea(s).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because mere instructions to apply an exception using generic computer components cannot provide the inventive step.
Claim(s) 2 recite(s):
wherein the portion of the first program that includes the conditional branch and calculates a value according to an execution result of the conditional branch is configured as a user-defined module,
the at least one processor is configured to execute the instructions to replace an assignment statement that uses the user-defined module to calculate the value of an element for each first data series with multiple conditional assignment statements combining the conditional expression and the calculation expression including without a conditional branch and indicating a value,
wherein the first data series is one of row and column of matrix-formatted data and second data series is other of the row or the column of the matrix-formatted data, and in the replaced second program, only the conditional expression of any one of the multiple conditional assignment statements becomes true,
and the value indicated by the calculation expression of the conditional assignment statement whose conditional expression becomes true is assigned as the value of an element of the one second data series.
Step 1: are the claims to a process, machine, manufacture, or a composition of matter?
Yes. Claim 2 is a machine
Step 2A, Prong I; Does the claim recite an abstract idea, law of nature, or natural phenomenon?
No.
Step 2A Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
The limitation in #7 above. As claimed and under BRI, is an additional element that is mere instructions to apply an exception. For example, calculating in the context of this claim encompasses merely running the program for the intended result. See in the MPEP §§2106.05(f).
The limitation in #8 above. As claimed and under BRI, is an additional element that is mere instructions to apply an exception. For example, configuring in the context of this claim encompasses merely manipulating data. See in the MPEP §§2106.05(f).
The limitation in #9 above. As claimed and under BRI, is an additional element that is mere instructions to apply an exception. For example, matrix-formatted data in the context of this claim encompasses merely manipulating data into data structures. See in the MPEP §§2106.05(f).
The limitation in #10 above. As claimed and under BRI, is an additional element that is mere instructions to apply an exception. For example, configuring in the context of this claim encompasses merely manipulating data. See in the MPEP §§2106.05(f).
Additionally, the claims recite the following additional element:
at least one processor
The element that is recited in the claims are stated at a high level of generality (i.e. as a generic processor performing a generic computer function) such that it amounts no more than mere instructions to apply the exception using generic computer component. See the MPEP §§ 2106.05(f). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limitation on practicing the abstract idea(s).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because mere instructions to apply an exception using generic computer components cannot provide the inventive step.
Claim(s) 3 recite(s):
wherein the portion of the first program that includes the conditional branch and calculates a value according to an execution result of the conditional branch is configured as a user-defined module, the at least one processor is configured to execute the instructions to replace an assignment statement that uses the user-defined module to calculate the value of an element for each first data series with multiple conditional assignment statements combining the conditional expression and the calculation expression including without a conditional branch and indicating a value, wherein the first data series is one of row and column of matrix-formatted data and second data series is other of the row or the column of the matrix-formatted data, and in the replaced second program, only the conditional expression of any one of the multiple conditional assignment statements becomes true, and the value indicated by the calculation expression of the conditional assignment statement whose conditional expression becomes true is assigned as the value of an element of the one second data series.
Step 1: are the claims to a process, machine, manufacture, or a composition of matter?
Yes. Claim 3 is a machine
Step 2A, Prong I; Does the claim recite an abstract idea, law of nature, or natural phenomenon?
Yes: (an) abstract idea(s).
Step 2A Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
The limitation in #11 above. As claimed and under BRI, is an additional element that is mere instructions to apply an exception. For example, in the context of this claim encompasses merely running program instructions. See in the MPEP §§2106.05(f).
Additionally, the claims recite the following additional element:
program conversion device,
at least one processor
The element that is recited in the claims are stated at a high level of generality (i.e. as a generic processor performing a generic computer function) such that it amounts no more than mere instructions to apply the exception using generic computer component. See the MPEP §§ 2106.05(f). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limitation on practicing the abstract idea(s).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because mere instructions to apply an exception using generic computer components cannot provide the inventive step.
Claim(s) 4 recite(s):
wherein the at least one processor is configured to execute the instructions to analyze the program using an abstract syntax tree.
Step 1: are the claims to a process, machine, manufacture, or a composition of matter?
Yes. Claim 4 is a machine
Step 2A, Prong I; Does the claim recite an abstract idea, law of nature, or natural phenomenon?
Yes: (an) abstract idea(s).
The limitation, as drafted in #12 above, under its broadest reasonable interpretation, covers performance of the mind, but for generic computer parts. That is, other than reciting "at least one processor", nothing in the claim element precludes the step from being performed by a person.
Step 2A Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
Additionally, the claims recite the following additional element:
program conversion device,
at least one processor
The element that is recited in the claims are stated at a high level of generality (i.e. as a generic processor performing a generic computer function) such that it amounts no more than mere instructions to apply the exception using generic computer component. See the MPEP §§ 2106.05(f). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limitation on practicing the abstract idea(s).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because mere instructions to apply an exception using generic computer components cannot provide the inventive step.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1, 3 and 5-6 is/are rejected under 35 U.S.C. 103 as being unpatentable over US 20100205585 A1 (hereinafter referred to as McAllister) in view of US 20170052786 A1 (hereinafter referred to as Liu) and US 20090070567 A1 (Hereinafter referred to as Calder).
Regarding claim 1, McAllister teaches:
A program conversion device comprising: at least one memory configured to store instructions; and at least one processor configured to execute the instructions to (Para. [6], McAllister shows “a system having a processor and a memory containing a program, which when executed by the processor is configured to perform an operation”):
analyze a first program (Para. [16], McAllister shows “A SIMD code generator may be configured to identify conditional statements within source code and generate SIMD code that still performs conditional data selection but nevertheless removes the conditional statements”);
detect a portion of the first program that includes a conditional branch and calculates a value according to an execution result of the conditional branch (Para. [38] McAllister shows “the fast vector masking SIMD code generator 135 may identify conditional statements within source code and generates SIMD code that removes the conditional statements”);
and on the basis of the analysis result, generate a second program including a plurality of combinations of a conditional expression and a calculation expression and using a value indicated by the calculation expression ([Abstract] McAllister shows “generating fast vector masking SIMD code corresponding to source code having a conditional statement, where the SIMD code replaces the conditional statements with vector SIMD operations. One technique includes performing conditional masking using vector operations, bit masking operations, and bitwise logical operations. The need for conditional statements in SIMD code is thereby removed, allowing SIMD hardware to avoid having to use branch prediction.” Para. [4], McAllister shows “Generating the vector masking source code may include generating, for each branch of the conditional statement, a vector data structure that corresponds to the scalar data structure in the respective branch of the conditional statement and generating, for each branch of the conditional statement, a vector operation that corresponds to the scalar operation in the respective branch of the conditional statement. The scalar operation operates on the scalar data structure and the vector operation operates on the vector data structure to compute a result for the respective branch of the conditional statement. Generating the vector masking source code may further include generating at least one bitwise operation that computes a final result from the respective results for each branch of the conditional statement and outputting the generated vector masking source code”)
McAllister does not disclose:
combined with the conditional expression that becomes true, wherein the calculation expression indicates the value and does not include a conditional branch and only one conditional expression from among the plurality of conditional expressions becomes true;
generate a logical table including the plurality of combinations of the conditional expression and the calculation expression;
index the logical table using the plurality of combinations of the conditional expression and the calculation expression;
and execute, using the logical table, the second program.
However, in the analogous art of parallel processing, Liu teaches:
combined with the conditional expression that becomes true, wherein the calculation expression indicates the value and does not include a conditional branch and only one conditional expression from among the plurality of conditional expressions becomes true (Para. [3], Liu shows “a conditional branch statements refer to code statements in the form of IF-ELSE and consist of conditional judgment statements and conditional execution statements. The conditional execution statements may be divided into a plurality of mutually exclusive branches, and one of the plurality of mutually exclusive branches may be selected to be executed according to results of the conditional judgment statements”);
However, in the analogous art of implementation of branch intensive algorithms, Calder teaches:
generate a logical table including the plurality of combinations of the conditional expression and the calculation expression (Fig. 10; Para. [33], Calder shows "When an upcoming branching portion of code in a program is identified, the lookup table is programmed to contain a truth table, such as that depicted in FIG. 10. The truth table of FIG. 10 solves the set of branching instructions depicted as an example in FIG. 1. Upon receipt of signals from the ALUs (200, 202, etc.) following a first cycle calculation of the branching conditional statements, lookup table 212 outputs a selection signal on one of its output lines based on those inputs from the ALUs (200, 202, etc.) and the truth table programmed to implement the branching portion." Para. [38], Calder shows "To configure the lookup table, a truth table such as that depicted in FIG. 10 is created to manage all possible results of the upcoming branching portion. Because the exact criteria of identified branching portions are often not known until during runtime due to variables such as user input, characteristics of data to be processed, etc., the truth table will often need to be created during runtime by the processor using look ahead capabilities of the processor or through compiler optimizations. Once an appropriate truth table is ready, preferably before the time of processing the identifying branching portion, the truth table is loaded into the lookup table." Examiner notes the above citation shows generating a truth (logical) table based on a conditional branch in a program containing a plurality of expressions as seen in Fig. 10 and further containing calculated expression values.);
index the logical table using the plurality of combinations of the conditional expression and the calculation expression (Para. [42], Calder shows "Once an upcoming branching portion is identified, a truth table is created to handle the upcoming branching portion. An exemplary truth table for the example branching portion depicted in FIG. 1 is shown in FIG. 10. The index columns correspond to the branching conditions to be calculated, and rows are added to the table for each possible combination of results for branching condition calculations." Examiner notes the above citation shows using conditional expressions and calculated expressions to index a);
and execute, using the logical table, the second program (Para. [38], Calder shows "To configure the lookup table, a truth table such as that depicted in FIG. 10 is created to manage all possible results of the upcoming branching portion. Because the exact criteria of identified branching portions are often not known until during runtime due to variables such as user input, characteristics of data to be processed, etc., the truth table will often need to be created during runtime by the processor using look ahead capabilities of the processor or through compiler optimizations." Examiner notes the above citation shows creating a truth table and using it to pre-calculate the values for conditional expressions at compilation. Compilation translates high level code into machine code (second program) and uses the translated code with the calculated truth table in execution.).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Liu into the teachings of McAllister to implement “combined with the conditional expression that becomes true, wherein the calculation expression indicates the value and does not include a conditional branch and only one conditional expression from among the plurality of conditional expressions becomes true”. The modification would have been obvious as one of ordinary skill in the art would be motivated as the execution efficiency of the conditional branch statements has great impact on the overall performance (Liu, Para. [3]).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Calder into the teachings of McAllister to implement “generate a logical table including the plurality of combinations of the conditional expression and the calculation expression; index the logical table using the plurality of combinations of the conditional expression and the calculation expression; and execute, using the logical table, the second program”. The modification would have been obvious as one of ordinary skill in the art would be motivated to be able to process all branching conditions in parallel simultaneously (Calder, Para. [38]).
Regarding claim 3, McAllister as modified teaches claim 1 as cited above and teaches:
wherein the at least one processor is configured to execute the instructions to replace the portion of the first program executed in an interpreted manner that includes the conditional branch and calculates a value according to an execution result of the conditional branch into an expression which is provided with a plurality of combinations of a conditional expression and a calculation expression indicating a value and configured without including a conditional branch (Para. [37], McAllister shows “SIMD pseudocode 650 generated to replace the conditional statement included in loop 620 (i.e., the IF ELSE conditional branching). That is, SIMD pseudocode 650 achieves the same result as the scalar pseudocode 610 without the use of the conditional statement. As shown, the SIMD pseudocode 650 includes variable declarations 655 for vector versions of the mask, input, and output, arrays”),
McAllister does not disclose:
and which uses a value indicated by the calculation expression combined with the conditional expression that becomes true, where only one conditional expression from among the plurality of conditional expressions becomes true.
However, in the analogous art of automated software testing, Liu teaches:
and which uses a value indicated by the calculation expression combined with the conditional expression that becomes true, where only one conditional expression from among the plurality of conditional expressions becomes true (Para. [3], Liu shows “a conditional branch statements refer to code statements in the form of IF-ELSE and consist of conditional judgment statements and conditional execution statements. The conditional execution statements may be divided into a plurality of mutually exclusive branches, and one of the plurality of mutually exclusive branches may be selected to be executed according to results of the conditional judgment statements”).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Liu into the teachings of McAllister to implement “wherein the at least one processor is configured to execute the instructions to replace the portion of the first program executed in an interpreted manner that includes the conditional branch and calculates a value according to an execution result of the conditional branch into an expression which is provided with a plurality of combinations of a conditional expression and a calculation expression indicating a value and configured without including a conditional branch and which uses a value indicated by the calculation expression combined with the conditional expression that becomes true, where only one conditional expression from among the plurality of conditional expressions becomes true”. The modification would have been obvious as one of ordinary skill in the art would be motivated as the execution efficiency of the conditional branch statements has great impact on the overall performance (Liu, Para. [3]).
With regards to claim 5, it is a method claim having similar limitations as cited in claim 1 above. Thus claim 5 is rejected under the same rationale as claim 1 above.
With regards to claim 6, it is a non-transitory computer readable medium claim having similar limitations as cited in claim 1 above. Thus claim 6 is rejected under the same rationale as claim 1 above.
Claim(s) 2 is/are rejected under 35 U.S.C. 103 as being unpatentable over US 20100205585 A1 (hereinafter referred to as McAllister), US 20170052786 A1 (hereinafter referred to as Liu) and US 20090070567 A1 (Hereinafter referred to as Calder) in further view of US 20150095897 A1 (hereinafter referred to as Woo).
Regarding claim 2, McAllister as modified teaches claim 1 as cited above and teaches:
The program conversion device according to claim 1, wherein the portion of the first program that includes the conditional branch and calculates a value according to an execution result of the conditional branch is configured as a user-defined module (Para. [25], McAllister shows “scalar code 145 represents application source code that may include a mix of both scalar operations (e.g., conditional statements) and vector operations (e.g., SIMD instructions). The fast vector masking SIMD code generator 135 receives, as input, the scalar code 145. The fast vector masking SIMD code generator 135 generates, as output, application source code optimized for SIMD operations, i.e., SIMD code 230 without the conditional statement present in scalar code 145. The SIMD code 230 achieves the same result as the scalar code 145, but does so without the use of the conditional statement”),
the at least one processor is configured to execute the instructions to replace an assignment statement that uses the user-defined module to calculate the value of an element for each first data series with multiple conditional assignment statements combining the conditional expression and the calculation expression including without a conditional branch (Para. [37], McAllister shows “SIMD pseudocode 650 generated to replace the conditional statement included in loop 620 (i.e., the IF ELSE conditional branching). That is, SIMD pseudocode 650 achieves the same result as the scalar pseudocode 610 without the use of the conditional statement. As shown, the SIMD pseudocode 650 includes variable declarations 655 for vector versions of the mask, input, and output, arrays”).
McAllister does not implicitly disclose:
and indicating a value
wherein the first data series is one of row and column of matrix-formatted data and second data series is other of the row or the column of the matrix-formatted data,
and in the replaced second program, only the conditional expression of any one of the multiple conditional assignment statements becomes true,
and the value indicated by the calculation expression of the conditional assignment statement whose conditional expression becomes true is assigned as the value of an element of the one second data series.
However, in the analogous art of automated software testing, Liu teaches:
and indicating a value (Para. [19] Liu shows “the output of the conditional execution result includes writing the conditional execution result into a memory and/or sending the conditional execution result to a routing unit”)
and in the replaced second program, only the conditional expression of any one of the multiple conditional assignment statements becomes true (Para. [3], Liu shows “a conditional branch statements refer to code statements in the form of IF-ELSE and consist of conditional judgment statements and conditional execution statements. The conditional execution statements may be divided into a plurality of mutually exclusive branches, and one of the plurality of mutually exclusive branches may be selected to be executed according to results of the conditional judgment statements”),
In addition, in the analogous art of program conversion, Woo teaches:
wherein the first data series is one of row and column of matrix-formatted data and second data series is other of the row or the column of the matrix-formatted data (Fig. 8, Para. [75], Woo shows the split information table according to an embodiment may include two columns of a condition expression and split information. In other words, each record included in the split information table may include two fields of the condition expression and the split information),
and the value indicated by the calculation expression of the conditional assignment statement whose conditional expression becomes true is assigned as the value of an element of the one second data series (Fig. 8, Para. [75], Woo shows the split information table according to an embodiment may include two columns of a condition expression and split information. In other words, each record included in the split information table may include two fields of the condition expression and the split information)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Liu into the teachings of McAllister as modified to implement “indicating a value … and in the replaced second program, only the conditional expression of any one of the multiple conditional assignment statements becomes true”. The modification would have been obvious as one of ordinary skill in the art would be motivated execution efficiency of the conditional branch statement may be enhanced greatly (Liu, Para. [2]).
In addition, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Woo into the teachings of McAllister as modified to implement “wherein the first data series is one of row and column of matrix-formatted data and second data series is other of the row or the column of the matrix-formatted data … and the value indicated by the calculation expression of the conditional assignment statement whose conditional expression becomes true is assigned as the value of an element of the one second data series”. The modification would have been obvious as one of ordinary skill in the art would be motivated as the execution time of the computer program, from which the branch statement included in the computer program has been removed, may be shorter than the execution time of the original computer program (Woo, [89]).
Claim(s) 4 is/are rejected under 35 U.S.C. 103 as being unpatentable over US 20100205585 A1 (hereinafter referred to as McAllister), US 20170052786 A1 (hereinafter referred to as Liu) and US 20090070567 A1 (Hereinafter referred to as Calder) in further view of US 20140282444 A1 (hereinafter referred to as Araya).
Regarding claim 4, McAllister as modified claim 1 as cited above and does not disclose:
wherein the at least one processor is configured to execute the instructions to analyze the program using an abstract syntax tree.
However, in the analogous art of programming language transformers, Araya teaches:
wherein the at least one processor is configured to execute the instructions to analyze the program using an abstract syntax tree (Para. [40], Araya shows “the source code analyzer 120 and will generates an abstract syntax tree for storage in abstract syntax tree storage 130. The abstract syntax tree generation may start with reviewing the analysis of the source code analyzer 120 to generate an initial abstract syntax tree in view of the composite grammar 116. Therefore the abstract syntax three is actually an abstract representation of code comprised of different grammars”).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Araya into the teachings of McAllister to implement “wherein the at least one processor is configured to execute the instructions to analyze the program using an abstract syntax tree”. The modification would have been obvious as one of ordinary skill in the art would be motivated to guarantee fidelity while transforming programming languages (Araya, Para. [8]).
Response to Arguments
Applicant’s arguments regarding 35 U.S.C. 101 filed 7/09/2026 have been fully considered but they are not persuasive.
Applicant argues on Pg. 7, that “generate a program including…” does not recite an abstract mental process. As cited above in the 35 U.S.C. 101 rejection, generating a program is in itself a task programmers perform. Writing code is a mental process that people perform and the limitation as written does not prevent a person from being able to perform the task if not for the generic computer parts stated.
Applicant additionally argues on Pg. 8, court findings regarding Enfish. Regarding applicant’s arguments comparing the independent claims as written to Enfish. The applicant’s claims are markedly different in that Enfish defines a data structure and elaborates further into detail as to how the structure is configured and the function to the rows and columns with regards to indexing. Applicant’s claims state “generate a second program including a plurality of combinations of a conditional expression and a calculation expression…”. These two claims cannot be compared similarly under 101 as they are very different. The claims in Enfish do not generate or produce a table as the applicant claims to do to generate a program neither does the applicant define a data structure and how it is configured in a matter similar to Enfish.
Applicant further argues on Pg. 8-9, under Prong 2 the claims recite additional elements that integrate the abstract ideas into a practical application. In response, Examiner respectfully notes the 35 U.S.C. 101 rejection as earlier written contains details for how the additional elements do not integrate the abstract ideas into a practical application and specifics for how each additional element was analyzed under 35 U.S.C. 101.
Applicant’s arguments regarding 35 U.S.C. 103 filed 7/09/2026 have been fully considered but they are not persuasive.
Applicant argues on Pg. 11, that “the cited art fails to teach, or reasonably suggest, ‘generating a logical table including the plurality of combinations of the conditional expression and the calculation expression’, ‘indexing the logical table using the plurality of combinations of the conditional expression and the calculation expression’, and ‘executing, using the logical table, the second program.’ ” in claim 1. However, Calder shows in Fig. 10; Para. [33], "When an upcoming branching portion of code in a program is identified, the lookup table is programmed to contain a truth table, such as that depicted in FIG. 10. The truth table of FIG. 10 solves the set of branching instructions depicted as an example in FIG. 1. Upon receipt of signals from the ALUs (200, 202, etc.) following a first cycle calculation of the branching conditional statements, lookup table 212 outputs a selection signal on one of its output lines based on those inputs from the ALUs (200, 202, etc.) and the truth table programmed to implement the branching portion." Para. [42], Calder additionally shows "Once an upcoming branching portion is identified, a truth table is created to handle the upcoming branching portion. An exemplary truth table for the example branching portion depicted in FIG. 1 is shown in FIG. 10. The index columns correspond to the branching conditions to be calculated, and rows are added to the table for each possible combination of results for branching condition calculations.", Para. [38], Calder further shows "To configure the lookup table, a truth table such as that depicted in FIG. 10 is created to manage all possible results of the upcoming branching portion. Because the exact criteria of identified branching portions are often not known until during runtime due to variables such as user input, characteristics of data to be processed, etc., the truth table will often need to be created during runtime by the processor using look ahead capabilities of the processor or through compiler optimizations." It would be obvious in view of Calder to use a logical table to achieve further improvements in optimization regarding conditional statements.
The 103 rejection for claims 5-6 is maintained as they recite similar limitations to claim 1
above and the rejection to claim 1 is maintained as well.
For these reasons above, the examiner finds these arguments unpersuasive and maintains that
the rejection under 35 U.S.C. 103 is proper.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
US 20100275192 A1 – This prior art shows using a truth table in order to achieve optimizations regarding Boolean expressions/functions
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). 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 ZEERICK A MALIK whose telephone number is (571)272-8110. The examiner can normally be reached Mon-Thurs, 7-5.
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.
/Z.A.M./Examiner, Art Unit 2193
/Chat C Do/Supervisory Patent Examiner, Art Unit 2193