Claims Analysis
Total Claims: 6
Claim 1
Independent Claim
24 words
A program translation method in a compiler for translating a source program into an object program through a sequence of the following processing of:
Claim 2
Dependent Claim
24 words
A program translation method in a compiler for translating a source program into an object program through a sequence of the following processing of:
Claim 3
Dependent Claim
324 words
(A) analyzing a lexical/syntax of the source program and then transforming the source program into a first program of an intermediate language suitable for a processing of the compiler; then and (B1) analyzing an order of execution of portions constituting the first program of the intermediate language and for obtaining control flow data representing a flow of an execution sequence; then and (B2) by using the control flow data, obtaining dataflow data representing definition/use relationships of variables and arrays appearing in the first program of the intermediate language; then and (B3) based on the dataflow data, transforming the first program of the intermediate language and then outputting a second program of the intermediate language having a higher execution performance; and then (C) converting the second intermediate-language program into an object program executable in a computer; wherein if a loop of the source program contains a first array definition statement determining a value of an array and an array use statement using the value of the array, the following steps are effected for a pair of said each array definition statement and said each array use statement in the loop: (a)(a1) judging whether or not a second array definition statement exists in a path from the first array definition statement to the first array use statement in the (B2) and whether or not the second array definition statement possibly rewrites the value of the array defined by the first array definition statement by comparing subscripts associated with the array definition and the array use, respectively; and then (a2) only if a possibility of a rewriting is present, generating array definition/use relationship data representing a definition/use relationship from the first array definition statement to the first array use statement, and then (b) only if the array definition/use relationship data includes only a definition/use relationship for which a result of a program execution is not changed by a transformation of the program, effecting a program transformation processing.
Claim 4
Dependent Claim
324 words
(A) analyzing a lexical/syntax of the source program and then transforming the source program into a first program of an intermediate language suitable for a processing of the compiler; then and (B1) analyzing an order of execution of portions constituting the first program of the intermediate language and for obtaining control flow data representing a flow of an execution sequence; then and (B2) by using the control flow data, obtaining dataflow data representing definition/use relationships of variables and arrays appearing in the first program of the intermediate language; then and (B3) based on the dataflow data, transforming the first program of the intermediate language and then outputting a second program of the intermediate language having a higher execution performance; and then (C) converting the second intermediate-language program into an object program executable in a computer; wherein if a loop of the source program contains a first array definition statement determining a value of an array and an array use statement using the value of the array, the following steps are effected for a pair of said each array definition statement and said each array use statement in the loop: (a)(a1) judging whether or not a second array definition statement exists in a path from the first array definition statement to the first array use statement in the (B2) and whether or not the second array definition statement possibly rewrites the value of the array defined by the first array definition statement by comparing subscripts associated with the array definition and the array use, respectively; and then (a2) only if a possibility of a rewriting is present, generating array definition/use relationship data representing a definition/use relationship from the first array definition statement to the first array use statement, and then (b) only if the array definition/use relationship data includes only a definition/use relationship for which a result of a program execution is not changed by a transformation of the program, effecting a program transformation processing.
Claim 5
Dependent Claim
330 words
A program translation method in a compiler for translating a source program into an object program through a sequence of the following processing of: (A) analyzing a lexical/syntax of the source program and then transforming the source program into a first program of an intermediate language suitable for a processing of the compiler; and then (B1) analyzing an order of execution of portions constituting the first program of the intermediate language and for obtaining control flow data representing a flow of an execution sequence; and then (B2) by using the control flow data, obtaining dataflow data representing definition/use relationships of variables and arrays appearing in the first program of the intermediate language; and then (B3) based on the dataflow data, transforming the first program of the intermediate language and then outputting a second program of the intermediate language having a higher execution performance; and then (C) converting the second intermediate-language program into an object program executable in a computer; wherein if a loop of the source program contains a first array definition statement determining a value of an array and an array use statement using the value of the array, the following steps are effected: (a) in the (B2), for each loop of the source program, (a1) judging whether or not subscripts of array references are equal to each other through a repetition of an execution of the loop, thereby obtaining array definition/use relationship data representing a definition/use relationship appearing during the repetition of the loop; and then (a2) judging whether or not the subscripts of the array references take a same value, thereby obtaining array definition/use relationship data representing a definition/use relationship appearing in another repetition of the loop, and then (b) in the (B3), judging whether or not the array definition/use relationship data contains only a definition/use relationship for which a result of a program execution is not changed by a transformation of the program, and effecting a program transformation processing only when the judgment result is true.
Claim 6
Dependent Claim
330 words
A program translation method in a compiler for translating a source program into an object program through a sequence of the following processing of: (A) analyzing a lexical/syntax of the source program and then transforming the source program into a first program of an intermediate language suitable for a processing of the compiler; and then (B1) analyzing an order of execution of portions constituting the first program of the intermediate language and for obtaining control flow data representing a flow of an execution sequence; and then (B2) by using the control flow data, obtaining dataflow data representing definition/use relationships of variables and arrays appearing in the first program of the intermediate language; and then (B3) based on the dataflow data, transforming the first program of the intermediate language and then outputting a second program of the intermediate language having a higher execution performance; and then (C) converting the second intermediate-language program into an object program executable in a computer; wherein if a loop of the source program contains a first array definition statement determining a value of an array and an array use statement using the value of the array, the following steps are effected: (a) in the (B2), for each loop of the source program, (a1) judging whether or not subscripts of array references are equal to each other through a repetition of an execution of the loop, thereby obtaining array definition/use relationship data representing a definition/use relationship appearing during the repetition of the loop; and then (a2) judging whether or not the subscripts of the array references take a same value, thereby obtaining array definition/use relationship data representing a definition/use relationship appearing in another repetition of the loop, and then (b) in the (B3), judging whether or not the array definition/use relationship data contains only a definition/use relationship for which a result of a program execution is not changed by a transformation of the program, and effecting a program transformation processing only when the judgment result is true.