Patent US1040266A successfully refreshed from Google Patents.
Patent US5748975A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5748975A Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for textual editing of structurally-represented computer programs with on-the-fly typographical display

Assignee: Oracle America Inc
•
Filing: 1995-07-06
•
Granted: 1998-05-05
•
Expires: 2015-07-06
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A user-friendly editor for structurally represented computer programs is disclosed. The present editor combines advantages of text editors and structure editors by transforming, as the user types, the event stream entered by the user into a token stream, where the tokens of the token stream constitute the words of the program being entered. Each of the tokens is classified by the editor as one of group of extended lexemes defined by the language in which the program being edited is written. These extended lexemes are defined similar to lexemes that might be used in a batch lexer, but are more numerous as the present editor must account for the incomplete and ill-formed lexemes that arise as the user types the program. Based on information in the token stream, the editor prettyprints the program as the user types. The editor also allows the user to edit the program from the prettyprinted display as if the program were internally represented as text. The present editor also allows the user to periodically request a syntactical analysis of the program, wherein the structure of the program is represented in a syntax tree that references the token stream.

Inventors

  • 👤 Michael L. Van De Vanter

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 18:05
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/30; G06F8/33

Claims Analysis

Total Claims: 37
Claim 1
Independent Claim 114 words
A process for editing structurally represented computer programs with on-the-fly prettyprinting comprising the steps of: maintaining a token stream representation of a computer program after each input event that occurs as said program is entered, wherein said token stream representation comprises a sequence of tokens, each of said tokens characterized according to a set of extended lexical properties relative to the language of said computer program, said maintaining step requiring no maintenance of a text stream representation of said program; and typographically displaying said program as said program is entered based on said token stream representation of said program, wherein said extended lexical properties of said tokens influence said typographical display of said tokens.
Claim 2
Dependent Claim 114 words
A process for editing structurally represented computer programs with on-the-fly prettyprinting comprising the steps of: maintaining a token stream representation of a computer program after each input event that occurs as said program is entered, wherein said token stream representation comprises a sequence of tokens, each of said tokens characterized according to a set of extended lexical properties relative to the language of said computer program, said maintaining step requiring no maintenance of a text stream representation of said program; and typographically displaying said program as said program is entered based on said token stream representation of said program, wherein said extended lexical properties of said tokens influence said typographical display of said tokens.
Claim 3
Dependent Claim 27 words
The editing process of claim 1, further comprising the step of: generating an editable text stream corresponding to said token stream representation of said typographically displayed program.
Claim 4
Dependent Claim 78 words
The editing process of claim 1, further comprising the step of: maintaining a structured representation of said program, wherein said structured representation additionally characterizes said tokens according to a set of extended syntactical properties; wherein said typographical displaying step comprises: typographically displaying said program as said program is entered based on said structured and said token stream representations of said program, wherein said extended lexical and syntactical properties of said tokens influence said typographical display of said tokens.
Claim 5
Dependent Claim 30 words
The editing process of claim 3, further comprising the step of: generating an editable text stream corresponding to said token stream and said structured representations of said typographically displayed program.
Claim 6
Dependent Claim 134 words
A process for editing structurally represented computer programs with on-the-fly prettyprinting comprising the steps of: tokenizing a computer program after each input event that occurs as said program is entered, wherein said tokenizing involves generating a token stream representation of said computer program and characterizing each token in said token stream as at least one of a catalog of extended lexical properties relative to the language of said computer program, said tokenizing step requiring no maintenance of a text stream representation of said program; typographically displaying said program as said program is entered based on said token stream representation of said program, wherein said extended lexical properties of said tokens influence said typographical display of said tokens; and generating an editable text stream corresponding to said token stream representation of said typographically displayed program.
Claim 7
Dependent Claim 134 words
A process for editing structurally represented computer programs with on-the-fly prettyprinting comprising the steps of: tokenizing a computer program after each input event that occurs as said program is entered, wherein said tokenizing involves generating a token stream representation of said computer program and characterizing each token in said token stream as at least one of a catalog of extended lexical properties relative to the language of said computer program, said tokenizing step requiring no maintenance of a text stream representation of said program; typographically displaying said program as said program is entered based on said token stream representation of said program, wherein said extended lexical properties of said tokens influence said typographical display of said tokens; and generating an editable text stream corresponding to said token stream representation of said typographically displayed program.
Claim 8
Dependent Claim 36 words
The editing process of claim 5, wherein said extended lexical properties associated with each of said tokens include a lexical class and, when said token is not well-formed, an extended type selected from ill-formed or incomplete.
Claim 9
Dependent Claim 27 words
The editing process of claim 6, wherein well-formed tokens, ill-formed tokens and incomplete tokens are typographically displayed in a visually distinct manner associated with their respective extended-types.
Claim 10
Dependent Claim 31 words
The editing process of claim 7, wherein said ill-formed tokens are typographically displayed with a first preselected color overlay and said incomplete tokens are displayed with a second preselected color overlay.
Claim 11
Dependent Claim 23 words
The editing process of claim 7, wherein said tokens are typographically displayed in a visually distinct manner tied to their respective lexical classes.
Claim 12
Dependent Claim 109 words
The editing process of claim 5, wherein said tokenizing step comprises the steps of: receiving said input event generated by at least one input device as said program is entered; determining an insertion point in said token stream corresponding to said input event; incrementally updating said token stream by lexically analyzing a token stream segment consisting of tokens from said token stream likely to be affected by said input event; and updating said insertion point in light of said incrementally updated token stream; wherein said typographical displaying step includes displaying a cursor providing user interactability with said typographically displayed program at a screen position corresponding to said insertion point.
Claim 13
Dependent Claim 49 words
The editing process of claim 10, wherein said token stream segment consists of a left token immediately to the left of said insertion point, all right tokens immediately to the right of said token, and when said insertion point is inside said token, said token including said insertion point.
Claim 14
Dependent Claim 86 words
The editing process of claim 5, further comprising the step of: parsing said token stream to form a structured representation of said computer program, said structured representation reflecting the syntax of a computer language in which said computer program is expressed; and wherein said typographical displaying step comprises: typographically displaying said program as said program is entered based on said structured representation and said token stream representation of said program; wherein said extended lexical properties and said structured representation influence said typographical display of said tokens.
Claim 15
Dependent Claim 29 words
The editing process of claim 12, wherein said parsing step is executed either opportunistically or in response to predetermined user actions, where opportunistically means when computer resources are available.
Claim 16
Dependent Claim 130 words
An editor for structurally represented computer programs comprising: at least one input device configured to receive a computer program into said editor, said at least one input device generating a stream of input events as said program is entered; an extended lexical analyzer that represents said program as a token stream and characterizes each token in said token stream as at least one of a catalog of extended lexical properties relative to the language of said computer program without being required to maintain a text stream representation of said program, said extended lexical analyzer updating said token stream representation and characterization after each said input event; a typographical display processor configured to prettyprint said token stream based on said extended lexical properties of said tokens as said program is entered.
Claim 17
Dependent Claim 130 words
An editor for structurally represented computer programs comprising: at least one input device configured to receive a computer program into said editor, said at least one input device generating a stream of input events as said program is entered; an extended lexical analyzer that represents said program as a token stream and characterizes each token in said token stream as at least one of a catalog of extended lexical properties relative to the language of said computer program without being required to maintain a text stream representation of said program, said extended lexical analyzer updating said token stream representation and characterization after each said input event; a typographical display processor configured to prettyprint said token stream based on said extended lexical properties of said tokens as said program is entered.
Claim 18
Dependent Claim 35 words
The editor of claim 14, wherein said extended lexical properties associated with each of said tokens include a lexical class and, when said token is not well-formed, an extended type selected from ill-formed or incomplete.
Claim 19
Dependent Claim 27 words
The editor of claim 15, wherein well-formed tokens, ill-formed tokens and incomplete tokens are typographically displayed in a visually distinct manner associated with their respective extended types.
Claim 20
Dependent Claim 30 words
The editor of claim 16, wherein said typographical display processor displays said ill-formed tokens with a first preselected color overlay and said incomplete tokens with a second preselected color overlay.
Claim 21
Dependent Claim 24 words
The editor of claim 17, wherein said typographical display processor displays said tokens in a visually distinct manner tied to their respective lexical classes.
Claim 22
Dependent Claim 181 words
The editor of claim 14, wherein said extended lexical analyzer comprises: a keystroke executive configured to receive each input event generated by said at least one input device as said program is entered, said keystroke executive maintaining said token stream representation and an insertion point as said program is entered; and a tokenizer callable by said keystroke executive, said tokenizer being an expert at incremental, lexical analysis of token streams, said keystroke executive passing said tokenizer a token stream segment consisting of a tokens proximal to said insertion point likely to be affected by said input event and asking said tokenizer to suggest an update to said token steam segment based on said most recent input event, said update to said token stream segment including an updated cursor position; such that when said keystroke executive adopts said suggestion, said keystroke executive updates said token stream with said updated token stream segment and updates said insertion point to be consistent with said updated cursor position; wherein said typographical display processor displays said cursor at a screen position corresponding to said insertion point.
Claim 23
Dependent Claim 28 words
The editor of claim 19, wherein said tokenizer analyzes said token stream segment based on extended lexical rules for the programming language in which said program is written.
Claim 24
Dependent Claim 58 words
The editor of claim 20, wherein, when said programming language is selected from C or C++, said token stream segment consists of a left token immediately to the left of said insertion point, all right tokens immediately to the right of said token, and when said insertion point is inside said token, said token including said insertion point.
Claim 25
Dependent Claim 81 words
The editor of claim 14, further comprising: a structural analyzer configured to parse said token stream to form a structured representation of said computer program, said structured representation reflecting the syntax of a computer language in which said computer program is expressed; wherein said typographical display processor typographically displays said program as said program is entered based on said structured representation and said token stream representation of said program; wherein said extended lexical properties influence said typographical display of said tokens.
Claim 26
Dependent Claim 26 words
The editor of claim 22, wherein said parser executes either opportunistically or in response to predetermined user actions, where opportunistically means when computer resources are available.
Claim 27
Dependent Claim 255 words
A computer system, comprising: a processor; at least one input device configured to receive a computer program, said at least one input device generating a stream of input events as said program is entered; a display on which said program is displayed as said program is being edited, said display and said at least one input device being coupled to said processor and controlled by applications running in said processor; a primary memory coupled to said processor, and storing said applications and data for said applications; a secondary memory coupled to said processor storing said applications and said data for said applications, said secondary memory being slower than said primary memory; and a computer program editor in which a computer program being edited is internally represented as a stream of tokens, said computer program editor being one of said applications running in said processor, said computer program being edited being one of said data, said program editor including: an extended lexical analyzer configured to represent said program as a token stream and to characterize each token in said token stream as at least one of a catalog of extended lexical properties relative to the language of said computer program without being required to maintain a text stream representation of said program, said extended lexical analyzer updating said token stream representation and characterization after each said input event; and a typographical display processor configured to prettyprint said token stream to said display based on said extended lexical properties of said tokens as said program is entered.
Claim 28
Dependent Claim 255 words
A computer system, comprising: a processor; at least one input device configured to receive a computer program, said at least one input device generating a stream of input events as said program is entered; a display on which said program is displayed as said program is being edited, said display and said at least one input device being coupled to said processor and controlled by applications running in said processor; a primary memory coupled to said processor, and storing said applications and data for said applications; a secondary memory coupled to said processor storing said applications and said data for said applications, said secondary memory being slower than said primary memory; and a computer program editor in which a computer program being edited is internally represented as a stream of tokens, said computer program editor being one of said applications running in said processor, said computer program being edited being one of said data, said program editor including: an extended lexical analyzer configured to represent said program as a token stream and to characterize each token in said token stream as at least one of a catalog of extended lexical properties relative to the language of said computer program without being required to maintain a text stream representation of said program, said extended lexical analyzer updating said token stream representation and characterization after each said input event; and a typographical display processor configured to prettyprint said token stream to said display based on said extended lexical properties of said tokens as said program is entered.
Claim 29
Dependent Claim 36 words
The computer system of claim 24, wherein said extended lexical properties associated with each of said tokens include a lexical class and, when said token is not well-formed, an extended type selected from ill-formed or incomplete.
Claim 30
Dependent Claim 28 words
The computer system of claim 25, wherein well-formed tokens, ill-formed tokens and incomplete tokens are typographically displayed in a visually distinct manner associated with their respective extended types.
Claim 31
Dependent Claim 31 words
The computer system of claim 26, wherein said typographical display processor displays said ill-formed tokens with a first preselected color overlay and said incomplete tokens with a second preselected color overlay.
Claim 32
Dependent Claim 25 words
The computer system of claim 27, wherein said typographical display processor displays said tokens in a visually distinct manner tied to their respective lexical classes.
Claim 33
Dependent Claim 182 words
The computer system of claim 24, wherein said extended lexical analyzer comprises: a keystroke executive configured to receive each input event generated by said at least one input device as said program is entered, said keystroke executive maintaining said token stream representation and an insertion point as said program is entered; and a tokenizer callable by said keystroke executive, said tokenizer being an expert at incremental, lexical analysis of token streams, said keystroke executive passing said tokenizer a token stream segment consisting of a tokens proximal to said insertion point likely to be affected by said input event and asking said tokenizer to suggest an update to said token steam segment based on said most recent input event, said update to said token stream segment including an updated cursor position; such that when said keystroke executive adopts said suggestion, said keystroke executive updates said token stream with said updated token stream segment and updates said insertion point to be consistent with said updated cursor position; wherein said typographical display processor displays said cursor at a screen position corresponding to said insertion point.
Claim 34
Dependent Claim 29 words
The computer system of claim 29, wherein said tokenizer analyzes said token stream segment based on extended lexical rules for the programming language in which said program is written.
Claim 35
Dependent Claim 59 words
The computer system of claim 30, wherein, when said programming language is selected from C or C++, said token stream segment consists of a left token immediately to the left of said insertion point, all right tokens immediately to the right of said token, and when said insertion point is inside said token, said token including said insertion point.
Claim 36
Dependent Claim 82 words
The computer system of claim 24, further comprising: a structural analyzer configured to parse said token stream to form a structured representation of said computer program, said structured representation reflecting the syntax of a computer language in which said computer program is expressed; wherein said typographical display processor typographically displays said program as said program is entered based on said structured representation and said token stream representation of said program; wherein said extended lexical properties influence said typographical display of said tokens.
Claim 37
Dependent Claim 28 words
The computer system of claim 32, wherein said parser is executable either opportunistically or in response to predetermined user actions, where opportunistically means when computer resources are available.

References Cited (Backward Citations)

US4989145A Cited
US5493678A Cited
US5513305A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag