IP Library Granted Patent US 9,009,685
Granted Patent B2
US 9,009,685 · App. 13/677,425 · Granted Apr 14, 2015

Method and system for program building

Inventors: Eric R. Kass (Mannheim, DE); Stefan B. Sell (Magstadt, DE)
Assignee: International Busines Machines Corporation
G06F8/447
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,009,685
App. No.
13/677,425
Granted
Apr 14, 2015
Kind
B2
Abstract

An improved method for program building uses predefined source files and predefined build scripts comprising a sequence of build commands; wherein each build command comprises an origin command line interpretable by an operating system and addressed to at least one compiling tool.

Claims (38)

1. A method for program building using predefined source files and predefined build scripts comprising a sequence of build commands;

wherein each build command comprises an origin command line ( 20 ) interpretable by an operating system ( 7 ) and addressed to at least one compiling tool ( 10 );

wherein each command line ( 20 ) comprises at least one of the following:

a source file name ( 22 ), a destination file name ( 24 ), a program name ( 25 ), an indication of at least one action ( 26 ) to be performed by said at least one addressed compiling tool ( 10 ), and an option ( 28 ) related to a corresponding action ( 26 ) to be performed;

wherein each origin command line ( 20 ) is parsed to identify components ( 22 , 24 , 25 , 26 , 28 ) of said corresponding build command;

wherein each identified component ( 22 , 24 , 25 , 26 , 28 ) is evaluated against rule sets ( 32 ) containing conditions and instructions to change said origin command line ( 20 ),

wherein matching rule sets are processed to generate at least one resultant command line interpretable by said operating system ( 7 ),

wherein processing of said at least one resultant command line by said operating system ( 7 ) produces at least one of the following:

an intermediate output file recursively processed by at least one additional command line, and a final output file interpretable by a target hardware platform ( 50 ), and wherein said rule sets ( 32 ) comprise predicate conditions ( 38 ) and command line component modification instructions ( 34 ) and runtime script declarations ( 36 ), wherein a Cartesian product is formed based on said input dimensions and said rule sets ( 32 ) stored in a knowledge database ( 5 ), wherein for each command line component ( 22 , 24 , 25 , 26 , 28 ) satisfying said predicate conditions ( 38 ) of a rule set ( 32 ), corresponding command line component modifications ( 34 ) are applied and corresponding scripts ( 40 ) are invoked at defined points in program flow.

2. The Method according to claim 1 , wherein said matching rule sets are processed to run a script ( 40 ) triggered by at least one component ( 22 , 24 , 25 , 26 , 28 ) of said origin command line ( 20 ), wherein running of said script ( 40 ) generates at least one resultant command line.

3. The Method according to claim 2 , wherein said script ( 40 ) is at least one of the following:

A pre-compile script and a post-compile script.

4. The Method according to claim 1 , wherein to generate said at least one resultant command line components ( 22 , 24 , 25 , 26 , 28 ) of a corresponding origin command line ( 20 ) are replaced, deleted or appended.

5. The Method according to claim 1 , wherein said rule sets ( 32 ) are written in XML syntax.

6. A data processing program for execution in a data processing system comprising: a processor, and a memory in communications with said processor, wherein the memory contains software code portions for performing a method for program building according to claim 1 when said program is run on said processor.

7. A computer program product stored on a non-transitory computer-usable medium, comprising non-transitory computer-readable program means for causing a computer to perform a method for program building according to claim 1 when said program is run on said computer.

8. A system for program building comprising:

a memory; and

a processor, wherein the processor in combination with the memory is configured to provide:

A resource pool ( 9 ) with predefined source files and predefined build scripts comprising a sequence of build commands; a unified build frontend ( 12 ) and at least one compiling tool ( 10 ),

wherein each build command comprises an origin command line ( 20 ) interpretable by an operating system ( 7 ) and addressed to at least one compiling tool ( 10 );

wherein said unified build frontend performs ( 12 ) the steps of:

Receiving said predefined source files and said sequence of build commands from said operating system ( 7 ),

wherein each command line ( 20 ) comprises at least one of the following:

A source file name ( 22 ), a destination file name ( 24 ), a program name ( 25 ), an indication of at least one action ( 26 ) to be performed by said at least one addressed compiling tool ( 10 ), and an option ( 28 ) related to a corresponding action ( 26 ) to be performed;

loading a control file ( 30 ) stored in a knowledge database ( 5 ) containing rule sets ( 32 ) with conditions ( 38 ) and instructions in order to modify said origin command line ( 20 );

parsing each origin command line ( 20 ) to identify components ( 22 , 24 , 25 , 26 , 28 ) of said corresponding build command; wherein each identified component ( 22 , 24 , 25 , 26 , 28 ) is evaluated against said rule sets ( 32 ),

processing matching rule sets to generate at least one resultant command line interpretable by said operating system ( 7 ), and

outputting said resultant command line to said operating system ( 7 ),

wherein said operating system ( 7 ) processes said at least one resultant command line and produces at least one of the following:

An intermediate output file recursively processed by at least one additional command line, and a final output file interpretable by a target hardware platform ( 50 ), wherein said rule sets ( 32 ) comprise predicate conditions ( 38 ) and command line component modification instructions ( 34 ) and runtime script declarations ( 36 ), wherein said unified build frontend ( 12 ) forms a Cartesian product based on said input dimensions and said rule sets ( 32 ) stored in said knowledge database ( 5 ), and

wherein said unified build frontend ( 12 ) applies corresponding command line component modifications ( 34 ) for each command line component ( 22 , 24 , 25 , 26 , 28 ) satisfying said predicate conditions ( 38 ) of a rule set ( 32 ) and invokes corresponding scripts ( 40 ) at defined points in program flow.

9. The system according to claim 8 , wherein said unified build frontend ( 12 ) processes said matching rule sets to initiate a script ( 40 ) run on said operating system ( 7 ) triggered by at least one component ( 22 , 24 , 25 , 26 , 28 ) of said origin command line ( 20 ), wherein running of said script ( 40 ) generates at least one resultant command line.

10. The system according to claim 9 , wherein said script ( 40 ) is at least one of the following:

A pre-compile script and a post-compile script.

11. The system according to claim 8 , wherein said unified build frontend ( 12 ) generates said at least one resultant command line by performing at least one of the following actions:

Replacing, deleting and appending components ( 22 , 24 , 25 , 26 , 28 ) of a corresponding origin command line ( 20 ).

12. The system according to claim 8 , wherein said at least one compiling tool ( 10 ) is a program invoked by said operating system ( 7 ) during processing of said at least one resultant command line preferably a high level language compiler or a program linker.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2012
From: KASS, ERIC R.; SELL, STEFAN B.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029301/0549 →
Continuity (1)
Related Publication 20130139132A1 · May 30, 2013