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

Inline expansion method for programming languages having array functions

Assignee: International Business Machines Corp
•
Filing: 1994-11-22
•
Granted: 1997-06-17
•
Expires: 2014-11-22
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract To provide inline expansion universally applicable to a variety of formulas as combinations of array functions and array operations with a programming language such as APL or FORTRAN 90 having array functions, without the need to prepare individual templates or macros. In the method of the present invention, a transformational intrinsic function (TIF) formula is analyzed during compilation and a template for inline expansion is generated. The template for inline expansion is mapped to an actual array, and macro-processing is used in generating the template. According to this method, an arbitrary combination of TIFs can be inline-expanded by simply preparing one macro-template for each TIF.

Inventors

  • 👤 Hideaki Komatsu

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 21:09
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/42; G06F8/423; G06F8/44; G06F8/443; G06F8/4441

Claims Analysis

Total Claims: 12
Claim 1
Independent Claim 95 words
In a computer system having a compiler for generating an object code from a source code, said computer having a processor and a storage means, a method for inline expansion, in said compiler, for a programming language having array functions, comprising the steps of: (a) converting, using said compiler, said array functions into virtual arrays, said converting step includes macro-expansion of said array functions and generating mapping functions from said virtual arrays to actual arrays; (b) inline-expanding said virtual arrays; and (c) inversely converting said inline-expanded virtual arrays into actual arrays using said mapping functions.
Claim 2
Dependent Claim 95 words
In a computer system having a compiler for generating an object code from a source code, said computer having a processor and a storage means, a method for inline expansion, in said compiler, for a programming language having array functions, comprising the steps of: (a) converting, using said compiler, said array functions into virtual arrays, said converting step includes macro-expansion of said array functions and generating mapping functions from said virtual arrays to actual arrays; (b) inline-expanding said virtual arrays; and (c) inversely converting said inline-expanded virtual arrays into actual arrays using said mapping functions.
Claim 3
Dependent Claim 24 words
An inline expansion method as recited in claim 1, wherein said programming language is Fortran 90 and said array functions are transformational intrinsic functions.
Claim 4
Dependent Claim 19 words
An inline expansion method as recited in claim 2, wherein said transformational intrinsic functions are SPREAD or CSHIFT functions.
Claim 5
Dependent Claim 24 words
An inline expansion method as recited in claim 1, wherein said programming language is Fortran 90 and said array functions are reduction intrinsic functions.
Claim 6
Dependent Claim 18 words
An inline expansion method as recited in claim 4, wherein said reduction intrinsic function is a MERGE function.
Claim 7
Dependent Claim 26 words
An inline expansion method as recited in claim 1, wherein said inversely converting step is performed by using macrotemplates generated by analyzing individual transformational intrinsic functions.
Claim 8
Dependent Claim 183 words
In a computer system having a compiler for generating an object code from a source code, said computer having a processor and a storage means, a method for inline expansion, in said compiler, for a programming language having array functions, comprising the steps of: (a) creating, using said compiler, for individual array function, a function for converting said individual array function to a virtual array and a function for generating a macro-template based on a transformational intrinsic function or reduction intrinsic function in said source code; (b) finding, using said compiler, a formula included in said individual array function in said source code; (c) converting said formula to a formula included in said virtual array using a function for converting said formula to a formula in said virtual array; (d) generating a macro-template for converting said virtual array to an actual array based on said transformational intrinsic function or reduction intrinsic function in said source code; (e) inline-expanding said formula included in said virtual array; and (f) inversely converting said virtual array in said inline-expanded formula to said actual array using said macro-template.
Claim 9
Dependent Claim 183 words
In a computer system having a compiler for generating an object code from a source code, said computer having a processor and a storage means, a method for inline expansion, in said compiler, for a programming language having array functions, comprising the steps of: (a) creating, using said compiler, for individual array function, a function for converting said individual array function to a virtual array and a function for generating a macro-template based on a transformational intrinsic function or reduction intrinsic function in said source code; (b) finding, using said compiler, a formula included in said individual array function in said source code; (c) converting said formula to a formula included in said virtual array using a function for converting said formula to a formula in said virtual array; (d) generating a macro-template for converting said virtual array to an actual array based on said transformational intrinsic function or reduction intrinsic function in said source code; (e) inline-expanding said formula included in said virtual array; and (f) inversely converting said virtual array in said inline-expanded formula to said actual array using said macro-template.
Claim 10
Dependent Claim 42 words
An inline expansion method as recited in claim 7, wherein said function for converting said individual array function to said virtual array includes a function determining said virtual array dimensions and making said virtual array indices and indices for corresponding actual array.
Claim 11
Dependent Claim 88 words
An inline expansion method as recited in claim 7, further comprising the step of generating, in response to the existence of nested array functions, macro-templates for nested array functions, and generating, as a result, said macro-templates to be used for inversely converting the virtual array in said inline expanded formula to said actual array by sequentially applying a macro-template generated for an array function occupying an inside position in a nested structure to a macro-template generated for an array function occupying an outside position in said nested structure.
Claim 12
Dependent Claim 90 words
An inline expansion method as recited in claim 7, further comprising the step of generating, in response to the existence of said nested array functions, macro-templates for respective said nested array functions, and generating, as a result, macro-templates to be used for inversely converting said virtual array in said inline expanded formula to said actual array by sequentially applying a macro-template generated for an array function occupying an outside position in said nested structure to a macro-template generated for an array function occupying an inside position in said nested structure.

References Cited (Backward Citations)

JPS58149569A Cited
US5347654A Cited
US5475842A Cited
US5485619A Cited
US5450313A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-06-16 2000-12-16 2001-06-17 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-06-16 2004-12-16 2005-06-17 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-06-16 2008-12-16 2009-06-17 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag