Patents by Inventor Charles Simonyi

Charles Simonyi has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7237226
    Abstract: A method and system for storing pending changes to data having a data model is provided. In one embodiment, a pending change system receives a change that is to be made to the data. When the change is “committed,” the change system determines whether the change to the data will result in changed data that is consistent with the data model. When the change system determines that the change is consistent, it updates the data accordingly. If, however, a change is not committed or committed but inconsistent, the change system stores the change in a pending change list associated with the data.
    Type: Grant
    Filed: May 9, 2003
    Date of Patent: June 26, 2007
    Assignee: Intentional Software Corporation
    Inventor: Charles Simonyi
  • Publication number: 20070101256
    Abstract: A method and system for managing contributions to a document is provided. The contribution management system provides complete information about each individual change, allows retrieving versions of documents that contain only selected changes, and makes it easier to resolve conflicts in changes made by various editors. The contribution management system assigns each element in a document a unique identifier. Editors can modify the document by performing specific editing operations on an identified document element. The contribution management system stores the editor's change as a “contribution” containing the editing operation performed and the unique identifier of the modified element.
    Type: Application
    Filed: November 1, 2005
    Publication date: May 3, 2007
    Inventor: Charles Simonyi
  • Patent number: 7165238
    Abstract: A method and system for organizing nodes within a program tree. The system allows various child node categories to be defined for node types of a program tree. When a child node is added to a parent node, the system identifies the category of the child node. The system then instantiates a category data structure for the identified category. The system stores a reference to the instantiated category data structure in the parent node and stores a reference to the child node in the instantiated category data structure.
    Type: Grant
    Filed: June 6, 2003
    Date of Patent: January 16, 2007
    Assignee: Intentional Software Corporation
    Inventor: Charles Simonyi
  • Publication number: 20060218530
    Abstract: A method and system for providing help information for a computer program. The help system provides help information based on a schema that specifies the structure of a valid computer program. The schema provides definitions of program element types that are specific instances of a program element type derived from more general program element types. The help system identifies a “derivation” of program element types relating to the selected program element. The help system then displays the derivation to the user. The user can then select to display documentation associated with the displayed program element types.
    Type: Application
    Filed: February 13, 2006
    Publication date: September 28, 2006
    Inventor: Charles Simonyi
  • Patent number: 7051279
    Abstract: A method and system for providing help information for a computer program. The help system provides help information based on a schema that specifies the structure of a valid computer program. The schema provides definitions of program element types that are specific instances of a program element type derived from more general program element types. The help system identifies a “derivation” of program element types relating to the selected program element. The help system then displays the derivation to the user. The user can then select to display documentation associated with the displayed program element types.
    Type: Grant
    Filed: July 8, 2003
    Date of Patent: May 23, 2006
    Assignee: Intentional Software Corporation
    Inventor: Charles Simonyi
  • Patent number: 6966054
    Abstract: A method and system is described for generating executable code for a computer program. A programmer creates an intentional program tree using a syntax-independent editor. The editor allows a programmer to directly manipulate the intentional program tree. The intentional program tree has nodes. Each node represents a high-level computational construct of the computer program. For each node representing a high-level computational construct, the system transforms the node into an implementation of the high-level computational construct using low-level computational constructs. For each node representing a low-level computational construct, the system generates executable code that implements the low-level computational construct.
    Type: Grant
    Filed: December 5, 2000
    Date of Patent: November 15, 2005
    Assignee: Microsoft Corporation
    Inventor: Charles Simonyi
  • Publication number: 20050097453
    Abstract: A method and system for transforming versions of a design tree and transforming identity-descriptions relating to the versions of a design tree. The transformation system provides a pipeline of transforms for sequentially transforming versions of a design tree and transforming identity-descriptions relating to the versions of the design tree. Each transform may provide a command interface for manipulating the input version of the design tree or for setting parameters to control the transformations of a transform.
    Type: Application
    Filed: November 3, 2003
    Publication date: May 5, 2005
    Inventor: Charles Simonyi
  • Publication number: 20050010906
    Abstract: A method and system for providing help information for a computer program. The help system provides help information based on a schema that specifies the structure of a valid computer program. The schema provides definitions of program element types that are specific instances of a program element type derived from more general program element types. The help system identifies a “derivation” of program element types relating to the selected program element. The help system then displays the derivation to the user. The user can then select to display documentation associated with the displayed program element types.
    Type: Application
    Filed: July 8, 2003
    Publication date: January 13, 2005
    Inventor: Charles Simonyi
  • Publication number: 20040250237
    Abstract: A method and system for organizing nodes within a program tree. The system allows various child node categories to be defined for node types of a program tree. When a child node is added to a parent node, the system identifies the category of the child node. The system then instantiates a category data structure for the identified category. The system stores a reference to the instantiated category data structure in the parent node and stores a reference to the child node in the instantiated category data structure.
    Type: Application
    Filed: June 6, 2003
    Publication date: December 9, 2004
    Inventor: Charles Simonyi
  • Publication number: 20040225964
    Abstract: A method and system for storing pending changes to data having a data model is provided. In one embodiment, a pending change system receives a change that is to be made to the data. When the change is “committed,” the change system determines whether the change to the data will result in changed data that is consistent with the data model. When the change system determines that the change is consistent, it updates the data accordingly. If, however, a change is not committed or committed but inconsistent, the change system stores the change in a pending change list associated with the data.
    Type: Application
    Filed: May 9, 2003
    Publication date: November 11, 2004
    Inventor: Charles Simonyi
  • Patent number: 6665866
    Abstract: A compiler architecture uses a question and answer methodology between a reduction engine and nodes of a graph representing the program being compiled to provide for easy expandability of the compiler. By using the question and answer methodology, additional functionality can be added to the compiler by users, whether they be part of the original design team of the compiler or be a subsequent user.
    Type: Grant
    Filed: May 28, 1999
    Date of Patent: December 16, 2003
    Assignee: Microsoft Corporation
    Inventors: Paul Kwiatkowski, David Richter, William Aitken, Brian Dickens, Charles Simonyi, Muthukrishnan Paramasivam, Steve Eisner, Ioannis Samaragdakis
  • Publication number: 20010037496
    Abstract: A method and system is described for generating executable code for a computer program. A programmer creates an intentional program tree using a syntax-independent editor. The editor allows a programmer to directly manipulate the intentional program tree. The intentional program tree has nodes. Each node represents a high-level computational construct of the computer program. For each node representing a high-level computational construct, the system transforms the node into an implementation of the high-level computational construct using low-level computational constructs. For each node representing a low-level computational construct, the system generates executable code that implements the low-level computational construct.
    Type: Application
    Filed: December 5, 2000
    Publication date: November 1, 2001
    Applicant: Microsoft Corporation.
    Inventor: Charles Simonyi
  • Patent number: 6189143
    Abstract: A method and system is described for generating executable code for a computer program, A programmer creates an intentional program tree using a syntax-independent editor. The editor allows a programmer to directly manipulate the intentional program tree. The intentional program tree has nodes. Each node represents a high-level computational construct of the computer program. For each node representing a high-level computational construct, the system transforms the node into an implementation of the high-level computational construct using low-level computational constructs. For each node representing a low-level computational construct, the system generates executable code that implements the low-level computational construct.
    Type: Grant
    Filed: June 27, 1997
    Date of Patent: February 13, 2001
    Assignee: Microsoft Corporation
    Inventor: Charles Simonyi
  • Patent number: 6097888
    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.
    Type: Grant
    Filed: April 28, 1995
    Date of Patent: August 1, 2000
    Assignee: Microsoft Corporation
    Inventor: Charles Simonyi
  • Patent number: 6078746
    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.
    Type: Grant
    Filed: June 27, 1997
    Date of Patent: June 20, 2000
    Assignee: Microsoft Corporation
    Inventor: Charles Simonyi
  • Patent number: 6070007
    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.
    Type: Grant
    Filed: June 27, 1997
    Date of Patent: May 30, 2000
    Assignee: Microsoft Corporation
    Inventor: Charles Simonyi
  • Patent number: 5911072
    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.
    Type: Grant
    Filed: June 27, 1997
    Date of Patent: June 8, 1999
    Assignee: Microsoft Corporation
    Inventor: Charles Simonyi
  • Patent number: 5790863
    Abstract: A method and system for generating a computer program. In a preferred embodiment, the present invention provides a program tree editor for directly manipulating a program tree. A program tree comprises of plurality of nodes corresponding to computational constructs. The program tree editor receives commands from a user that are independent of a programming language syntax. The present invention also provides a display representation generator for generating a display representation of the program tree. The display representation generator retrieves nodes from the program tree and displays a display representation of the node. A user of the present invention preferably interacts with the program tree editor based on the display representation.
    Type: Grant
    Filed: November 8, 1996
    Date of Patent: August 4, 1998
    Assignee: Microsoft Corporation
    Inventor: Charles Simonyi