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

Method and system for reducing an intentional program tree represented by high-level computational constructs

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1997-06-27
•
Granted: 2000-06-20
•
Expires: 2017-06-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system for generating a computer program in the manner that uses no computer programming language syntax. The system represents a computer program as an intentional program tree, which is a high-level program tree that is a syntax-independent representation using high-level computational constructs. The intentional program tree represents a programmer's intent, rather than an implementation of the programmer's intent. The programmer creates an intentional program tree using a syntax-independent editor. The editors allows a programmer to directly manipulate the intentional program tree. Because the program is stored as an intentional program tree in a syntax-independent manner, the editor allows the program to select in which of a various programming language the computer program is to be displayed. In addition, the system transforms an intentional program tree to a reduced program tree, which is a program tree comprising low-level computational constructs, in a process called reduction. The reduction process replaces expressions of programmer's intents with a representation of one of possible multiple implementations of those intents using low-level computational constructs.

Inventors

  • 👤 Charles Simonyi

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 10:11
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/30; G06F8/33; Y; Y10; Y10S; Y10S715/00; Y10S715/961; Y10S715/965; Y10S715/966; Y10S715/967

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 165 words
A method in a computer system for determining an operand for an operator during data entry of the nodes of an intentional program tree, the method comprising: receiving a sequence of tokens, each token indicating a computational construct corresponding to a node of the intentional program tree; when receiving an indication of a selection of a subtree of the intentional program tree, selecting the indicated subtree; and when receiving an indication of a next token to be appended to the sequence of tokens, when a subtree is currently selected, identifying the selected subtree as an operand of the operator represented by the next token; when a subtree is not currently selected, identifying according to predefined rules of operator precedence an operand of the operator represented by the next token; and adding a node to the intentional program tree indicating the operator represented by the next token and indicating the identified operand whereby predefined rules of operator precedence may be overridden by selection of a subtree.
Claim 2
Independent Claim 165 words
A method in a computer system for determining an operand for an operator during data entry of the nodes of an intentional program tree, the method comprising: receiving a sequence of tokens, each token indicating a computational construct corresponding to a node of the intentional program tree; when receiving an indication of a selection of a subtree of the intentional program tree, selecting the indicated subtree; and when receiving an indication of a next token to be appended to the sequence of tokens, when a subtree is currently selected, identifying the selected subtree as an operand of the operator represented by the next token; when a subtree is not currently selected, identifying according to predefined rules of operator precedence an operand of the operator represented by the next token; and adding a node to the intentional program tree indicating the operator represented by the next token and indicating the identified operand whereby predefined rules of operator precedence may be overridden by selection of a subtree.
Claim 3
Dependent Claim 18 words
The method of claim 1 wherein the indication of the selection of a subtree is a shift tab.
Claim 4
Dependent Claim 20 words
The method of claim 1 wherein the operator is a binary operator and the identified operand is a left operand.
Claim 5
Dependent Claim 18 words
The method of claim 1 wherein when the selected subtree is an expression, displaying parenthesis around the expression.
Claim 6
Dependent Claim 20 words
The method of claim 1 wherein the predefined rules of operator precedence are in accordance with the C programming language.
Claim 7
Independent Claim 144 words
A method in a computer system for determining an operand for an operator during data entry of the nodes of an intentional program tree, the method comprising: receiving a sequence of tokens, each token indicating a computational construct corresponding to a node of the intentional program tree adding a node to the intentional program tree for each token in the sequence; receiving an indication of a selection of a subtree of the intentional program tree; and after receiving the indication of the selection of the subtree, receiving an indication of a next token to be appended to the sequence of tokens; when the next token represents a binary operator, identifying a left operand of the binary operator as the selected subtree of the intentional program tree; and adding a node to the intentional program tree indicating the binary operator with the identified left operand.
Claim 8
Independent Claim 144 words
A method in a computer system for determining an operand for an operator during data entry of the nodes of an intentional program tree, the method comprising: receiving a sequence of tokens, each token indicating a computational construct corresponding to a node of the intentional program tree adding a node to the intentional program tree for each token in the sequence; receiving an indication of a selection of a subtree of the intentional program tree; and after receiving the indication of the selection of the subtree, receiving an indication of a next token to be appended to the sequence of tokens; when the next token represents a binary operator, identifying a left operand of the binary operator as the selected subtree of the intentional program tree; and adding a node to the intentional program tree indicating the binary operator with the identified left operand.
Claim 9
Dependent Claim 18 words
The method of claim 6 wherein the indication of the selection of a subtree is a shift tab.
Claim 10
Independent Claim 115 words
A method in a computer system for interpreted selection of an operand for an operator during data entry of the nodes of an intentional program tree, the method comprising: receiving a sequence of tokens, each token indicating a computational construct corresponding to a node of the intentional program tree; adding a node to the intentional program tree for each token in the sequence; receiving an indication of a next token to be appended to the sequence of tokens; and when the next token represents an operator, identifying an operand of the operator according to predefined rules of operator precedence; and adding a node to the intentional program tree indicating the operator with the identified operand.
Claim 11
Independent Claim 115 words
A method in a computer system for interpreted selection of an operand for an operator during data entry of the nodes of an intentional program tree, the method comprising: receiving a sequence of tokens, each token indicating a computational construct corresponding to a node of the intentional program tree; adding a node to the intentional program tree for each token in the sequence; receiving an indication of a next token to be appended to the sequence of tokens; and when the next token represents an operator, identifying an operand of the operator according to predefined rules of operator precedence; and adding a node to the intentional program tree indicating the operator with the identified operand.
Claim 12
Dependent Claim 20 words
The method of claim 8 wherein the predefined rules of operator precedence are in accordance with the C programming language.
Claim 13
Dependent Claim 20 words
The method of claim 8 wherein the operator is a binary operator and the identified operand is a left operand.
Claim 14
Dependent Claim 31 words
The method of claim 8 wherein the operand is identified according to the predefined rules of operator precedence so long as no portion of the intentional programming tree is currently selected.
Claim 15
Dependent Claim 107 words
A computer-readable medium containing instructions for causing a computer system select an operand for an operator during data entry of the nodes of an intentional program tree, the intentional program tree having nodes representing high-level computational constructs, by: receiving a sequence of tokens, each token indicating a computational construct corresponding to a node of the intentional program tree; when a received token represents an operator, identifying an operand of the operator according to predefined rules of operator precedence so long as no portion of the intentional program tree is currently selected; and adding a node to the intentional program tree indicating the operator with the identified operand.
Claim 16
Dependent Claim 107 words
A computer-readable medium containing instructions for causing a computer system select an operand for an operator during data entry of the nodes of an intentional program tree, the intentional program tree having nodes representing high-level computational constructs, by: receiving a sequence of tokens, each token indicating a computational construct corresponding to a node of the intentional program tree; when a received token represents an operator, identifying an operand of the operator according to predefined rules of operator precedence so long as no portion of the intentional program tree is currently selected; and adding a node to the intentional program tree indicating the operator with the identified operand.
Claim 17
Dependent Claim 21 words
The computer-readable medium of claim 12 wherein the predefined rules of operator precedence are in accordance with the C programming language.
Claim 18
Dependent Claim 21 words
The computer-readable medium of claim 8 wherein the operator is a binary operator and the identified operand is a left operand.
Claim 19
Dependent Claim 109 words
An editor in a computer system for generating an intentional program tree representing a computer program, the intentional program tree having nodes representing high-level computational constructs of the computer program, the editor comprising: a tokenizer for receiving a plurality of tokens and identifying a high-level computational construct represented by each token; and a component for adding nodes to the intentional program tree, the nodes representing the high-level computational constructs wherein when a high-level computational construct represents a binary operator selecting a left operand from the plurality of tokens in accordance with predefined rules of operator precedence so long as no portion of the intentional program tree is currently selected.
Claim 20
Dependent Claim 109 words
An editor in a computer system for generating an intentional program tree representing a computer program, the intentional program tree having nodes representing high-level computational constructs of the computer program, the editor comprising: a tokenizer for receiving a plurality of tokens and identifying a high-level computational construct represented by each token; and a component for adding nodes to the intentional program tree, the nodes representing the high-level computational constructs wherein when a high-level computational construct represents a binary operator selecting a left operand from the plurality of tokens in accordance with predefined rules of operator precedence so long as no portion of the intentional program tree is currently selected.
Claim 21
Dependent Claim 41 words
The editor of claim 15 including a display enzyme for each high-level computational construct and wherein after a token is received, using the display enzyme for the high-level computational construct that the token represents to display a representation of the token.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-06-20 2003-12-20 2004-06-20 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-06-20 2007-12-20 2008-06-20 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-06-20 2011-12-20 2012-06-20 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag