CA2643234A1 - Method and system for generating a computer program - Google Patents

Method and system for generating a computer program Download PDF

Info

Publication number
CA2643234A1
CA2643234A1 CA002643234A CA2643234A CA2643234A1 CA 2643234 A1 CA2643234 A1 CA 2643234A1 CA 002643234 A CA002643234 A CA 002643234A CA 2643234 A CA2643234 A CA 2643234A CA 2643234 A1 CA2643234 A1 CA 2643234A1
Authority
CA
Canada
Prior art keywords
node
program tree
program
representation
computational
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CA002643234A
Other languages
French (fr)
Other versions
CA2643234C (en
Inventor
Charles Simonyi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CA2643234A1 publication Critical patent/CA2643234A1/en
Application granted granted Critical
Publication of CA2643234C publication Critical patent/CA2643234C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/961Operator interface with visual structure or function dictated by intended use
    • Y10S715/965Operator interface with visual structure or function dictated by intended use for process control and configuration
    • Y10S715/966Computer process, e.g. operation of computer
    • Y10S715/967Visual or iconic programming

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.

Claims (47)

1. A method in a computer system for specifying computer program, the method comprising the steps of:
inputting a plurality of nodes to form a program tree representing the computer program;
storing the program tree containing the inputted node within the computer system; and generating a display representation of the program tree based on one of a plurality of display representation formats.
2. The method of claim 1 including the step of displaying the generated display representation on a display device of the computer system.
3. The method of claim 1 including the step of selecting one of the plural-ity of display representation formats for use in generating the display representation.
4. The method of claim 3 including the steps of:
selecting a second one of the plurality of display representation formats; and generating a second display representation of the program tree based on the second selected plurality of display representation for-mats.
5. The method of claim 3 wherein the generating step includes the steps of:
traversing a subtree of the program tree, each node of the subtree having a display representation for each of the plurality of display representation formats; and for each traversed node of the program tree, inserting the display representation of the traversed node corresponding to the selected display representation format into a display representation of the program tree at a position corresponding to the position of the traversed node in the subtree.
6. The method of claim 5 wherein the traversing step includes the steps of:
selecting a node of the program tree as a crown node;
defining the subtree as the crown node and all of the descendant nodes of the crown node in the program tree; and traversing the subtree in a depth-first manner.
7. The method of claim 1 wherein the inputting step includes the steps of:
positioning an insertion point within the program tree; and inserting a new node into the program tree at the insertion point.
8. The method of claim 7, further including the step of receiving an insertion point positioning instruction, and wherein the positioning step positions in response to the step of receiving an insertion point position-ing instruction.
9. The method of claim 7 wherein the step of receiving an insertion point positioning instruction includes the step of receiving an absolute inser-tion point positioning instruction from a pointing device.
10. The method of claim 7 wherein the step of receiving an insertion point positioning instruction includes the step of receiving an insertion point positioning instruction chosen from a menu by a user.
11. The method of claim 7 wherein each node of the program tree is of one of a plurality of types, further including the step of receiving an insert node instruction specifying the type of node to insert, and wherein the inserting step inserts a new node of the type specified in the received insert node instruction.
12. The method of claim 11 wherein the step of receiving an insert node instruction specifying the type of node to insert includes receiving an insert node instruction specifying the type of node chosen from a menu by a user.
13. The method of claim 12, further including the step of repositioning the insertion point in the program tree based on the former insertion point and the type of node inserted.
14. The method of claim 7, further including the step of inserting a place-holder node into the program tree to reserve a place for a required child node of the inserted node.
15. The method of claim 14, further including the step of repositioning the insertion point at the placeholder node.
16. A computer program generating system, the system comprising:
a computer having a central processing unit, a memory, an input device, and a display device;
a display representation generator for displaying a representation of a program tree on the display device; and a program tree editor for creating a program tree and for editing the program tree based on instructions received from the input device, the instructions being relative to the currently displayed representation of the program tree.
17. The system of claim 16 wherein the program tree editor maintains a current insertion point within the program tree and displays a represen-tation of the current insertion point on the display device.
18. The system of claim 16 wherein the program tree editor maintains a current selection of a portion of the program tree and displays a high-lighted form of the current selection of the display device.
19. A method in a computer system for creating a program tree describing a computer program, the program tree comprising a plurality of nodes representing operator and operands, the method comprising the steps of:
receiving from a user an identification of a language-independent computational construct;
determining a current insertion point in the program tree; and creating a node corresponding to the received computational construct and inserting the node in the program tree at the insertion point.
20. A method in a computer system for modifying a program tree, the program tree representing a computer program, the program tree having nodes describing elements of the computer program, the method comprising the steps of:
retrieving the nodes of the program tree for generating a display representation of the program tree based on the retrieved nodes;
displaying the display representation of the program tree on a display device;
selecting a displayed representation of a node of the program tree to effect the selection of the node as a currently selected node;

receiving from a user of the computer system a location of an insertion point relative to the displayed representation of the currently selected node;
positioning the insertion point at the received location;
receiving from the user a computational construct to insert into the program tree;
creating a node corresponding to the received computational construct; and inserting the created node into the program tree at the insertion point.
21. The method of claim 20 wherein the step of receiving from a user a location of an insertion point includes the step of receiving an indica-tion that the location is above the currently selected node.
22. The method of claim 21 wherein the step of inserting the created node inserts the node such that the currently selected node is a child node of the created node.
23. The method of claim 22 wherein the step of inserting the created node inserts the node such that the currently selected node is a left child node of the created node.
24. The method of claim 22 wherein the step of inserting the created node inserts the node such that the currently selected node is a right child node of the created node.
25. A method in a computer system for generating a computer program, the method comprising the steps of:
for each of a plurality of computational constructs, determining a current insertion point in a program tree, the program tree representing the computer program;
receiving from a user of the computer system an indication of the computational construct;
before receiving another computational construct, altering the program tree based on the received computational construct; and after altering the program tree, resetting the current insertion point based on the altering of the program tree.
26. The method of claim 25 wherein the computer has a list of computa-tional constructs, and wherein the received indication indicates a computational construct in the list.
27. The method of claim 25 wherein the step of altering the program tree includes the step of inserting a node into the program based on a one-to-one correspondence between a received indication of a computa-tion construct and a node.
28. The method of any one of claims 25, 26 or 27 including the step of receiving from the user of the computer system a command to change the current insertion point.
29. The method of any one of claims 25, 26 or 27 including the step of displaying a representation of the program tree on a display device.
30. The method of claim 29 wherein the step of displaying includes the step of retrieving references to the computational constructs from the program tree for the displaying of the representation.
31. The method of claim 29 wherein the program tree contains nodes corresponding to the received computational constructs and each computational construct that represents a declaration includes a function for displaying a representation of computational constructs associated with the declaration.
32. The method of claim 31 wherein a function generates a graphics-based display representation.
33. The method of any one of claims 25, 26 or 27 wherein the program tree contains nodes corresponding to the received computational con-structs and certain nodes are designated as declaration computational constructs and wherein the step of altering the program tree includes the step of storing a reference to a node designated as a declaration computational construct.
34. The method of any one of claims 25, 26 or 27 wherein the step of receiving an indication of the computational construct includes the step of receiving a command indicating a form of alteration.
35. The method of claim 34 wherein the form of alteration includes insert-ing a node into the program tree.
36. The method of claim 34 wherein the form of alteration includes pasting a node into the program tree to replace a currently selected node of the program tree.
37. The method of claim 34 wherein the command is a command for directly manipulating the program tree.
38. The method of claim 34 wherein the commands are received through menu selection by a user of the computer system.
39. The method of claim 34 wherein the commands are received from a tokenizer that receives input from the user.
40. The method of any one of claims 25, 26 or 27 wherein the program tree includes nodes corresponding to computational constructs and wherein the step of altering includes the step of inserting into the program tree an undefined node that represents an operand of the computational construct.
41. The method of claim 40 including the step of displaying a list of undefined nodes so that the user can specify a computational construct for the node.
42. The method of claim 41 including the step of displaying a display representation of undefined nodes in a predefined representation.
43. The method of any one of claims 25, 26 or 27 wherein the step of receiving an indication of the computational construct includes the step of receiving a programming language independent indication of the computational construct.
44. The method of any one of claims 25, 26 or 27 wherein in the program tree includes declaration nodes corresponding to computational con-structs representing declarations and wherein each declaration node may have a non-unique name.
45. The method of claim 44 including the step of identifying a declaration node by pointing to a displayed representation off the declaration node.
46. The method of claim 44 including the step of identifying a declaration node by location of the declaration node within the computer program.
47. A method in a computer system for specifying a computational con-struct representing a declaration during entry of a computer program, the computer system having a multiplicity computation constructs with non-unique names, the method comprising the steps of:
displaying a unique representation of each of a plurality of the computational constructs; and selecting a displayed unique representation of a computational construct whereby the computational construct corresponding to the selected unique representation is specified.
CA2643234A 1993-10-29 1994-10-21 Method and system for generating a computer program Expired - Lifetime CA2643234C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14568993A 1993-10-29 1993-10-29
US08/145,689 1993-10-29
CA002134059A CA2134059C (en) 1993-10-29 1994-10-21 Method and system for generating a computer program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CA002134059A Division CA2134059C (en) 1993-10-29 1994-10-21 Method and system for generating a computer program

Publications (2)

Publication Number Publication Date
CA2643234A1 true CA2643234A1 (en) 1995-04-30
CA2643234C CA2643234C (en) 2012-05-15

Family

ID=22514125

Family Applications (2)

Application Number Title Priority Date Filing Date
CA002134059A Expired - Lifetime CA2134059C (en) 1993-10-29 1994-10-21 Method and system for generating a computer program
CA2643234A Expired - Lifetime CA2643234C (en) 1993-10-29 1994-10-21 Method and system for generating a computer program

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CA002134059A Expired - Lifetime CA2134059C (en) 1993-10-29 1994-10-21 Method and system for generating a computer program

Country Status (4)

Country Link
US (7) US6097888A (en)
EP (1) EP0651325A3 (en)
JP (2) JP4140980B2 (en)
CA (2) CA2134059C (en)

Families Citing this family (133)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2134059C (en) * 1993-10-29 2009-01-13 Charles Simonyi Method and system for generating a computer program
JP3368141B2 (en) * 1996-04-10 2003-01-20 シャープ株式会社 Assembler language source program generator
US5987249A (en) * 1996-08-27 1999-11-16 Numega Technologies IR code instrumentation
US5983016A (en) * 1996-11-12 1999-11-09 International Business Machines Corporation Execution engine in an object modeling tool
CA2287303A1 (en) * 1997-04-30 1998-11-05 Geodesic Systems L.L.C. Automatically-maintained customizable user interfaces
US6061513A (en) * 1997-08-18 2000-05-09 Scandura; Joseph M. Automated methods for constructing language specific systems for reverse engineering source code into abstract syntax trees with attributes in a form that can more easily be displayed, understood and/or modified
US6314562B1 (en) * 1997-09-12 2001-11-06 Microsoft Corporation Method and system for anticipatory optimization of computer programs
US6237136B1 (en) * 1997-12-02 2001-05-22 National Instruments Corporation System and method for automatically creating source code example files for an application program in a plurality of programming languages
US6256618B1 (en) * 1998-04-23 2001-07-03 Christopher Spooner Computer architecture using self-manipulating trees
US6745384B1 (en) * 1998-05-29 2004-06-01 Microsoft Corporation Anticipatory optimization with composite folding
US6134709A (en) * 1998-06-29 2000-10-17 Cisco Technology, Inc. Method and apparatus for parsing commands
US6260042B1 (en) * 1998-11-05 2001-07-10 International Business Machines Corporation Quick difference and update for tree structure data
CA2256931A1 (en) * 1998-12-23 2000-06-23 Robert Weisz Source editing in a graphical hierarchical environment
US7065717B1 (en) * 1999-01-19 2006-06-20 International Business Machines Corporation Tree-based interface apparatus for display of call dependencies and method therefor
DE19907328C2 (en) * 1999-02-20 2002-10-24 Johannes Reichardt Visual programming method and system
US6282699B1 (en) * 1999-02-23 2001-08-28 National Instruments Corporation Code node for a graphical programming system which invokes execution of textual code
US6370683B1 (en) 1999-05-07 2002-04-09 Arnold Sobers Computer software for generating flowchart images of a source program
US9262383B2 (en) 1999-05-21 2016-02-16 E-Numerate Solutions, Inc. System, method, and computer program product for processing a markup document
US6920608B1 (en) * 1999-05-21 2005-07-19 E Numerate Solutions, Inc. Chart view for reusable data markup language
US7421648B1 (en) 1999-05-21 2008-09-02 E-Numerate Solutions, Inc. Reusable data markup language
US7249328B1 (en) * 1999-05-21 2007-07-24 E-Numerate Solutions, Inc. Tree view for reusable data markup language
US9262384B2 (en) 1999-05-21 2016-02-16 E-Numerate Solutions, Inc. Markup language system, method, and computer program product
US9268748B2 (en) 1999-05-21 2016-02-23 E-Numerate Solutions, Inc. System, method, and computer program product for outputting markup language documents
US6493869B1 (en) 1999-05-28 2002-12-10 Microsoft Corporation Inheriting code in a transformational programming system
US6665866B1 (en) 1999-05-28 2003-12-16 Microsoft Corporation Extensible compiler utilizing a plurality of question handlers
US7210117B2 (en) * 1999-08-19 2007-04-24 National Instruments Corporation System and method for programmatically generating a graphical program in response to program information
GB2354849B (en) 1999-09-29 2004-08-25 Ibm Method and tool for graphically defining an expression
US6993759B2 (en) * 1999-10-05 2006-01-31 Borland Software Corporation Diagrammatic control of software in a version control system
US6931625B1 (en) * 1999-10-05 2005-08-16 Borland Software Corporation Method and system for collapsing a graphical representation of related elements
GB2356946B (en) * 1999-12-01 2003-11-05 Int Computers Ltd Computer system user interface design
US6691218B2 (en) * 1999-12-10 2004-02-10 Mosaid Technologies, Inc. Method and apparatus for longest match address lookup
JP3430252B2 (en) * 2000-01-24 2003-07-28 独立行政法人産業技術総合研究所 Source code conversion method, recording medium recording source code conversion program, and source code conversion device
AU2001241564A1 (en) * 2000-02-17 2001-08-27 E-Numerate Solutions, Inc. Rdl search engine
GB0004090D0 (en) * 2000-02-22 2000-04-12 Innovation Venture Ltd Application programming system and method of operation thereof
AU2001250016A1 (en) * 2000-03-02 2001-09-12 Wind River Systems, Inc. System and method for automatic software code generation
US7966421B2 (en) * 2000-06-21 2011-06-21 SAtech Group, A.B. Limited Liability Company Method and apparatus for logically expanding the length of a search key
US6980996B1 (en) 2000-06-28 2005-12-27 Cisco Technology, Inc. Generic command interface for multiple executable routines having character-based command tree
US7047526B1 (en) * 2000-06-28 2006-05-16 Cisco Technology, Inc. Generic command interface for multiple executable routines
WO2002027485A1 (en) * 2000-09-28 2002-04-04 Curl Corporation Integrated content language for use on the web
US7200838B2 (en) * 2000-12-20 2007-04-03 National Instruments Corporation System and method for automatically generating a graphical program in response to a state diagram
US9600842B2 (en) 2001-01-24 2017-03-21 E-Numerate Solutions, Inc. RDX enhancement of system and method for implementing reusable data markup language (RDL)
US7110936B2 (en) * 2001-02-23 2006-09-19 Complementsoft Llc System and method for generating and maintaining software code
US7089298B2 (en) * 2001-08-20 2006-08-08 Nokia Corporation Naming distribution method for ad hoc networks
US7212984B2 (en) 2001-10-29 2007-05-01 Qualcomm Incorporated Method and apparatus for providing virtual capacity to a provider of services
US7080352B2 (en) * 2002-01-30 2006-07-18 Dloo, Incorporated Method and system for creating programs using code having coupled syntactic and semantic relationships
EP1343079A1 (en) * 2002-03-07 2003-09-10 Infix Software-Systeme GmbH Method, software product and system for universal computer-based information processing
GB0206285D0 (en) * 2002-03-16 2002-05-01 Ibm Apparatus method and computer program for providing a GUI representation of relationships between a set of resources of a data processing system
US7254808B2 (en) * 2002-07-20 2007-08-07 Microsoft Corporation Method for specifying and parsing expressions
US7219328B2 (en) * 2002-08-28 2007-05-15 Honeywell International Inc. Model-based composable code generation
US7707544B2 (en) * 2002-12-05 2010-04-27 Bea Systems, Inc. System and method for generating and reusing software application code with source definition files
US7284242B2 (en) * 2003-01-06 2007-10-16 Xerox Corporation Program compiler with abstraction composer
GB2401217B (en) * 2003-05-02 2005-11-09 Transitive Ltd Improved architecture for generating intermediate representations for program code conversion
US7237226B2 (en) * 2003-05-09 2007-06-26 Intentional Software Corporation Method and system for storing pending changes to data
US20040230945A1 (en) * 2003-05-15 2004-11-18 Bryant Deborah E. Integration of a configuration tool with a graphical program language
US7165238B2 (en) * 2003-06-06 2007-01-16 Intentional Software Corporation Method and system for organizing and manipulating nodes by category in a program tree
US7051279B2 (en) * 2003-07-08 2006-05-23 Intentional Software Corporation Method and system for providing multiple levels of help information for a computer program
US20050044528A1 (en) * 2003-08-18 2005-02-24 Olsen Jesse Dale Systems and methods for viewing code
US7210135B2 (en) * 2003-08-26 2007-04-24 Microsoft Corporation Data flow analysis of transactional processes
US7360175B2 (en) * 2003-10-03 2008-04-15 Lexisnexis, A Division Of Reed Elsevier Inc. Hierarchical, multilevel, expand and collapse navigation aid for hierarchical structures
US7607099B2 (en) * 2003-11-03 2009-10-20 Intentional Software Corporation Method and system for reversible design tree transformations
US7877400B1 (en) * 2003-11-18 2011-01-25 Adobe Systems Incorporated Optimizations of XPaths
US8037102B2 (en) 2004-02-09 2011-10-11 Robert T. and Virginia T. Jenkins Manipulating sets of hierarchical data
US7426694B2 (en) * 2004-02-17 2008-09-16 Schweitzer Engineering Laboratories, Inc. System and method for customizing design of settings management user interface systems used to configure settings for intelligent electronic devices
US6876314B1 (en) 2004-02-18 2005-04-05 Robocoder Corporation Self-generating automatic code generator
US7409675B2 (en) * 2004-02-27 2008-08-05 Microsoft Corporation Code rewriting
US7769783B2 (en) * 2004-04-20 2010-08-03 Reuters Limited Computing algebraic equations
JP4616829B2 (en) * 2004-04-28 2011-01-19 富士通株式会社 Source code creation support program and source code creation support method
US9646107B2 (en) 2004-05-28 2017-05-09 Robert T. and Virginia T. Jenkins as Trustee of the Jenkins Family Trust Method and/or system for simplifying tree expressions such as for query reduction
US8849892B2 (en) * 2004-06-10 2014-09-30 Verizon Patent And Licensing Inc. Method and system for brokering messages in a distributed system
US7464375B2 (en) * 2004-06-24 2008-12-09 International Business Machines Corporation Method for flattening hierarchically structured flows
US7620632B2 (en) 2004-06-30 2009-11-17 Skyler Technology, Inc. Method and/or system for performing tree matching
US7801923B2 (en) 2004-10-29 2010-09-21 Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust Method and/or system for tagging trees
US7627591B2 (en) * 2004-10-29 2009-12-01 Skyler Technology, Inc. Method and/or system for manipulating tree expressions
US7630995B2 (en) 2004-11-30 2009-12-08 Skyler Technology, Inc. Method and/or system for transmitting and/or receiving data
US7636727B2 (en) 2004-12-06 2009-12-22 Skyler Technology, Inc. Enumeration of trees from finite number of nodes
US8316059B1 (en) 2004-12-30 2012-11-20 Robert T. and Virginia T. Jenkins Enumeration of rooted partial subtrees
US8615530B1 (en) 2005-01-31 2013-12-24 Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust Method and/or system for tree transformation
US7681177B2 (en) 2005-02-28 2010-03-16 Skyler Technology, Inc. Method and/or system for transforming between trees and strings
US8356040B2 (en) 2005-03-31 2013-01-15 Robert T. and Virginia T. Jenkins Method and/or system for transforming between trees and arrays
US7899821B1 (en) 2005-04-29 2011-03-01 Karl Schiffmann Manipulation and/or analysis of hierarchical data
RU2005124030A (en) * 2005-07-28 2007-02-10 Александр Михайлович Юров (RU) METHOD OF VISUAL ADDRESSING TEAMS IN TREE
US20070101256A1 (en) * 2005-11-01 2007-05-03 Charles Simonyi Perfect source control
WO2007063248A1 (en) * 2005-11-30 2007-06-07 France Telecom Method for creating an approximation graph relating to the behaviour of the man-machine interface of an application
US7827537B2 (en) * 2006-05-26 2010-11-02 Oracle America, Inc Searching computer programs that use different semantics
US7886284B2 (en) * 2006-09-05 2011-02-08 International Business Machines Corporation Using a backend simulator to test and develop xforms templates before linking the xforms templates to backend data processing systems
US7949949B2 (en) * 2006-11-20 2011-05-24 Intentional Software Corporation Domain transformation languages
WO2008083639A1 (en) * 2007-01-12 2008-07-17 Siemens Aktiengesellschaft Automation tool, use of an automation tool, and corresponding computer program
US8276118B2 (en) * 2007-03-01 2012-09-25 International Business Machines Corporation Depicting changes to structures in an integrated development environment
US7954067B2 (en) * 2007-03-16 2011-05-31 Apple Inc. Parameter setting superimposed upon an image
US20080229232A1 (en) * 2007-03-16 2008-09-18 Apple Inc. Full screen editing of visual media
US8312427B2 (en) * 2007-05-15 2012-11-13 International Business Machines Corporation Selecting a set of candidate code expressions from a section of program code for copying
US8484629B2 (en) * 2007-05-24 2013-07-09 Microsoft Corporation Programming model for modular development
US7949994B2 (en) * 2007-08-23 2011-05-24 International Business Machines Corporation Method and computer program product for viewing extendible models for legacy applications
US8370751B2 (en) * 2007-08-31 2013-02-05 Sap Ag User interface customization system
US20090077511A1 (en) * 2007-09-13 2009-03-19 International Business Machines Corporation Generating Constraints in a Class Model
US9304983B2 (en) * 2007-10-16 2016-04-05 International Business Machines Corporation Method and system for Xform generation and processing application integration framework
US8281287B2 (en) * 2007-11-12 2012-10-02 Finocchio Mark J Compact, portable, and efficient representation of a user interface control tree
US8181167B2 (en) * 2008-01-09 2012-05-15 Kan Zhao Method and system for presenting and analyzing software source code through intermediate representation
US7966345B1 (en) * 2008-03-28 2011-06-21 Cypress Semiconductor Corporation Method, system, and graphical user interface for generating firmware code for a programmable integrated circuit
US8473897B2 (en) 2008-10-03 2013-06-25 Microsoft Corporation Common intermediate representation for data scripting language
US9292478B2 (en) 2008-12-22 2016-03-22 International Business Machines Corporation Visual editor for editing complex expressions
US8060857B2 (en) * 2009-01-31 2011-11-15 Ted J. Biggerstaff Automated partitioning of a computation for parallel or other high capability architecture
US9354629B2 (en) 2009-02-19 2016-05-31 Fisher-Rosemount Systems, Inc. Methods and apparatus to configure a process control system using an electronic description language script
US8423981B2 (en) * 2009-06-18 2013-04-16 National Instruments Corporation Compiling a graphical program having a textual language program portion for a real time target
US8909678B2 (en) * 2009-09-30 2014-12-09 Red Hat, Inc. Conditioned distribution of data in a lattice-based database using spreading rules
US8984013B2 (en) * 2009-09-30 2015-03-17 Red Hat, Inc. Conditioning the distribution of data in a hierarchical database
US8996453B2 (en) * 2009-09-30 2015-03-31 Red Hat, Inc. Distribution of data in a lattice-based database via placeholder nodes
US8996604B2 (en) * 2010-03-04 2015-03-31 International Business Machines Corporation Distributed symbol table with intelligent lookup scheme
US8533671B2 (en) * 2010-06-07 2013-09-10 Microsoft Corporation Assigning type parameters
US20110321020A1 (en) * 2010-06-23 2011-12-29 Starview Technology, Inc. Transforming declarative event rules into executable procedures
US9286037B2 (en) * 2010-12-29 2016-03-15 Microsoft Technology Licensing, Llc Platform for distributed applications
US20130067432A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Application development toolkit
US20130152061A1 (en) * 2011-12-12 2013-06-13 Microsoft Corporation Full fidelity parse tree for programming language processing
US20130196305A1 (en) * 2012-01-30 2013-08-01 International Business Machines Corporation Method and apparatus for generating questions
GB2506162A (en) * 2012-09-24 2014-03-26 Ibm Searching source code
US9569274B2 (en) 2012-10-16 2017-02-14 Microsoft Technology Licensing, Llc Distributed application optimization using service groups
US9715372B2 (en) * 2013-03-13 2017-07-25 Microsoft Technology Licensing, Llc Executable guidance experiences based on implicitly generated guidance models
US20150029346A1 (en) * 2013-07-23 2015-01-29 Insurance Auto Auctions, Inc. Photo inspection guide for vehicle auction
US20160259641A1 (en) * 2013-12-16 2016-09-08 Hewlett Packard Enterprise Development Lp Tagging a program code portion
US9304743B1 (en) * 2014-06-03 2016-04-05 The Mathworks, Inc. Converting from incorrect program code to correct program code
US10423623B2 (en) * 2015-02-05 2019-09-24 Sap Se Hierarchy modeling and query
US9678724B2 (en) * 2015-05-29 2017-06-13 Intentional Software Corporation System and method for combining text editing and tree encoding for computer programs
JP6162909B2 (en) * 2015-07-31 2017-07-12 楽天株式会社 Tree structure data editing device, tree structure data editing method, and program
US10795935B2 (en) 2016-02-05 2020-10-06 Sas Institute Inc. Automated generation of job flow definitions
US10650046B2 (en) 2016-02-05 2020-05-12 Sas Institute Inc. Many task computing with distributed file system
US10642896B2 (en) 2016-02-05 2020-05-05 Sas Institute Inc. Handling of data sets during execution of task routines of multiple languages
US10671038B2 (en) 2016-07-15 2020-06-02 Fisher-Rosemount Systems, Inc. Architecture-independent process control
USD898059S1 (en) 2017-02-06 2020-10-06 Sas Institute Inc. Display screen or portion thereof with graphical user interface
US10310969B2 (en) * 2017-05-31 2019-06-04 Oracle International Corporation Systems and methods for test prediction in continuous integration environments
USD898060S1 (en) 2017-06-05 2020-10-06 Sas Institute Inc. Display screen or portion thereof with graphical user interface
CN107644073A (en) * 2017-09-18 2018-01-30 广东中标数据科技股份有限公司 A kind of field consanguinity analysis method, system and device based on depth-first traversal
US10503498B2 (en) 2017-11-16 2019-12-10 Sas Institute Inc. Scalable cloud-based time series analysis
US11294645B2 (en) 2019-04-02 2022-04-05 Gavriel Loria Visual virtual programming machine for real-time interactive creation, playback, execution, inspection and manipulation of programming elements

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4782444A (en) * 1985-12-17 1988-11-01 International Business Machine Corporation Compilation using two-colored pebbling register allocation method such that spill code amount is invariant with basic block's textual ordering
US4827404A (en) * 1986-04-14 1989-05-02 Schlumberger Technology Corporation Method and system for computer programming
GB2197506A (en) 1986-10-27 1988-05-18 Burr Brown Ltd Providing and handling break points in a software monitor
US5191646A (en) * 1986-11-20 1993-03-02 Hitachi, Ltd. Display method in software development support system
US5396627A (en) 1987-11-06 1995-03-07 Hitachi, Ltd. Method of producing object program based on interprocedural dataflow analysis of a source program
US4821211A (en) * 1987-11-19 1989-04-11 International Business Machines Corp. Method of navigating among program menus using a graphical menu tree
US5343554A (en) * 1988-05-20 1994-08-30 John R. Koza Non-linear genetic process for data encoding and for solving problems using automatically defined functions
US5148513A (en) * 1988-05-20 1992-09-15 John R. Koza Non-linear genetic process for use with plural co-evolving populations
JP2534360B2 (en) * 1988-09-26 1996-09-11 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン Connection method, node connection method, data processing method, and method of inserting node in tree
US5161216A (en) * 1989-03-08 1992-11-03 Wisconsin Alumni Research Foundation Interprocedural slicing of computer programs using dependence graphs
US5175843A (en) * 1989-10-30 1992-12-29 General Electric Company Computer-aided design method for restructuring computational networks to minimize shimming delays
JPH04280320A (en) * 1991-03-08 1992-10-06 Nec Corp Automatic generation device for program
US5265254A (en) 1991-08-14 1993-11-23 Hewlett-Packard Company System of debugging software through use of code markers inserted into spaces in the source code during and after compilation
US5327561A (en) * 1991-09-20 1994-07-05 International Business Machines Corporation System and method for solving monotone information propagation problems
GB9126269D0 (en) * 1991-12-11 1992-02-12 Renishaw Metrology Ltd Temperature sensor for coordinate positioning apparatus
JPH05257664A (en) * 1991-12-12 1993-10-08 Internatl Business Mach Corp <Ibm> System and method for generating version-independent object-oriented application program
US5432901A (en) 1992-01-30 1995-07-11 Bmc Software, Inc. Method of dynamically generating a local format for use by a logical unit in a VTAM-type communications session
US5408603A (en) * 1992-03-31 1995-04-18 Dow Benelux N.V. Global process control information system and method
AR247303A1 (en) * 1992-08-21 1994-11-30 Gilligan Federico Gustavo Y Fa New computer keyboard.
US5339433A (en) * 1992-11-19 1994-08-16 Borland International, Inc. Symbol browsing in an object-oriented development system
CA2134059C (en) 1993-10-29 2009-01-13 Charles Simonyi Method and system for generating a computer program
US5680622A (en) * 1994-06-30 1997-10-21 Borland International, Inc. System and methods for quickly detecting shareability of symbol and type information in header files
US5717883A (en) * 1995-06-28 1998-02-10 Digital Equipment Corporation Method and apparatus for parallel execution of computer programs using information providing for reconstruction of a logical sequential program
US5857212A (en) 1995-07-06 1999-01-05 Sun Microsystems, Inc. System and method for horizontal alignment of tokens in a structural representation program editor
US5813019A (en) * 1995-07-06 1998-09-22 Sun Microsystems, Inc. Token-based computer program editor with program comment management
US5896537A (en) 1996-05-13 1999-04-20 Siemens Corporate Research, Inc. Partition based alias analyzer for pointers
US6012152A (en) 1996-11-27 2000-01-04 Telefonaktiebolaget Lm Ericsson (Publ) Software fault management system

Also Published As

Publication number Publication date
JP4448881B2 (en) 2010-04-14
US6189143B1 (en) 2001-02-13
US5790863A (en) 1998-08-04
US6966054B2 (en) 2005-11-15
CA2134059C (en) 2009-01-13
US6078746A (en) 2000-06-20
JPH07182147A (en) 1995-07-21
CA2643234C (en) 2012-05-15
US6070007A (en) 2000-05-30
US5911072A (en) 1999-06-08
US20010037496A1 (en) 2001-11-01
JP2008140410A (en) 2008-06-19
EP0651325A3 (en) 1998-01-28
CA2134059A1 (en) 1995-04-30
US6097888A (en) 2000-08-01
EP0651325A2 (en) 1995-05-03
JP4140980B2 (en) 2008-08-27

Similar Documents

Publication Publication Date Title
CA2643234A1 (en) Method and system for generating a computer program
US6964010B1 (en) Formatted-item list control
US7954082B2 (en) Automatically analyzing and modifying a graphical program
JP4934482B2 (en) System for assisting configuration of environment for process control
US6757889B1 (en) Source program checking device and program and method for same
US7730102B2 (en) Method and system for organizing and manipulating nodes by category in a program tree
US20030237026A1 (en) Target device-specific syntax and semantic analysis for a graphical program
CN112035101B (en) Method, device, medium and equipment for creating command library combining RPA and AI
EP0735466A2 (en) Method and apparatus for displaying locations of errors detected inside software macro calls
US6992575B2 (en) Methods and apparatus for generating a data structure indicative of an alarm system circuit
WO2003085557A1 (en) Method and apparatus for modeling extensible markup language (xml) applications using the unified modeling language (uml)
US20040080409A1 (en) Methods and apparatus for generating a data structure indicative of an alarm system circuit
US7161478B2 (en) Methods and apparatus for generating a data structure indicative of an alarm system circuit
JPH01501978A (en) Parametric design drawing method and system
EP0685955A2 (en) Outline programming for developing communication services
US6970078B2 (en) Methods and apparatus for generating a data structure indicative of an alarm system circuit
US5754808A (en) Method for implementing a program for an object-oriented programming system using graphics
US8671394B1 (en) Monitoring test steps in test environments
US20030016242A1 (en) Use of hyperlinks in an automation application program and a station for programming such an application
JPH0194404A (en) Nc data generation system
JPH0833834B2 (en) Display panel generation method
JPS60128530A (en) User menu display processing system
JP2007094453A (en) Program development support system, program development support method and program
EP0694835A1 (en) Integrated software command specification and documentation system
JP3822263B2 (en) File list display customization processing apparatus and processing method

Legal Events

Date Code Title Description
EEER Examination request
MKEX Expiry

Effective date: 20141021