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

Method for selectively and incrementally displaying the results of preprocessing

Assignee: Thnkage Ltd
•
Filing: 1997-05-16
•
Granted: 1999-08-31
•
Expires: 2017-05-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention makes it possible for computer programmers to selectively examine the effects of preprocessing operations on computer source code. Where a preprocessor construct, such as a macro, appears in the source code, a user may selectively expand the construct to see the effects of expansion. If a macro expands into text which contains other macro calls, the user may selectively expand the other macro calls. The present invention allows the user to go back and forth between unexpanded, partly expanded, and fully expanded constructs in order to obtain a better understanding of the effect of macro expansion on the original source code. The present invention applies to any programming language which supports macros and/or other preprocessing constructs. It also applies to preprocessors that are independent of any programming language, such as the M4 preprocessor. The invention may also be included in another computer program, such as a debugger.

Inventors

  • 👤 David A. Tanguay
  • 👤 Peter J. Fraser

Bibliographic Details

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

Claims Analysis

Total Claims: 70
Claim 1
Independent Claim 81 words
In a computer system, including original code, a method for selectively viewing the results of preprocessing, comprising: selecting selected portions of the original code for display in preprocessed form; preprocessing the original code to produce preprocessed code by substituting the text of preprocessing constructs within the original code with corresponding expanded text in the preprocessed code; and sending to an output device the selected portions of the original code in preprocessed form as well as corresponding portions of the original code.
Claim 2
Dependent Claim 81 words
In a computer system, including original code, a method for selectively viewing the results of preprocessing, comprising: selecting selected portions of the original code for display in preprocessed form; preprocessing the original code to produce preprocessed code by substituting the text of preprocessing constructs within the original code with corresponding expanded text in the preprocessed code; and sending to an output device the selected portions of the original code in preprocessed form as well as corresponding portions of the original code.
Claim 3
Dependent Claim 13 words
The method of claim 1, wherein the step of preprocessing performs macro expansion.
Claim 4
Dependent Claim 13 words
The method of claim 1, wherein the step of preprocessing performs file inclusion.
Claim 5
Dependent Claim 20 words
The method of claim 1, wherein the step of preprocessing performs conditional inclusion of designated portions of the original code.
Claim 6
Dependent Claim 42 words
The method of claim 1, wherein: the preprocessing step incrementally preprocesses the original code by expanding preprocessing constructs within the original code to produce expanded code in which nested preprocessing constructs within the expanded code are not expanded to their fullest extent.
Claim 7
Dependent Claim 61 words
The method of claim 5, further including: selecting a selected portion of the expanded code for further incremental preprocessing; and preprocessing the selected portion of the expanded code by expanding preprocessing constructs in the selected portion of the expanded code to produce further expanded code so that nested preprocessing constructs within the further expanded code are expanded to their fullest extent.
Claim 8
Dependent Claim 40 words
The method of claim 1, including: selecting selected portions of the preprocessed code for display to the output device in original code form; and sending to the output device the selected portions of the preprocessed code in original code form.
Claim 9
Dependent Claim 30 words
The method of claim 1, wherein the step of selecting selected portions of the original code for display in preprocessed form is performed by a human through a user interface.
Claim 10
Dependent Claim 50 words
The method of claim 1, wherein the step of selecting selected portions of the original code for display in preprocessed form is performed by a human through a user interface by inputting an explicit command in the form of a character string to select a portion of the original code.
Claim 11
Dependent Claim 26 words
The method of claim 1, wherein the step of selecting selected portions of the original code for display in preprocessed form is performed by computer program.
Claim 12
Dependent Claim 26 words
The method of claim 1, wherein the step of selecting selected portions of the original code for display in preprocessed form is performed by a debugger.
Claim 13
Dependent Claim 59 words
The method of claim 1, wherein: the step of preprocessing preprocesses all of an original code module to produce a preprocessed code module; and the step of sending to an output device selected portions of the preprocessed code with portions of the original code sends portions of the preprocessed code module together with portions of the original code module.
Claim 14
Dependent Claim 18 words
The method of claim 1, wherein the step of preprocessing preprocesses selected portions of an original code module.
Claim 15
Dependent Claim 16 words
The method of claim 1, wherein the original code includes a plurality of original code files.
Claim 16
Dependent Claim 17 words
The method of claim 1, wherein the step of preprocessing takes place before the step of selecting.
Claim 17
Dependent Claim 23 words
The method of claim 1, wherein the step of preprocessing takes place in parallel with the step of sending to an output device.
Claim 18
Dependent Claim 23 words
The method of claim 1, wherein: the original code includes a database query; and the step of preprocessing includes preprocessing the database query.
Claim 19
Dependent Claim 20 words
The method of claim 1, wherein the step of preprocessing includes embedding a set of annotations into the preprocessed code.
Claim 20
Dependent Claim 46 words
The method of claim 1, wherein the step of preprocessing includes embedding a set of annotations into the preprocessed code, the set of annotations including a first marker before a portion of the preprocessed code and a second marker after the portion of the preprocessed code.
Claim 21
Dependent Claim 46 words
The method of claim 1, wherein the step of preprocessing includes embedding a set of annotations into the preprocessed code, the set of annotations including a first marker before a portion of preprocessed code, and an indication of the length of the portion of preprocessed code.
Claim 22
Dependent Claim 34 words
The method of claim 1, wherein the step of preprocessing creates a data structure representing a macro as a node and representing an associated macro expansion as an expansion tree linked to the node.
Claim 23
Dependent Claim 34 words
The method of claim 21, wherein when a node represents a macro that occurs in an expansion of a containing macro, there are links in both directions, linking the macro and the containing macro.
Claim 24
Dependent Claim 48 words
The method of claim 1, wherein the step of preprocessing includes embedding a set of annotations into the preprocessed code, the set of annotations including instructions on how to modify portions of the original code to obtain corresponding portions of final and intermediate versions of the preprocessed code.
Claim 25
Dependent Claim 34 words
The method of claim 1, wherein the step of preprocessing includes creating a set of annotations, the set of annotations including references to portions of original code and references to portions of preprocessed code.
Claim 26
Dependent Claim 38 words
The method of claim 1, wherein the step of preprocessing includes producing a set of annotations separate from the preprocessed code, the set of annotations including information linking portions of original code with corresponding portions of preprocessed code.
Claim 27
Dependent Claim 35 words
The method of claim 1, wherein: the step of preprocessing includes embedding a set of annotations into the preprocessed code; and including stripping out the annotations from the preprocessed code; and compiling the preprocessed code.
Claim 28
Dependent Claim 20 words
The method of claim 1, wherein the step of preprocessing includes embedding a set of annotations into the original code.
Claim 29
Dependent Claim 15 words
The method of claim 1, wherein the step of preprocessing includes compressing the preprocessed code.
Claim 30
Dependent Claim 41 words
The method of claim 1, wherein the step of sending to an output device sends a selected portion of the preprocessed code along with a corresponding portion of the original code from which the portion of the preprocessed code was derived.
Claim 31
Dependent Claim 26 words
The method of claim 1, wherein in the step of sending to an output device, the preprocessed code is distinguished from the original code by color.
Claim 32
Dependent Claim 27 words
The method of claim 1, wherein in the step of sending to an output device, the preprocessed code is distinguished from the original code by font characteristics.
Claim 33
Dependent Claim 28 words
The method of claim 1, wherein in the step of sending to an output device, the preprocessed code is distinguished from the original code by a visual marking.
Claim 34
Dependent Claim 13 words
The method of claim 1, including the step of compiling the preprocessed code.
Claim 35
Dependent Claim 125 words
In a computer system, including original code, a method for selectively viewing the results of preprocessing, comprising: selecting selected portions of the original code for display in preprocessed form; preprocessing the original code to produce preprocessed code, wherein the preprocessing, includes macro expansion, file inclusion and conditional inclusion of designated portions of the original code, expands preprocessing constructs within the original code to produce expanded code in which preprocessing constructs within the expanded code are not expanded to their fullest extent, and creates a set of annotations relating portions of the original code with corresponding portions of the preprocessed code; and sending to an output device the selected portions of the original code in preprocessed form as well as corresponding portions of the original code.
Claim 36
Dependent Claim 125 words
In a computer system, including original code, a method for selectively viewing the results of preprocessing, comprising: selecting selected portions of the original code for display in preprocessed form; preprocessing the original code to produce preprocessed code, wherein the preprocessing, includes macro expansion, file inclusion and conditional inclusion of designated portions of the original code, expands preprocessing constructs within the original code to produce expanded code in which preprocessing constructs within the expanded code are not expanded to their fullest extent, and creates a set of annotations relating portions of the original code with corresponding portions of the preprocessed code; and sending to an output device the selected portions of the original code in preprocessed form as well as corresponding portions of the original code.
Claim 37
Independent Claim 80 words
An apparatus for selectively viewing the results of preprocessing, comprising: a computing system including an output device; resources that select selected portions of the original code for display in preprocessed form; a preprocessor to preprocess original code to produce preprocessed code by substituting the text of preprocessing constructs within the original code with corresponding expanded text in the preprocessed code; and resources that send to the output device selected portions of the preprocessed code with portions of the original code.
Claim 38
Independent Claim 80 words
An apparatus for selectively viewing the results of preprocessing, comprising: a computing system including an output device; resources that select selected portions of the original code for display in preprocessed form; a preprocessor to preprocess original code to produce preprocessed code by substituting the text of preprocessing constructs within the original code with corresponding expanded text in the preprocessed code; and resources that send to the output device selected portions of the preprocessed code with portions of the original code.
Claim 39
Dependent Claim 14 words
The apparatus of claim 35, wherein the preprocessor includes resources that perform macro expansion.
Claim 40
Dependent Claim 14 words
The apparatus of claim 35, wherein the preprocessor includes resources that perform file inclusion.
Claim 41
Dependent Claim 21 words
The apparatus of claim 35, wherein the preprocessor includes resources that perform conditional inclusion of designated portions of the original code.
Claim 42
Dependent Claim 43 words
The apparatus of claim 35, wherein the preprocessor includes resources that incrementally preprocess the original code by expanding preprocessing constructs within the original code to produce expanded code so that preprocessing constructs within the expanded code are not expanded to their fullest extent.
Claim 43
Dependent Claim 64 words
The apparatus of claim 39, further including resources that select a selected portion of the expanded code for further preprocessing; and resources that preprocess the selected portion of the expanded code by expanding preprocessing constructs in the selected portion of the expanded code to produce further expanded code so that nested preprocessing constructs within the further expanded code are expanded to their fullest extent.
Claim 44
Dependent Claim 43 words
The apparatus of claim 35, including: resources that select a selected portion of the preprocessed code for display to the output device in original form; and resources that send to the output device the selected portion of the preprocessed code in original form.
Claim 45
Dependent Claim 29 words
The apparatus of claim 35, wherein the resources that select selected portions of original code include a user interface which includes resources that accept selections from a human user.
Claim 46
Dependent Claim 38 words
The apparatus of claim 35, wherein the resources that select selected portions of the original code include a user interface which includes resources that accept a selection from a human user in the form of a character string.
Claim 47
Dependent Claim 25 words
The apparatus of claim 35, wherein the resources that select selected portions of the original code includes resources that accept selections from a computer program.
Claim 48
Dependent Claim 24 words
The apparatus of claim 35, wherein the resources that select selected portions of the original code includes resources that accept selections from a debugger.
Claim 49
Dependent Claim 60 words
The apparatus of claim 35, wherein: the preprocessor includes resources that preprocess all of an original code module to produce a preprocessed code module; and the resources that send to the output device selected portions of the preprocessed code with portions of the original code display portions of the preprocessed code module together with portions of the original code module.
Claim 50
Dependent Claim 19 words
The apparatus of claim 35, wherein the preprocessor includes resources that preprocess selected portions of an original code module.
Claim 51
Dependent Claim 16 words
The apparatus of claim 35, wherein the original code includes a plurality of original code files.
Claim 52
Dependent Claim 22 words
The apparatus of claim 35, wherein the preprocessor includes resources that perform the preprocessing before the resources that select perform the selecting.
Claim 53
Dependent Claim 26 words
The apparatus of claim 35, wherein preprocessor includes resources that perform the preprocessing in parallel with the resources that perform the sending to the output device.
Claim 54
Dependent Claim 15 words
The apparatus of claim 35, wherein the preprocessor includes resources that preprocess a database query.
Claim 55
Dependent Claim 19 words
The apparatus of claim 35, wherein preprocessor includes resources that embed a set of annotations into the preprocessed code.
Claim 56
Dependent Claim 38 words
The apparatus of claim 35, wherein preprocessor includes resources that embed a set of annotations into the preprocessed code, the set of annotations including a first marker before and a second marker after a portion of preprocessed code.
Claim 57
Dependent Claim 46 words
The apparatus of claim 35, wherein the preprocessor includes resources that embed a set of annotations into the preprocessed code, the set of annotations including a first marker before a portion of preprocessed code, and an indication of the length of the portion of preprocessed code.
Claim 58
Dependent Claim 35 words
The apparatus of claim 35, wherein the preprocessor includes resources that create a data structure representing a macro as a node and representing an associated macro expansion as an expansion tree linked to the node.
Claim 59
Dependent Claim 34 words
The method of claim 55, wherein when a node represents a macro that occurs in an expansion of a containing macro, there are links in both directions, linking the macro and the containing macro.
Claim 60
Dependent Claim 48 words
The apparatus of claim 35, wherein the preprocessor includes resources that embed a set of annotations into the preprocessed code, the set of annotations including instructions on how to modify portions of the original code to obtain corresponding portions of final and intermediate versions of the preprocessed code.
Claim 61
Dependent Claim 34 words
The apparatus of claim 35, wherein the preprocessor includes resources that create a set of annotations, the set of annotations including references to portions of original code and references to portions of preprocessed code.
Claim 62
Dependent Claim 40 words
The apparatus of claim 35, wherein the preprocessor includes resources that produce a set of annotations separate from the preprocessed code, the set of annotations including information linking portions of the original code with corresponding portions of the preprocessed code.
Claim 63
Dependent Claim 39 words
The apparatus of claim 35, wherein the preprocessor includes resources that embed a set of annotations into the preprocessed code, and including: resources that strip out the annotations from the preprocessed code; and resources that compile the preprocessed code.
Claim 64
Dependent Claim 20 words
The apparatus of claim 35, wherein the preprocessor includes resources that embed a set of annotations into the original code.
Claim 65
Dependent Claim 15 words
The apparatus of claim 35, wherein the preprocessor includes resources to compress the preprocessed code.
Claim 66
Dependent Claim 38 words
The apparatus of claim 35, wherein the resources that send to the output device include resources that send selected portions of preprocessed code along with corresponding portions of the original code from which the preprocessed code was derived.
Claim 67
Dependent Claim 27 words
The apparatus of claim 35, wherein in the resources send to the output device include resources that distinguish the preprocessed code from the original code by color.
Claim 68
Dependent Claim 28 words
The apparatus of claim 35, wherein in the resources that send to the output device include resources that distinguish the preprocessed from the original code by font characteristics.
Claim 69
Dependent Claim 30 words
The apparatus of claim 35, wherein in the resources that send to the output device include resources that distinguish the preprocessed code from the original code by a visual marking.
Claim 70
Dependent Claim 12 words
The apparatus of claim 35, including resources that compile the preprocessed code.

References Cited (Backward Citations)

US4553205A Cited
US5644692A Cited
US5513305A Cited
US5701489A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-08-30 2003-03-01 2003-08-31 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-08-30 2007-03-01 2007-08-31 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-08-30 2011-03-01 2011-08-31 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag