← Back to Patent Explorer
US5845126A Expired / Lapsed US ⏱️ 0.0 years remaining

Method of, system for, and computer program product for providing inlined nested array constructors using normalized counters

Assignee: International Business Machines Corp
•
Filing: 1995-12-06
•
Granted: 1998-12-01
•
Expires: 2015-12-06
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Method of, system for, and computer program product for generating efficient code for a set of nested Fortran 90 array constructors without introducing temporary vectors by the use of normalized counters and by maintaining array constructor extent structure trees. Non-perfectly nested array constructors and array constructors with dynamic extents may be inlined. The results provided include a reduction in run-time memory storage usage and an improvement in execution time performance.

Inventors

  • 👤 Dz Ching Ju
  • 👤 John Shek-Luen Ng

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 17:30
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/44; G06F8/447

Claims Analysis

Total Claims: 15
Claim 1
Independent Claim 127 words
A method for translating an expression containing one or more array constructors nested in one or more array constructor levels in a source program, said method comprising the steps of: searching a plurality of nodes of an expression tree of the expression for each of the array constructors; associating a normalized counter with each of the array constructor levels; scalarizing the array constructors nested in an array constructor level by use of the normalized counter associated with the array constructor level; building an extent structure tree of a portion of the expression tree rooted at a current expression tree node if the current expression tree node is an array constructor; and splitting the current expression tree node if the current expression tree node is a non-elemental operator.
Claim 2
Independent Claim 127 words
A method for translating an expression containing one or more array constructors nested in one or more array constructor levels in a source program, said method comprising the steps of: searching a plurality of nodes of an expression tree of the expression for each of the array constructors; associating a normalized counter with each of the array constructor levels; scalarizing the array constructors nested in an array constructor level by use of the normalized counter associated with the array constructor level; building an extent structure tree of a portion of the expression tree rooted at a current expression tree node if the current expression tree node is an array constructor; and splitting the current expression tree node if the current expression tree node is a non-elemental operator.
Claim 3
Dependent Claim 107 words
The method of claim 1 wherein the building step further comprises the steps of: determining if the current expression tree node has a non-elemental operator ancestor and no other array constructor in between, or if the extent structure tree rooted at the current expression tree node is not identical to a prior extent structure tree built at the array constructor level of the current expression tree node; and splitting the current expression tree node, associating the normalized counter with the array constructor, and scalarizing the portion of the expression tree rooted at the current expression tree node using the associated normalized counter, if the determination is true.
Claim 4
Dependent Claim 77 words
The method of claim 2 wherein the scalarizing step further comprises the steps of: scalarizing a surrounding expression of the current expression node using the associated normalized counter as an index variable; incrementing the associated normalized counter; scalarizing the portion of the expression tree rooted at a current expression tree node using an ac-value of an array constructor located at a top level of the expression tree; and attaching the scalarized portion to the scalarized surrounding expression.
Claim 5
Dependent Claim 102 words
The method of claim 3 wherein the scalarizing portion step further comprises the steps of: if the ac-value is an implied-do, creating a loop with bounds from the implied-do and scalarizing the ac-value; if the ac-value contains an array constructor, creating another normalized counter and scalarizing the ac-value; scalarizing the ac-value if the ac-value is a scalar expression; and creating a loop nest with depth equal to a rank of the ac-value and with bounds from extents of the ac-value, and scalarizing the ac-value using loop index variables based on the depth and the bounds, if the ac-value is an array expression.
Claim 6
Dependent Claim 144 words
A computer system for translating an expression containing one or more array constructors nested in one or more array constructor levels in a source program, said computer system comprising: a searcher for searching a plurality of nodes of an expression tree of the expression for each of the array constructors; an associator for associating a normalized counter with each of the array constructor levels; a scalarizer for scalarizing the array constructors nested in an array constructor level by use of the normalized counter associated with the array constructor level; an extent structure tree builder for building an extent structure tree of a portion of the expression tree rooted at a current expression tree node if the current expression tree node is an array constructor; and a splitter for splitting the current expression tree node if the current expression tree node is a non-elemental operator.
Claim 7
Dependent Claim 144 words
A computer system for translating an expression containing one or more array constructors nested in one or more array constructor levels in a source program, said computer system comprising: a searcher for searching a plurality of nodes of an expression tree of the expression for each of the array constructors; an associator for associating a normalized counter with each of the array constructor levels; a scalarizer for scalarizing the array constructors nested in an array constructor level by use of the normalized counter associated with the array constructor level; an extent structure tree builder for building an extent structure tree of a portion of the expression tree rooted at a current expression tree node if the current expression tree node is an array constructor; and a splitter for splitting the current expression tree node if the current expression tree node is a non-elemental operator.
Claim 8
Dependent Claim 118 words
The computer system of claim 5 wherein the building means further comprises: a comparator for determining if the current expression tree node has a non-elemental operator ancestor and no other array constructor in between, or if the extent structure tree rooted at the current expression tree node is not identical to a prior extent structure tree built at the array constructor level of the current expression tree node; and an expression splitter for splitting the current expression tree node, an associator for associating the normalized counter with the array constructor, and a scalarizer for scalarizing the portion of the expression tree rooted at the current expression tree node using the associated normalized counter, if the determination is true.
Claim 9
Dependent Claim 86 words
The computer system of claim 6 wherein the scalarizer further comprises: a scalarizer for scalarizing a surrounding expression of the current expression node using the associated normalized counter as an index variable; an incrementer for incrementing the associated normalized counter; a scalarizer for scalarizing the portion of the expression tree rooted at a current expression tree node using an ac-value of an array constructor located at a top level of the expression tree; and an associator for attaching the scalarized portion to the scalarized surrounding expression.
Claim 10
Dependent Claim 120 words
The computer system of claim 7 wherein the scalarizer for scalarizing the portion further comprises: a loop scalarizer for creating a loop with bounds from the implied-do and scalarizing the ac-value if the ac-value is an implied-do; a counter creator for creating another normalized counter and a scalarizer for scalarizing the ac-value if the ac-value contains an array constructor; a scalarizer for scalarizing the ac-value if the ac-value is a scalar expression; and a loop scalarizer for creating a loop nest with depth equal to a rank of the ac-value and with bounds from extents of the ac-value, and scalarizing the ac-value using loop index variables based on the depth and the bounds, if the ac-value is an array expression.
Claim 11
Dependent Claim 153 words
An article of manufacture for use in a computer system for translating an expression containing one or more array constructors nested in one or more array constructor levels in a source program, said article of manufacture comprising a computer-readable storage medium having a computer program embodied in said medium which may cause the computer system to: search a plurality of nodes of an expression tree of the expression for each of the array constructors; associate a normalized counter with each of the array constructor levels; scalarize the array constructors nested in an array constructor level by use of the normalized counter associated with the array constructor level; build an extent structure tree of a portion of the expression tree rooted at a current expression tree node if the current expression tree node is an array constructor; and split the current expression tree node if the current expression tree node is a non-elemental operator.
Claim 12
Dependent Claim 153 words
An article of manufacture for use in a computer system for translating an expression containing one or more array constructors nested in one or more array constructor levels in a source program, said article of manufacture comprising a computer-readable storage medium having a computer program embodied in said medium which may cause the computer system to: search a plurality of nodes of an expression tree of the expression for each of the array constructors; associate a normalized counter with each of the array constructor levels; scalarize the array constructors nested in an array constructor level by use of the normalized counter associated with the array constructor level; build an extent structure tree of a portion of the expression tree rooted at a current expression tree node if the current expression tree node is an array constructor; and split the current expression tree node if the current expression tree node is a non-elemental operator.
Claim 13
Dependent Claim 129 words
The article of manufacture of claim 9, wherein said computer program, in causing the computer system to build the extent structure tree of the portion of the expression tree, may further cause the computer system to: determine if the current expression tree node has a non-elemental operator ancestor and no other array constructor in between, or if the extent structure tree rooted at the current expression tree node is not identical to a prior extent structure tree built at the array constructor level of the current expression tree node; and split the current expression tree node, associating the normalized counter with the array constructor, and scalarize the portion of the expression tree rooted at the current expression tree node using the associated normalized counter, if the determination is true.
Claim 14
Dependent Claim 101 words
The article of manufacture of claim 10, wherein said computer program in causing the computer system to scalarize the portion of the expression tree rooted at the current expression tree node, may further cause the computer system to: scalarize a surrounding expression of the current expression node using the associated normalized counter as an index variable; increment the associated normalized counter; scalarize the portion of the expression tree rooted at a current expression tree node using an ac-value of an array constructor located at a top level of the expression tree; and attach the scalarized portion to the scalarized surrounding expression.
Claim 15
Dependent Claim 125 words
The article of manufacture of claim 11, wherein said computer program in causing the computer system to scalarize the portion of the expression tree rooted at the current expression tree node, may further cause the computer system to: if the ac-value is an implied-do, create a loop with bounds from the implied-do and scalarize the ac-value; if the ac-value contains an array constructor, create another normalized counter and scalarize the ac-value; scalarize the ac-value if the ac-value is a scalar expression; and create a loop nest with depth equal to a rank of the ac-value and with bounds from extents of the ac-value, and scalarize the ac-value using loop index variables based on the depth and the bounds, if the ac-value is an array expression.

References Cited (Backward Citations)

US5175856A Cited
US5200915A Cited
US5276881A Cited
US5280613A Cited
US5339419A Cited
US5274818A Cited
US5375242A Cited
US5640568A Cited
US5485619A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-11-30 2002-06-01 2002-12-01 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-11-30 2006-06-01 2006-12-01 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-11-30 2010-06-01 2010-12-01 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag