DETAILED ACTION
The communication is in response to the application filed 07/08/2024 in which claims 1-14 are pending in the application. Claim 1 and 8 are independent form.
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.
Claims 1-14 rejected under 35 U.S.C. 101 because the claims is directed to an abstract idea without significantly more.
Step 1: Claims 1-7 are directed to a non-transitory computer-readable medium and therefore is a manufacture which is one of the statutory categories of invention. Claims 8-14 are directed to a method (series of steps) and therefore is a process which is one of the statutory categories of invention.
Step 2A, Prong 1:
Claims 1 and 8 recite the limitation “based on the user definition code and the user configuration code, identifying at least one linker script syntax” This limitation is processes that, under the broadest reasonable interpretation, covers performance of the limitation in the mind,
but for the recitation of generic computer components. In within the claim “… identifying at least one linker script syntax” encompasses a user mentally, for example the user may analyze one or two files containing user definition code and/or user configuration code and, detect or identify a linker script syntax based on observation, evaluation, judgement or opinion.
If a claim limitation, under its broadest reasonable interpretation, covers the performance of the limitation in the mind, then its falls within the "Mental Process" grouping of abstract ideas the concepts performed in the minds including an observation, evaluation, judgement, and opinion.
Step 2B, Prong 2:
The judicial exception is not integrated into a practical application. The claims recites the additional elements:
“accessing user definition code” (This amounts to data gathering which is considered to be insignificant extra solution activity (See MPEP 2106.05(g));
“accessing user configuration code” (This amounts to data gathering which is considered to be insignificant extra solution activity (See MPEP 2106.05(g));
and “generating a linker script file configured for generating executable code, the linker script file being based on the user definition code and the user configuration code.” (This additional element does not integrate the abstract idea into a practical application because they amount to no more than mere instructions to apply the abstract idea using generic computer components. (see MPEP 2106.05(f)))
The “non-transitory computer-readable medium” and “processor” are recited a high-level 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 a generic computer component. Accordingly, these additional element does not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. (See MPEP 2106.05(f)). The claim is directed to an abstract idea.
Step 2B:
The claim does not include additional elements that are sufficient to amounts to significantly more than the judicial exception. The limitations of “accessing…” are considered mere data gathering which the court have identified as well-understood, routine, and conventional. (See MPEP 2106.05(d)). The limitation of “generating…” is considered "apply it" which the court have identified as merely including instruction to implement an abstract idea on a computer or merely using a computer as a tool to perform an abstract idea, as discussed in MPEP 2106.05(f). As discussed above the with respect to integration of the abstract idea into a practical application, the additional element of the “non-transitory computer-readable medium” and “processor” are merely a generic computer or generic computer components to apply the judicial exception which cannot provide an inventive concept.
Dependent claim 2 recite the limitation “The non-transitory computer-readable medium of claim 1, wherein the linker script file indicates at least one of: a memory layout, a relationship between executable code and data, or a memory write location associated with the executable code.” (This additional element does not integrate the abstract idea into a practical application because they amount to no more than insignificant extra solution activity. (See MPEP 2106.05(g))
Dependent claim 3 recite the limitation “The non-transitory computer-readable medium of claim 1, wherein at least one of the user definition code or the user configuration code is associated with at least one of differing communication protocols, differing operating systems, differing middleware, differing application software, or differing development environments.” (This additional element does not integrate the abstract idea into a practical application because they amount to no more than insignificant extra solution activity. (See MPEP 2106.05(g))
Dependent claim 4 recite the limitation “The non-transitory computer-readable medium of claim 1, wherein generating the linker script file comprises determining interdependent portions of code associated with at least one of the user definition code or the user configuration code.” (This additional element does not integrate the abstract idea into a practical application because they amount to no more than mere instructions to apply the abstract idea using generic computer components. (See MPEP 2106.05(f)))
Dependent claim 5 recite the limitation “The non-transitory computer-readable medium of claim 1, wherein the operations further comprise generating the executable code based on the linker script file.” (This additional element does not integrate the abstract idea into a practical application because they amount to no more than mere instructions to apply the abstract idea using generic computer components. (See MPEP 2106.05(f)))
Dependent claim 6 recite the limitation “The non-transitory computer-readable medium of claim 1, wherein the user definition code comprises at least one of a comma-separated values (CSV) file, a text file, an Extensive Markup Language (XML) file, or a table.” (This additional element does not integrate the abstract idea into a practical application because they amount to no more than insignificant extra solution activity. (See MPEP 2106.05(g))
Dependent claim 7 recite the limitation “The non-transitory computer-readable medium of claim 1, wherein the user definition code indicates at least one of: a memory region name, a memory address, a symbol type, or a symbol name.” (This additional element does not integrate the abstract idea into a practical application because they amount to no more than insignificant extra solution activity. (See MPEP 2106.05(g))
As per claim 9, it has similar limitation as claim 2, therefore rejected under the same rationale.
As per claim 10, it has similar limitation as claim 3, therefore rejected under the same rationale.
As per claim 11, it has similar limitation as claim 4, therefore rejected under the same rationale.
As per claim 12, it has similar limitation as claim 5, therefore rejected under the same rationale.
As per claim 13, it has similar limitation as claim 6, therefore rejected under the same rationale.
As per claim 14, it has similar limitation as claim 7, therefore rejected under the same rationale.
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.
Claims 1-3, 5, 6, 8-10 and 12-13 are rejected under 35 U.S.C. 103 as being unpatentable over Petrov (US 20240403412 A1), in view of McLain (US 5956513 A), in view of Smith (US 20170315755 A1)
Petrov teaches:
A non-transitory computer-readable medium including instructions that, when executed by at least one processor, cause the at least one processor to perform operations for generating a linker script file, the operations comprising: [0216] “…The non-transitory memory may carry executable program code which, when executed by the one or more processors, causes the device to perform, conduct or initiate the operations or methods….”
accessing user definition code; [0013] “The user-defined code may be provided by a user and/or may be generated by user software. The storage location may be represented by a path or a link, according to which a target (the target data or the user-defined code) may be accessed.”
accessing user configuration code; [0138] Optionally, the user-defined code 209 may be provided in a compressed and/or encoded form, and may further comprise software components such as multimedia, configuration, and script files.
Petrov does not teach:
based on the user definition code and the user configuration code, identifying at least one linker script syntax;
and generating a linker script file configured for generating executable code, the linker script file being based on the user definition code and the user configuration code.
However, McLain teaches “based on the user definition code and the user configuration code, identifying at least one linker script syntax;” [col 7:46-49] “The present invention is embodied as ABC 125, which is an executable program on a computer of any type. ABC 125 receives as input CDF 110. CDF 110 is a text file that is created by a user and input to ABC 125.” [col 7:64-67, col 8:1-4] “After ABC 125 has received and read the CDF 110, it retrieves the specified source modules from a project library 120. The project library 120, which represents the configuration management library, contains all of the program files (source code) for a specific application or project. It also contains header files that were developed by the application programmer specifically for use by the associated program files.” [col 8: 55-58] “Once ABC 125 has read the CDF 110 and retrieved all of the necessary source modules (including program files and header files) and object modules, it performs a number of functions to detect any potential conflicts or errors.” [col 13 lines 1-8] “In step 210, ABC 125 performs a syntax check on the commands that invoke the compiler I30 and the linker 135. Since these commands are included in the CDF 110 by a user, they are subject to syntax error. ABC 125 checks the syntax in this step so that any errors will be brought to the user's attention prior to submitting to the compiler 130 and linker 135. The user is informed of any syntax errors in step 214 below.”
Under BRI, McLain disclose Automated Build Control (ABC), which retrieves a CDF meaning “configuration data file” created by the programmer. The ABC then retrieves all required file from a library which contain program file/ source code also created by the programmer. Once the ABC retrieved all of the required file, it perform a syntax check that encompasses limitation based on the user definition code and the user configuration code, identifying at least one linker script syntax
Petrov and McLain are in similar field of endeavor, as they both are in data processing and, therefore, are combinable/modifiable.
Therefore, it would have been obvious to one the ordinary skills in the art before the effective filing data of the claimed inventions to modify the teaching of Petrov and McLain to identify at least one linker script syntax based on the user definition code and the user configuration code.
Motivation to combine would be to improve system reliability by reducing errors by identifying at least one linker script syntax based on the user definition code and the user configuration code.
Petrov in view of McLain does not teaches
and generating a linker script file configured for generating executable code, the linker script file being based on the user definition code and the user configuration code.
However, Smith teaches
and generating a linker script file configured for generating executable code, the linker script file being based on the user definition code and the user configuration code. [0054] “The compiler 302 is a software program or tool that is configured to convert source code into object code. In this case the compiler 302 receives the source code 310 for the program and translates it into object code 312….” [0062] “The data element description 318 (e.g. Python script) is generally generated by a programmer or developer of the source code 310, but, as discussed above, the data element description 318 may be generated automatically from the source code.” [0057] “The linker 304 is a software program or tool configured to generate executable code from object code. In this case the linker 304 receives the object code 312 and the metadata 314 generated by the compiler 302, and links the object code 312 together” [0068] The linker script 316 generated by the linker script generator 306 is provided to the linker 304. The linker 304 uses the linker script 316 to allocate addresses to the data elements in the object code 312…. The linker 304 then updates the object code 312 to include references to those addresses and saves the updated object code as executable code 320. As a result the executable code 320 includes computer executable instructions representing the program…” (See Fig 3)
Under BRI, Smith discloses “source code” which encompasses “the user definition code”. Smith further disclose the “The data element description 318 (e.g. Python script) is generally generated by a programmer or developer of the source code 310” which encompasses “user configuration code”.
Petrov, McLain and Smith are in similar field of endeavor, as they are all in data processing and, therefore, are combinable/modifiable.
Therefore, it would have been obvious to one the ordinary skills in the art before the effective filing data of the claimed inventions to modify the teaching of Petrov, with the teachings of McLain, and with the teachings of Smith to generate a linker script file configured for generating executable code, the linker script file being based on the user definition code and the user configuration code.
Motivation to combine would improve the system reliability by further reducing error and configuration error, which could further speed up build time.
As per claim 8, similar limitation as claim 1, therefore rejected under the same rationale.
As per claim 2,
Smith further teaches “wherein the linker script file indicates at least one of: a memory layout, a relationship between executable code and data, or a memory write location associated with the executable code.” [0067] “The linker script 316 may also include information describing the layout of the memory (e.g. core memory)”
As per claim 9, similar limitation as claim 2, therefore rejected under the same rationale.
As per claim 3,
Petrov further teaches “wherein at least one of the user definition code or the user configuration code is associated with at least one of differing communication protocols, differing operating systems, differing middleware, differing application software, or differing development environments.” [0016] “The isolated execution environment for executing the user-defined code may be user dedicated. For example, the storage server may be adapted to create a dedicated and isolated execution environment corresponding to each user. Additionally or alternatively, the isolated execution environment may be application dedicated. For example, the storage server may be adapted to create a dedicated execution environment corresponding to each application (e.g., user software).”
As per claim 10, similar limitation as claim 3, therefore rejected under the same rationale.
As per claim 5,
Smith further disclose “wherein the operations further comprise generating the executable code based on the linker script file.” [0057] “The linker 304 is a software program or tool configured to generate executable code from object code. In this case the linker 304 receives the object code 312 and the metadata 314 generated by the compiler 302…” [0068] “The linker script 316 generated by the linker script generator 306 is provided to the linker 304. The linker 304 uses the linker script 316 to allocate addresses to the data elements in the object code 312. In particular, the linker script 316 causes the linker 304 to allocate the regular data elements an address in a non-instruction memory block of the plurality of memory blocks…The linker 304 then updates the object code 312 to include references to those addresses and saves the updated object code as executable code 320. As a result the executable code 320 includes computer executable instructions….”
As per claim 12, it has similar limitation as claim 5, therefore rejected under the same rationale.
As per claim 6,
McLain further teaches “wherein the user definition code comprises at least one of a comma-separated values (CSV) file, a text file, an Extensive Markup Language (XML) file, or a table.” [col 7:46-49] “The present invention is embodied as ABC 125, which is an executable program on a computer of any type. ABC 125 receives as input CDF 110. CDF 110 is a text file that is created by a user and input to ABC 125.”
As per claim 13, it has similar limitation as claim 6, therefore is rejected under the same rationale.
Claims 4 and 11 are rejected under 35 U.S.C. 103 as being unpatentable over Petrov (US 20240403412 A1), in view of McLain (US 5956513 A), in view of Smith (US 20170315755 A1), in view of Chen (US 20080120415 A1)
As per claim 4, Petrov, McLain, and Smith disclose non-transitory computer-readable medium of claim 1 detailed above.
Petrov, McLain and Smith does not explicitly teach
“wherein generating the linker script file comprises determining interdependent portions of code associated with at least one of the user definition code or the user configuration code.”
However, Chen teaches “wherein generating the linker script file comprises determining interdependent portions of code associated with at least one of the user definition code or the user configuration code.” [0004] the source code may be built during the development process. This may convert source code files into executable code. The build may occur periodically, such as daily, or at any other time. The build typically compiles and links various files that are interdependent in the source code. To compile and link the files together, the source code is typically stored on the same server.
Petrov, McLain, Smith and Chen are in similar field of endeavor, as they are all in data processing and, therefore, are combinable/modifiable.
Therefore, it would have been obvious to one the ordinary skills in the art before the effective filing data of the claimed inventions to modify the teaching of Petrov, with the teachings of McLain, with the teachings of Smith and with the teaching of Chen to wherein generating the linker script file comprises determining interdependent portions of code associated with at least one of the user definition code or the user configuration code.
Motivation to combine would be to improve the system by ensuing the generated linker scripts matches the inputs, further minimizing errors.
As per claim 11, it has similar limitation as claim 4, therefore rejected under the same rationale.
7. Claims 7 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Petrov (US 20240403412 A1), in view of McLain (US 5956513 A), in view of Smith (US 20170315755 A1), in view of Malik (US 20210055919 A1)
As per claim 7, Petrov, McLain, and Smith disclose non-transitory computer-readable medium of claim 1 detailed above.
Petrov, McLain and Smith does not explicitly teach
“user definition code indicates at least one of: a memory region name, a memory address, a symbol type, or a symbol name.”
However, Malik teaches “user definition code indicates at least one of: a memory region name, a memory address, a symbol type, or a symbol name.” [0041] “A user-defined data type 114 may be a data type, defined by a user of a program source code, that indicates a category of a data item…. When a program utilizing a user-defined data type is executed, each field identifier may be translated to a memory address indicating a portion of memory 102 where data associated with the user-defined data type is stored. Using the respective memory addresses of the fields of the user-defined structure, data of each field may be accessed at the memory 102.”
Petrov, McLain, Smith and Malik are in similar field of endeavor, as they are all in data processing and, therefore, are combinable/modifiable.
Therefore, it would have been obvious to one the ordinary skills in the art before the effective filing data of the claimed inventions to modify the teaching of Petrov, with the teachings of McLain, with the teachings of Smith and with the teaching of Malik for the user definition code indicates at least one of: a memory region name, a memory address, a symbol type, or a symbol name.
Motivation to combine would be to improve the system by identifying the exact memory address from the user definition code which would minimize any errors before configurating an executable code.
As per claim 14, it has similar limitation as claim 7, therefore rejected under the same rationale.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Hernandez, III; Gaspar (US 6658646 B1) - disclose a scripting language that includes an integration construct data structure that permits commands of discrete interfaces to be integrated in a single script that is to be executed by a machine.
Witowski; Jens (US 20220398076 A1) – disclose a computer-implemented method for generating linker code for generation process of executable code for a processing unit from a source code, in particular in a control unit of a vehicle.
Zou; Xianjun (US 20190235850 A1) – disclose a methods and systems are disclosed for defining deployment data that identify a manner in which to divide a software package of source code deliverables into smaller discrete software package.
Zawadzki; Maciej (US 8037453 B1) – disclose a system and method for performing continuous configuration, test, and build management for developing and building software applications is provided.
Bousfield, Melissa N. (US 20030120635 A1) – disclose a library management for libraries of user-defined routines in a database system.
Fox; Zohar (US 20200311295 A1) – disclose techniques for using a line-of-code behavior and relation model to determine software functionality changes.
BULLER; Elliot Benjamin (US 20210216404 A1) – disclose a software compiler configures one or more instruction(s) of a compiled software program to reference a trappable memory location in connection with data accesses.
Larin; Sergei (US 20180081650 A1) – disclose a method for optimizing source code comprises optimizing the source code of files from a computer program at link-time, and receiving, at a linker, a customized linker script defining output sections for files of an executable version of the files of the computer program.
COLLINS; Lance J. (US 20200264866 A1) – disclose a build graph is a dependency graph used to guide processes performed during a software build.
Sahar; Carmit (US 11816478 B1) – disclose a techniques for reducing a size of a delta file. Techniques include receiving change code representing a change to device code installed on a device
Drepper; Ulrich (US 20230251838 A1) – disclose a compiler function uses the logic to process the compiler attribute and generates attribute data; and using, by the compiler, the attribute data to optimize object code generated from the source code.
Wetmore; Russ (US 5481713 A) – disclose simplifies the patch generation and installation processes. A patch resource is generated and used by a patch installation process.
NADGOWDA Shripad (US 20200117807 A1) - disclose a processor identifies a container file in an application container that matches the changed file in the first version of the software package. The processor displays a container vulnerability report that associates the identified container file with the vulnerability.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ASHMEED ACHILLE whose telephone number is (571)272-9437. The examiner can normally be reached Monday-Friday 7am -4pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, PIERRE VITAL can be reached at (571)272-4215. 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.
/A.A./
Examiner, Art Unit 2198
/PIERRE VITAL/Supervisory Patent Examiner, Art Unit 2198