+

WO2001077882A1 - Systeme et procede de generation de code source informatique - Google Patents

Systeme et procede de generation de code source informatique Download PDF

Info

Publication number
WO2001077882A1
WO2001077882A1 PCT/US2001/010860 US0110860W WO0177882A1 WO 2001077882 A1 WO2001077882 A1 WO 2001077882A1 US 0110860 W US0110860 W US 0110860W WO 0177882 A1 WO0177882 A1 WO 0177882A1
Authority
WO
WIPO (PCT)
Prior art keywords
document
source code
code
node
tailoring
Prior art date
Application number
PCT/US2001/010860
Other languages
English (en)
Inventor
John R. Van Roekel
Rex A. Timbs
Original Assignee
Healthmedia, Inc.
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 Healthmedia, Inc. filed Critical Healthmedia, Inc.
Priority to AU2001253122A priority Critical patent/AU2001253122A1/en
Publication of WO2001077882A1 publication Critical patent/WO2001077882A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Definitions

  • the application includes computer program related materials in the form of appendices.
  • the processing program when executed, captures data from a system user and pulls in information from the MCD as necessary, based on these inputs.
  • Such computer program generation systems are still cumbersome and have numerous deficiencies and built-in inefficiencies.
  • a processing program still has to be generated by a computer programmer in addition to the MCD prepared by a non-programmer content expert. This processing program still needs to be reviewed and tested by both the programmer and the content expert to ensure that the MCD is compatible with the processing program and that the MCD and processing program are working properly together to generate the appropriate output. This system does not allow the non- programmer to view the results of his programming in real time.
  • MCD systems also have some very significant production limitations. Because of the structure of having the processing program operate on separately developed MCD, the condition statements that may be written into the processing programs for such MCD systems are fairly limited, and as a result relatively weak. Also, in such systems the output content that can be supported is fairly limited which ultimately restrains the final presentation of tailored output from the system. Also in production, as a result of a processing program operating on a separate MCD, the processing time for MCD systems is relatively slow, resulting in lengthy waits for tailored output.
  • a method for generating computer source code includes preparing a master tailoring document which contains logic for a computer program, inputting the master tailoring document into a document structure generator which parses out the computer program logic contained in the input document and builds a document tree structure based on the program logic, and providing a code writer program and a template of pre-defined source code snippets so the code writer program may retrieve the computer program logic from the document tree structure and combine the retrieved program logic with designated source code snippets from the template to generate source code for a computer program.
  • the source code generation method may farther include compiling the generated source code to convert the generated source code into executable code.
  • the source code generation method may also include providing computer memory and a computer workstation, moving the executable code to the computer memory, activating the executable code which generates a dynamic user interface on the computer workstation, inputting data into the dynamic user interface and submitting the data, processing the input data, and creating an output content document.
  • the source code generation method may further include formatting the output content document into a formatted file and transmitting the formatted file to the computer workstation for review.
  • the act of formatting the output content document into a formatted file may be done by providing a hypertext markup language (HTML) publisher and an HTML layout file and by inputting the output content document and the HTML layout file into the HTML publisher to format the file into HTML format.
  • the act of formatting the output content document into a formatted file may also be done by providing a print publisher and a print layout file and by inputting the output content document and the print layout file into the print publisher to format the file into a print file format.
  • the act of formatting the output content document into a formatted file may also be done by formatting the output content document into a text file format.
  • the master tailoring document may also include commands that set document tree structure nodes when parsed by the document structure generator and that create branches from each generated node when parsed by the document stracture generator.
  • the master tailoring document may further include group commands which have subcommands that create branches from each generated node when parsed by the document structure generator.
  • the template of pre-defined source code snippets of the source code generation method may be written in extensible markup language (XML) and the generated source code may be written in the Java programming language.
  • the master tailoring document may include at least one condition statement written to output text content based on the condition statement.
  • the master tailoring document may also include at least one condition statement written to output graphics content based on the condition statement.
  • a system for generating computer source code from a master tailoring document which contains logic for a computer program includes a code generator having a document structure generator, a memory, a code writer and a template of pre-defined source code snippets in which the document structure generator parses out the computer program logic contained in the master tailoring document and builds a document tree structure in memory based on the program logic and in which the code writer program retrieves the computer program logic from the document tree structure and combines the retrieved program logic with designated source code snippets from the template to generate source code for a computer program.
  • the source code generation system may further include a code compiler for compiling the generated source code to convert the generated source code into executable code.
  • the master tailoring document of the source code generation system may include commands that set document tree structure nodes when parsed by the document stracture generator and may also include commands that create branches from each generated node when parsed by the document structure generator.
  • the master tailoring document of the source code generation system may also include group commands which have subcommands that create branches from each generated node when parsed by the document structure generator.
  • the template of pre-defined source code snippets of the source code generation system may be written in extensible markup language (XML), and the generated source code may be written in the Java programming language.
  • the master tailoring document may include at least one condition statement written to output text content based on the condition statement.
  • the master tailoring document may include at least one condition statement written to output graphics content based on the condition statement. It is an object of the present invention to provide a computer source code generating system and method in which a non-programmer can write the methodology for a computer program in a language and in a software application that the non-programmer is familiar with which generates source code for a computer program.
  • FIG. 1 depicts an overview of the development process for generating computer source code in the present invention
  • FIG. 2 depicts an overview of the computer source code generated by the system and method of the present invention in a production environment;
  • FIG. 3 illustrates an exemplary master tailoring document in an embodiment of the present invention
  • FIG. 4 illustrates the process within a code generator of the present invention for generating source code from the exemplary master tailoring document
  • FIGS. 5A-M depict an exemplary code template used by a code generator of the present invention
  • FIGS. 6A-G depict exemplary source code generated by the code generator of the present invention
  • FIG. 7 depicts an exemplary dynamic user interface developed by executable code generated by the system and method of the present invention.
  • FIG. 8 depicts an exemplary output content document developed by executable code generated by the system and method of the present invention.
  • FIG. 9 illustrates an exemplary display on the workstation of user of a system using the executable code generated by the system and method of the present invention.
  • a content expert 20 interacts, via a computer workstation 22, with a code development computing system 24 to generate computer source code 26 and to test the code 26 to ensure it is working properly.
  • the content expert 20 writes the algorithm content and logic into a text editing tool that he or she is familiar with, such text editing tools may be any text editor including word processing programs like Word or WordPerfect.
  • the algorithm content and logic details the program's needed inputs, the conditions and processes that the program applies and performs and the output information that the program generates after applying and perfo ⁇ ning these conditions and processes on the captured inputs.
  • the entered program algorithm content and logic is saved as a document called a master tailoring document 28.
  • the master tailoring document 28 maybe saved in a variety of formats, including Hypertext Markup Language (HTML) and Extensible Markup Language (XML). Saving the master tailoring document 28 in either HTML or XML format facilitates processing the information contained in the document.
  • HTML Hypertext Markup Language
  • XML Extensible Markup Language
  • the master tailoring document 28 is input into the code development computing system 24.
  • a code generator 30 operates on the master tailoring document 28, as described in detail below, to parse the master tailoring document 28 into its component elements and then combine these component elements with templated source code to generate the outputted computer source code 26.
  • the source code 26 generated by the code generator 30 is then compiled by a code compiler 32, resident in the code development computing system 24, which converts the source code 26 into computer executable code 34.
  • Dynamic Program Testing Once compiled, the program can be tested in real time by the content expert 20. The content expert 20 does not have to wait for a programmer to write the code and compile the program before he or she can review it. This feature of the invention reduces program development time exponentially. Dynamic testing is possible because the developed executable code 34 is loaded into the memory 36 of the code development computing system 24 immediately after the executable code 34 is created. The stored program can then be accessed by the content expert 20.
  • the content expert 20 activates the developed program executable code 34.
  • the executable code 34 once activated, creates a dynamic user interface 40 on the content expert's workstation 22, as indicated by line 38.
  • the dynamic user interface 40 prompts the content expert 20 for test input information.
  • the program after receiving the inputs, processes the received information and, if the program executes properly, the program creates an output content document 44, as indicated by line 52. If, on the other hand, the program encounters an error during execution, it posts the error to an error log 54, as indicated by line 56, and generates an error message for the content expert's attention, as indicated by line 58.
  • the content expert 20 can correct this easily and immediately by properly re-entering the input data and re- submitting it. If the error, however, was identified as a problem in the program code, the content expert 20 needs to review the master tailoring document 28 to determine the error and resolve it. In this situation, once the content expert 20 identifies the problem and corrects it, the content expert 20 needs to re-generate the computer source code 26 and re- compile it as described above.
  • the output content document 44 created by the program contains raw output data which may be formatted as required.
  • the output content document 44 may be formatted in three different ways.
  • One way is through an HTML publisher 46.
  • the HTML publisher 46 calls on an HTML layout file 48 to generate an HTML file 50 using the information from the output content document 44.
  • the HTML layout file 48 is a previously created file developed by a web site developer in conjunction with the content expert 20 which defines the output fo ⁇ nat for the output content document information and defines and positions any graphics, charts or any other material required by the output content document to be inserted into the published document.
  • the content expert 20 can access the generated HTML file 50 through his workstation browser so he can review the output information and its presentation to determine if changes need to be made.
  • the output content document 44 may also be formatted as a text file 72 through a text publisher 70.
  • the generated text file 72 may be transmitted to the content expert's workstation 22, as indicated by line 74, where the content expert 20 may spell check the document and perform other text editing functions on it, if necessary.
  • the output content document information may also be formatted as a print file 68, in a format such as PostScript.
  • the print file 68 is generated by a print publisher 60 which calls on a print layout file 62 to generate the print file 68.
  • the print layout file 62 is a previously created file developed by a print layout artist in conjunction with the content expert 20 which defines the output format for the output content document information and defines and positions any graphics, charts or any other material required by the output content document to be inserted into the printed document. As indicated by line 64, the content expert 20 can access the generated print file 68 for review and correction, if necessary.
  • the system access device 104 may be any device capable of interacting with a system controller, such as a computer, a personal digital assistant (PDA), a cellular phone, a pager, a call center system, an interactive voice response ("IVR") system, a system for a data input center, an e-mail system or any type of network access device.
  • a system controller such as a computer, a personal digital assistant (PDA), a cellular phone, a pager, a call center system, an interactive voice response (“IVR”) system, a system for a data input center, an e-mail system or any type of network access device.
  • PDA personal digital assistant
  • IVR interactive voice response
  • the system controller 107 creates a dynamic user interface which prompts the user for user input data. Once the user enters all the necessary input data, he or she submits it to the system controller 107 for processing, as indicated by line 110.
  • the system controller 107 after receiving the inputs, saves the inputs to a user input database 1
  • the output content document 114 created by the program contains raw output data which may be formatted as required.
  • the output content document 114 may be formatted in three different ways.
  • the HTML publisher 46 may call on the HTML layout file 48 to generate an HTML file 118 using the output content document infonnation.
  • the HTML file 118 is transferred to a web server 124 which may interact with a browser on the user's system access device 104 which, as described above, may be any number of devices including a computer, a PDA, a pager or a cell phone to generate an end user web page 125 which displays the processed information for review by the user.
  • the output content document 114 may also be formatted as a text file 120 through a text publisher 70.
  • the generated text file 120 may be transmitted to an e-mail exporter 126 for transference to the user's system access device 104 as an end user e-mail 127.
  • the output content document information may also be formatted as a print file 122, in such a format such as PostScript.
  • the print file 122 is generated by a print publisher 60 which calls on a print layout file 62 to generate the print file 122.
  • the print file 122 is transferred to a File Transfer Protocol (FTP) server 128.
  • FTP File Transfer Protocol
  • the print file 122 may be sent to any recipient 129 that needs the print file 122, such as a print vendor for printing.
  • the print vendor in turn, may send the printed documents on to an end user 131.
  • the system of the present invention may be used to develop source code for any type of programming language, such as Java, using a text editor program.
  • the content expert 20 develops a master tailoring document 28 similar to the one depicted in Fig. 3 using a text editor program.
  • the master tailoring document 28 is a set of tables that specify the program information.
  • the tables specify the program name, the inputs that the program requires and the conditions that are applied to the input data to develop output content.
  • the content expert 20 follows guidelines set for developing the program charts. An example of such guidelines are attached as Appendix A. To make program development simpler, the guidelines specify simple, intuitive, easy to follow commands and field identifiers.
  • the first column 152 of this table includes "command" cells.
  • the command in the first cell of the first table is the "Document” command.
  • the "Document” command requires the input of a document/program name in the adjoining cell in the second column.
  • the program's name is "SimpleTest".
  • the next table in this example is the "Response” table 156.
  • the Response table 156 specifies the input data that the program requires.
  • the cells of the Response table may be formatted in any manner as long as they conform to a set of structuring guidelines similar to those attached as Appendix A. In this example, however, each row of the Response table is formatted in a similar manner.
  • the first column 158 of the Response table 156 similar to the first column 152 of the first table 150, is a "command" column.
  • the second column 160 of table 156 is a "name” column. When used with the "response" command, the "name" cell provides a name for the input that is requested by the "response” command.
  • the third column 162 is an "options" column.
  • a cell in the "options” column 162 lists any options required for that entry. For instance, if an input is required for a "response" field, the content expert 20 could ensure that the program would not continue unless data was entered for this field by specifying in the "options” cell that data had to be input for this field for the program to execute.
  • the "options" cells of table 156 are not employed in the example depicted in Fig. 3.
  • the fourth column 164 of table 156 is a "type” column 164.
  • a cell in the "type” column 164 describes the characteristics a response to the query generated by the "Response" command must have.
  • the "FirstName” variable 171 is a "String" type field as indicated by identifier 170 which means that only character values can be entered for this variable.
  • the last column 166 of the table 156 is the “comment” column.
  • a cell in the "comment” column 166 contains the prompt command that a user sees when he or she uses the program.
  • For the Response field 168 the user is prompted with the comment "First Name:" from cell 172.
  • the program requests the user for his first name (field 168), his last name (field 174) and his age (field 176).
  • the "FirstName” and “LastName” response fields both require character data input as indicated by the "String” designation in their respective “type” cells 170, 178.
  • the "Age” response field 176 requires the input of an integer as indicated by the "int” designation in its "type” cell 180.
  • the next table 182 in this example is the "Content" table.
  • the Content table 182 specifies the conditions and operations that are applied to the data inputs and the resulting outputs that are generated by these conditions and operations.
  • the cells of the Content table 182 may be formatted in any manner as long as they conform to a set of structuring guidelines similar to those attached as Appendix A.
  • the first column 184 of the Content table 182, similar to the first columns 152, 158 of the first table 150 and the Response table 156, is a "command" column.
  • the second column 186 of table 182 is a "name” column.
  • the third column 188 is an "options" column.
  • a cell in the "options” column 188 lists any options required for that entry.
  • the “options” cells for table 182 are not employed in the example depicted in Fig. 3.
  • the fourth column 190 of table 182 is a "condition" column 190.
  • a cell in the "condition” column 190 specifies a boolean expression that, if true, generates a program specified output, such as text or graphics.
  • the boolean expressions specified in a "condition” cell 190 in this embodiment, are written in standard Java language because these boolean expressions are inserted directly into the program source code that is ultimately generated.
  • the fifth column 192 of table 182 has multiple uses depending on the type of command entered in the "command" column 184.
  • the content expert 20 may employ a variety of different commands in the "command" column 184 depending on what the content expert 20 wants to set a condition for.
  • This format allows a content expert 20 to use very powerful conditions statements. For instance, if the content expert 20 uses the "Graphic" command described in Appendix A, frame 16, the generated program, when executed, will return a designated graphic if the condition statement is satisfied. Further, since Java code may be directly input into the master tailoring document 28 using the "Java" command (Appendix A, frame 20), the resulting program has all the power and capability of a program written directly in Java. This allows programs generated by the present invention to support a wide variety of content, including formatted text, pictures, tables and charts.
  • the first programmed row 196 of "Content" table 182 defines a "Group".
  • the "Group” command defines the beginning of a series of commands that are to be grouped together.
  • the “End” command defines the end of the grouped commands.
  • the "Group” defined in the Fig. 3 example is the "Welcome” group as designated by the "name” cell 198.
  • the second programmed row 200 of table 182 is a "text" command row. When this row is executed, the program generates the statement in cell 202, "Welcome $$FirstName$$", where the first name entered by the program user (e.g., John) is output for the variable $$FirstName$$.
  • the third programmed row 204 is also a "text" command row.
  • the boolean expression in cell 206 (Age ⁇ 21) is evaluated. If the "Age" data input by the program user is less than 21, then the boolean expression is true and the program generates the statement in cell 208, "You are under 21.”
  • the fifth programmed row 216 is an "End” command row which ends the “Group” designated in the "name” cell 218. In this example, the "End” command designates the end of the "Welcome” group.
  • the master tailoring document 28 may be saved in a variety of formats including HTML or XML. Saving the master tailoring document 28 in either HTML or XML format facilitates further processing of the master tailoring document 28.
  • the master tailoring document 28 is input into the code generator 30.
  • a document structure generator 250 resident in the code generator 30 operates on the input master tailoring document 28.
  • the document structure generator 250 parses the infonnation contained in the master tailoring document 28 and builds a tree structure representing the master tailoring document structure in memory 252.
  • the document structure generator 250 creates the tree structure based on the commands in the input master tailoring document 28.
  • the document structure generator 250 sets the beginning or "root" of a document tree. As depicted in Fig. 4, for the master tailoring document 28 from the Fig. 3 example, the "Document/Simple Test" node object 254 is generated from the master tailoring document "Document" command 152. The node 254 sets the root for the SimpleTest document tree stracture. For each master tailoring document command encountered by the document stracture generator 250 subsequent to the "Document" command, the document structure generator 250 generates branches and sub-branches from the "Document" node 254 until the end of the master tailoring document 28 is reached. As the document stracture generator 250 operates on the master tailoring document
  • the "response” nodes 256-260 have the characteristics specified in the master tailoring document 28.
  • the "group” node 262 sets the node for the "Welcome” group of commands. Extending from the Welcome “group” node 262 are three “text” nodes 264-268 and one group “end” node 270.
  • the "text” nodes 264-268 have the characteristics specified by the master tailoring document 28 depicted in Fig. 3.
  • the code generator 30 generates the source code 26.
  • the code generator 30 generates the source code 26 by invoking a code writer program 272.
  • a sample code writer program 272 is attached as Appendix B.
  • the code writer program 272 generates source code 26 by selectively combining the objects of the generated master tailoring document tree structure with pre- defined, standardized source code snippets from a template 274 to generate a customized program.
  • the code writer 272 first generates a common preamble 300 in the generated source code 26 of Fig. 6 A.
  • the common preamble 300 is generated by selecting a series of preamble snippets 302 from the code template 274 of Fig. 5 A.
  • the code template snippets are formatted in XML.
  • XML is preferable since the XML format is a pure data format that is more amenable to manipulation than languages that combine data with representation characteristics such as HTML.
  • the code writer 272 operates on the pre-defined preamble snippets 302 to insert the proper objects from the master tailoring document tree structure at the appropriate points.
  • the code writer 272 inserts the name of the "document" node 254 ("SimpleTest") into the variable " ⁇ 0 ⁇ " 304 in the code snippet 302 to create a Java class named "SimpleTest” 306.
  • the code writer 272 After creating the preamble, the code writer 272 next writes any Java language that was included directly in the master tailoring document 28, by way of the "Include” command, into the source code.
  • the code writer 272 uses the "include” code snippets 304 (Fig. 5B) from the code template 274 to create this source code, as block 308 indicates (Fig. 6A).
  • the "Include” command was not used in the example depicted in Figs.
  • the code writer 272 After inserting any "included” Java language into the generated source code 26, the code writer 272 writes any global Java language that was included directly in the master tailoring document 28, by way of the "Java” or “Function” commands, into the source code.
  • the code writer 272 uses the "Java” or “function” code snippets 306 (Fig. 5B) from the code template 274 to create this source code, as block 310 indicates (Fig. 6A). Neither the "Java” nor the "Function” commands were used in the example depicted in Figs. 3-6, but these commands are explained in the master tailoring document guidelines attached as Appendix A.
  • the code writer 272 After the code writer 272 writes any "Java” or “Function” language that was written in the master tailoring document 28, the code writer 272 writes a series of Java methods using the document tree structure and the code template snippets.
  • the first method written is named "getResponseNames” and it sets the names of the "response” variables in the generated code by retrieving the "response” variable names from the document tree structure and inserting them into the code template snippet 312 at variable " ⁇ 1 ⁇ " designated as 316.
  • Fig. 5C the code snippet template 274 and block 314 (Fig. 6 A-B) of the generated source code 26 indicate
  • the first method written is named "getResponseNames" and it sets the names of the "response” variables in the generated code by retrieving the "response” variable names from the document tree structure and inserting them into the code template snippet 312 at variable " ⁇ 1 ⁇ " designated as 316.
  • the "response” variables in the Java code of this example are "FirstName” 318, "LastName” 320 and "Age” 322 which come from the three "response” nodes 256-260 of the document tree structure depicted in Fig. 4.
  • the "instrument” variables in the Java code of this example are "FirstName” 330, "LastName” 332 and "Age” 334 which come from the three "response” nodes 256-260 of the document tree structure depicted in Fig. 4. There are no “label” or "endlabel” variables used in the example depicted herein.
  • the code writer 272 also retrieves the "option" characteristics for each "response” variable node in the document tree stracture and inserts these "option” characteristics into the code template snippet 348 at variable " ⁇ 1 ⁇ ", indicated at 352. As illustrated in Fig. 6C, the "response” variables of the example explained herein do not have “option” characteristics so no “options” are set for the “response” variables "FirstName”, "LastName” and "Age” as indicated by designators 354-358.
  • any "variable” computational characteristics are retrieved from the associated "variable” nodes in the document tree stracture a d inserted into the code template snippet 390 at variable " ⁇ 1 ⁇ ” indicated by 396. Since the example explained herein does not have any “variables” or “parameters” designated by the content expert 20, there are no “variables” or “parameters” to compute as the blank space in the Java source code at 398 indicates (Fig. 6D).
  • the next method written is named "setVariableValue".
  • the "setVariableValue” method sets the value of a given variable based on a user input.
  • the code for this method is generated by retrieving the "response" variable names from the document tree stracture and inserting them into the code template snippet 400 at variable " ⁇ 0 ⁇ ” indicated by 404.
  • the result in the source code is that the "response" variables are set to equal the user's inputs for each "response” variable.
  • the "FirstName” variable 406 equals the "value” 408 input by the user for the First Name
  • the "LastName” variable 410 equals the "value” 412 input by the user for the Last Name
  • the "Age” variable 414 equals the "value” 416 input by the user for his or her age.
  • the next series of code snippet templates 418-426 and the related generated source code 428-436 define “get” methods that are generated in the same manner.
  • the code writer 272 generates five “get” methods: 1) “getVariableValue”, 2) “getVariableType”, 3) “getCommand”, 4) "getLabel” and 5) “getObject”.
  • the "get” methods are generated by retrieving the "variable” names from the document tree stracture and inserting them into the code template snippets 418-426 (5J-K, 5E-G) at variable " ⁇ 0 ⁇ ” and then defining what the program is to provide in the "return” line at variable " ⁇ 1 ⁇ ".
  • the output from the program is generated by a "write” method.
  • the "write” method is named “writeDocument” and.it calls on lower level methods (e.g., "writeSimpleTest” 442) to produce the program output.
  • the "writeDocument” method is generated by retrieving the "document” name from the document tree structure and inserting it into the code template snippet 438 at variable " ⁇ 0 ⁇ ” indicated by 444.
  • the lower level methods are generated by retrieving "group” objects branching from the "document” node and inserting them in the proper type of code snippet in the code template.
  • Snippet 438a formats a text node.
  • Snippet 438b formats a graphics node.
  • Snippet 438c formats a group node.
  • Snippet 438d formats a content node.
  • Snippet 438e formats a table node.
  • Snippet 438f formats a chart node.
  • Snippet 438g depicts a series of formats for selection nodes.
  • Snippet 438h depicts a group method format snippet.
  • the code writer 272 develops a group method named "SimpleTestWelcome".
  • the first step in generating group method "SimpleTestWelcome” is accomplished by retrieving the name of the "group” being operated on from the document tree stracture (Fig. 4) and inserting the "group” name into the variable " ⁇ 0 ⁇ ” as indicated at 446 (Fig. 5L), 448 (Fig. 6F).
  • the code writer 272 finds the next node of the group "Welcome” that needs to be inserted into the group method. In this example, it is the text node 264 ("Welcome $$FirstName$$).
  • the code writer 272 then inserts the text from the text node into the text node formatting snippet 438a (Fig. 5K) to generate a text output line of code as indicated at 450 (Fig. 6F).
  • the code writer 272 then operates on the next node of the group, node 266, a conditional text node ("If Age ⁇ 21, return: "You are under 21.”).
  • the code writer 272 inserts this conditional statement into the appropriate selection node formatting snippet 438g (Fig. 5L) to generate the conditional code found at 452.
  • the code writer 272 inserts this conditional statement into the appropriate selection node formatting snippet 438g (Fig. 5L) to generate the conditional code found at 454.
  • the code writer 272 then encounters the group "end" node 270 for the "welcome” group which triggers the code writer 272 to finish processing and preparing the SimpleTestWelcome group code.
  • the code writer 272 continues on to write a few more administrative methods that are generated in a manner similar to the ones described above. At this point the code writer 272 has generated a complete Java source code document. Referring again to Fig.
  • the code development computing system 24 then compiles the generated source code 26 in the code compiler 32.
  • the code compiler 32 converts the generated source code 26 into executable code 34.
  • the executable code 34 is moved to memory 36 where the compiled executable code 34 can be tested by the content expert 20.
  • the content expert 20 may test the generated program by requesting the code development program computing system 24 to invoke the compiled executable code 34.
  • the activated executable code 34 develops the dynamic user interface 500 as depicted in Fig. 7.
  • the dynamic user interface 500 is generated by the code development computing system 24 by calling the "get” methods of the generated source code 26 (the "getVariableValue” method 428, the “getVariableType” method 430, the “getCommand” method 432, the “getLabel” method 434, the “getObject” method 436).
  • the dynamic user interface 500 appears on the content expert's workstation 22 and identifies field information for the content expert 20 to fill in.
  • the dynamic user interface 500 requests the content expert 20 to input a first name in field 502, a last name in field 504 and an age in field 506.
  • the content expert 20 inputs a first name of "John", a last name of "Doe” and an age of "22".
  • this input data may be called from a stored data file and input into the generated program.
  • the input data is sent from the content expert's workstation 22 to the program executable code 34 for processing.
  • the first thing the program does is validate that the proper type of data was entered for each data field (e.g., only numbers, not characters, were entered for an integer "int" type field). If the input data is not valid, the code development computing system 24 sends an e ⁇ or message back to the content expert 20. The content expert 20 then corrects the input data and re-submits it. Once all of the data submitted is valid, the executable code 34 of the generated program passes all of the input data into its respective Java variables (e.g., the first name information (John) is stored in the "FirstName" variable).
  • the generated program calls the "writeDocument” method which processes the input data and prepares an output content document 44.
  • the output content document 44 is an XML document which facilitates further processing.
  • the "writeDocument” method first calls the “writeDocumentHeader” method 460 which writes a document header 462 for the output content document 44 depicted in Fig. 8.
  • the "writeDocument” method next calls the “writeSimpleTestWelcome” method at designation 442.
  • the "writeSimpleTestWelcome” method 456 first calls method "writeGroupHeader” 448 which writes the group header 464 to the output content document 44.
  • the "writeSimpleTestWelcome” method 456 then calls the "writeText” method 450 which retrieves the input for the "FirstName” variable, which in this case is "John” and writes the formatted text section 466 of the output content document 44 which contains the statement "Welcome John”.
  • the "writeSimpleTestWelcome” method 456 next calls the selection method 452 which retrieves the input for the "Age” variable, which in this case is "22", and determines whether the input age is less than 21. In this case, it is not, so the "writeSimpleTestWelcome” method 456 skips to the next selection method 454 which determines if the input for the "Age” variable is greater than or equal to 21.
  • the selection method 454 writes the formatted text section 468 of the output content document 44 which contains the statement "You are 21 or older.”
  • the "writeGroupTrailer” method 470 then writes the trailer 472 for the "group” element in the output content document 44.
  • the "write Variable Values” method 474 writes and formats all of the variable information to the output content document 44.
  • the output content document 44 since it is saved in a pure data format such as XML, may be formatted into any presentation fonnat that the system operator wants to put the output information into.
  • the output information may be saved as a HTML file 50 by conversion through the HTML publisher 46.
  • the HTML file 50 is then sent to content expert's workstation 22 where the workstation's browser opens the HTML file 50 and displays it for the content expert 20 to review.
  • Fig. 9 illustrates what the content expert 20 sees in the example described herein.
  • the output content document 44 may be sent through the text publisher 70 to generate a text file 72 for the content expert 20 to review or tlirough the print publisher to generate a print file 68 for the content expert 20 to review.
  • MTD Master Tailoring Document
  • TJ Tailored Java
  • TJBuilder is incorporated into the Grinder tool so that content developers may never actually need to run it directly.
  • MTD files are created using Microsoft Word. Within the MTD file, "tables" are used to contain tailoring information. TJBuilder ignores anything outside of a table. It is a good practice to place commentary text in the MTD file but outside of any table. Any number of tables may be used in the MTD file. There is no significance to ending one table and starting another. The format of the tables is not significant. For example, developers may select any column width that is appropriate.
  • the MTD files are saved in HTML format for processing in TJBuilder/Grinder. Because MS Word 97 files saved as HTML do not retain all document information, MTDs will be constructed and maintained as ".doc" files and then converted to HTML for processing. Once HMI begins using Word 2000, in which documents saved in HTML format retain all Word information, MTD files will be created and maintained in HTML.
  • TJBuilder looks for a "command word" in the first cell of each row. This command word determines the format of the rest of the cells in that row.
  • the first cell on in a row within a table contains the "Command Word.” For some commands, additional information may be included after the command word (e.g. "LEVEL 1"). All currently defined commands are further described starting on page 9. Below is a summary:
  • DOCUMENT specifies the document name and title.
  • RESPONSE defines a questionnaire response.
  • PARAMETER defines a characterization variable based on RESPONSE variables and on other PARAMETER variables. PARAMETER variables are loaded from and saved into the database.
  • VARIABLE defines a variable just like PARAMETER. However, VARIABLE variables are not saved into the database.
  • GROUP collects the commands that follow it into a group.
  • LEVEL groups a collection of commands together at a specified level.
  • TEXT specifies content text.
  • GRAPHIC specifies a graphic.
  • TABLE creates data to be displayed in tabular format.
  • CHART creates data to be displayed as a chart.
  • CONTENT synthesizes either text or graphics using Java code.
  • TOPIC is equivalent to "LEVEL 2".
  • SENTENCE is equivalent to TEXT.
  • FUNCTION defines a Java function that may be referenced in subsequent code.
  • JAVA allows raw Java code to be included. This code might define additional variables or Java functions. This is an advanced feature that will often not be used.
  • INCLUDE specifies an additional file to include at the current table position.
  • SCHEDULE allows the use of Java code for determining when a document for a particular enrollee should be tailored.
  • COMMENT defines a comment that will be ignored.
  • Page 3 of 30 • COMMAND and VERSION are similar to COMMENT.
  • COMMAND may be used to place headers at the top of a table to label columns for ease of editing.
  • VERSION may be used to record modifications.
  • Commands may be in any combination of upper and lower case. If a command is not recognized, a warning message is generated.
  • Any command may be prefixed by "//”, e.g. "//INCLUDE”. This will not generate an error but will disable that command, essentially treating it like a comment. This is useful for temporarily disabling a command without otherwise disturbing it.
  • the text in the name cell must be a single "word” in that it can have no spaces. It also must not have a paragraph end 01) within the cell. (You can see these by using the Show/Hide ⁇ command.) The name must also start with a letter. Upper/lower case is significant.
  • the TJBuilder program will detect duplicate names and generate an error message.
  • Some cells contain "snippets" of Java code, i.e. conditions, characterization, etc. This Java code will be inserted into the created Java source file and will then be compiled by the Java compiler. As a result, the Java snippets must legal Java code with one exception.
  • MS Word allows the use of "smart quotes.” As the user types a " character, a " or " is inserted instead, depending on the context. This is very useful for writing content text. Often it is also necessary to use a " in Java code but the use of” and " is not legal. In order to allow the content developer to use smart quotes when writing content and in order to avoid turning the smart quote option on and off, it will be allowable to use " and " in Java code. TJBuilder will automatically replace them with ". Many of the examples in this document use " and " in Java code.
  • the TEXT and SENTENCE commands contain a text cell. Text in this cell may be included in the TCD, depending on the expression in the condition cell. Within the text cell, you may use bold, italic and underline. This formatting is carried through to the final output. Other changes in format may be specified using the embedded style feature described below.
  • MS Word 97 converts directional double-quotes (" and ”) into straight double-quotes when saving to HTML. In order to use directional double-quotes, insert ##ldq## and ##rdqTM in the text for left and right double-quotes. Word 2000 does not have this problem.
  • Double dollar characters may not be used unless it is for Java substitution as defined in the next Java Substitution section on page 6.
  • Double pound characters (##) may not bue used unless it is to pass information to the publication engine, e.g. ##lrq## for left quotation or ##style for embedded styles.
  • Other special characters e.g. C may be used as long as they are in the special characters table on page 24.
  • the LABEL and RESPONSE commands allow the placing of a "label" in column 6. This label is used by the Grinder development tool to label the input user interface. When used on a LABEL command, Grinder displays the label text on a line by itself in the user interface. Grinder also provides a popup menu of all LABEL commands to assist in navigating through the user interface.
  • the label text is displayed next to the input field in the Grinder user interface.
  • Variable text may be substitututed into output by including Java code right in the text by enclosing it in SSjavaSS.
  • the enclosed Java code must evaluate to either a String, boolean or number. For example:
  • the "todayO" function is called and it retums a Date containing the current date. It is converted to a day number by "dateToDayO"- Similarly, the QuitDate variable is converted to a day number and the difference is computed by the subtraction sign "-". The resulting numeric value is automatically converted to a String and inserted into the tailored text. The following might result:
  • the CONTENT command can be used to do simple or complex math. Consider the following example:
  • the VARIABLE command defines a variable named TotalCalories to contain the number of calories. Any combination of the three groups can be selected, depending on the values of IncludeRecipel, IncludeRecipe2 and IncludeRecipe3. In any case, TotalCalories will end up containing the total number of calories.
  • the "Date” type can be used to store a date. This date might be imported from a questionnaire or may be computed. Often it is veiy useful to convert a Date to a day number using the "dateToDayO" function. This function retums an "int” value that is the number of days since January 1, 1970. As it may be negative, dates before January 1, 1970 are handled properly. For example, to compute the number of days since a person has quit smoking:
  • QuitDate is converted to a day number, 14 is added to it and then that value is converted back to a Date.
  • a TList variable contains a list of items, each item described by a text string.
  • the TList variable also contains minimum and maximum limits. While it is possible to place items on the TList outside these limits, the "is Valid" function will return false in this case.
  • Tne min, max and list of item names are defined when the TList variable is created (generally by a RESPONSE, PARAMETER or VARIABLE command). The presence of an item on a TList may vary during execution of the MTD. Functions exist for placing items on the TList and for various tests.
  • the format for a TList in a Java type cell is:
  • TList min,max,iteml,item2,item3,...,itemN where: mm is a number indicating the minimum number of items that can be on the list and still have it considered “valid”. max is a number indicating the maximum number of items that can be on the list and still have it considered “valid”.
  • nameI,...,nameN are names of items that can be placed on the list. Usually these are short names like "Male” or "HBP”. (See below for an extension of this.)
  • the TList "GenderList” must have a minimum and maxium of one item, either "Male” or "Female". Note that it is possible that GenderList will have neither Male or Female, or that it will have both. In these cases, "isValid(GenderList)" will return false.
  • DiseaseList can have 0 to 10 items.
  • Page 7 of 30 remove(DiseaseList, "HBP”); or set ⁇ iseaseList, "HBP", false);
  • TLists Another important function for TLists is "toStringO" hich is used for printing (e.g. in SS substitution).
  • the toString function formats the names on the list using commas and the word "and". The format depends on the number of items on the list:
  • HBP HA HBP and HA
  • HBP HA Stroke HBP, HA, and Stroke
  • HBP HA Stroke TIA HBP, HA, Stroke, and TIA
  • TList definition can be extended to include a "long name" for each item. Instead of writing "HBP", the item can be written "HBP/High Blood Pressure". The short version before the '"/" is used for normal operations. However, when a TList variable is printed (or the toStringO ftmction is used), the long names will be used.
  • DiseaseList contains toStrinefPiseaseList') returns nothing "" (empty string)
  • HBP HA high blood pressure and heart attack
  • HBP HA Stroke "high blood pressure, heart attack, and stroke"
  • HBP HA Stroke TIA "high blood pressure, heart attack, stroke, and TIA"
  • a "layout file” is used to define the format of the published document (in PostScript for printing or HTML for Web).
  • the layout file defines a number of "Styles” which are used throughout the document Generally, these styles are applied to whole sections by the layout file.
  • the MTD format allows the specification of "min” and/or “max” in the options column for GROUP, LEVEL, TEXT, GRAPHIC, CONTENT, TABLE and CHART.
  • Grinder it will be possible to select "min” or “max” and create a document based solely on these setting, ignoring the condition expressions.
  • New commands allow the creation of tailored tabular data that can then be formatted into tables or charts by the appropriate publisher (PostScript or HTML). Note that these commands merely supply the tailored data to be used and the lavout file defines the format of the table or chart.
  • Text with this format will be published appropriately.
  • the bullet character, the bullet indent and the text indent can all be specified in the layout file.
  • the ⁇ UL> and ⁇ LI> tags will be used so that the formatting will be done by the browser.
  • DOCUMENT command There is one DOCUMENT command and it must come before all other commands except INCLUDE, COMMENT and COMMAND.
  • Name is a simple name describing this project MTD. This must be the same name as is used for the Java output file when running Grinder.
  • the MTD format is used to define response information.
  • a simple variable is defined using the new RESPONSE command.
  • Name is a simple name describing this response variable. It becomes a Java variable name that can be referenced in subsequent Java code such as characterization or conditions.
  • Options is a list of keywords that specify optional items. Currently only one is defined for the RESPONSE command: req or required this response is required (may not be left blank)
  • Type is a Java type. Common examples are: int integer (e.g. 1, 2, 3) float floating-point number (e.g. 3.14159) boolean has two values, true and false
  • Date contains date/time information
  • String contains a text string
  • Initialization Validation code is a Java snippet that does initialization after the data is imported and also checks w'hether the response data is valid.
  • the PARAMETER command defines a variable which may be used by other variables and in conditions. Parameters are read from the database at the beginning of tailoring and are written back to the database at the end.
  • Name is a simple name describing this characterization variable. It becomes a Java variable name that can be referenced in subsequent Java code such as characterizations or conditions.
  • Type is a Java type. See the RESPONSE command.
  • Characterization code is a Java snippet that sets the value of the PARAMETER variable. It can reference RESPONSE variables as well as other characterization variables already defined (occurring earlier in the MTD).
  • VARIABLE command is essentially the same as the PARAMETER command. The only difference is that VARIABLE variables are not written to the database in production.
  • This command defines the beginning of a collection of commands that are treated as a group.
  • the condition code applies to all the commands in the group.
  • Groups can contain other groups, either defined using GROUP or LEVEL.
  • the list is terminated by an END command.
  • Name is a simple name describing this group. Publication layout templates use this name. Options is a list of keywords that specify optional information. min this group is part of the "min” configuration max this group is part of the "max” configuration
  • Condition is a Java expression defining whether the group members should be selected.
  • Name is the name of the GROUP that is ending. If present and it does not match the appropriate group, an error is ⁇ enerated.
  • This command is similar to GROUP in that it defines the beginning of a collection of commands that are treated as a group. However, no END command is required. The group is terminated when another LEVEL at the same level or higher is found. (Here, a higher level means a lower level number, e.g. level 1 is higher than level 2.)
  • the condition code applies to all the commands in the group.
  • Groups can contain other groups, either defined using GROUP or LEVEL.
  • Levelnum is a number. Level 1 the top level (beneath the DOCUMENT "level”).
  • Name ⁇ s a simple name describing this group. Publication layout templates use this name.
  • Condition is a Java expression defining whether the group members should be selected.
  • the content developer may use either GROUP or LEVEL.
  • GROUP command allows groups of commands to be moved up or down in the hierarchy without editing level numbers.
  • the LEVEL command is more explicit and does not require the END command.
  • SECTION and TOPIC may be used as synonyms for LEVEL 1 and LEVEL 2.
  • the TEXT command is the primary mechanism for specifying text that may be included in the tailored output.
  • the primary version of the text is placed in the fifth column.
  • Alternative versions e.g. Spanish or numeric data
  • An external mechanism selects which text column to use.
  • Name is a simple name describing this block of text.
  • Options is a list of keywords that specify optional information. min this text is part of the "min” configuration max this text is part of the "max” configuration
  • Text is formatted text as described in the "Text Cells" section on page 5.
  • the GRAPHIC command allows the specification of conditional graphics to be included in the tailored content.
  • the GRAPHIC command conditionally defines the name of a graphic element.
  • the layout document specifies which graphics file is to be used for this name.
  • Name is a simple name describing this graphic. Used by the layout file to specify an actual graphics file. Options are a list of keywords that specify optional information. ' min this text is part of the "min” configuration max this text is part of the "max” configuration
  • CONTENT allows a more general type of content. Like TEXT and GRAPHIC, it has a condition column and is often part of a GROUP. In addition, it has arbitrary Java code which can dynamically generate content.
  • Java code is arbitrary Java code. Generally it will contain calls to "vvriteText'' and “writeGraphic'” resulting in text and graphic content being selected. It might also contain code to math or database access.
  • the TABLE command allows the creation of tailored tabular data that can then be formatted into table form by the appropriate publisher (PostScript or HTML). Note that this command merely supplies the tailored data to be used and the lavout file defines the format of the table.
  • Name is a simple name describing this table. The publisher will use this name to format and position the table.
  • Condition is a Java expression defining whether this table should be selected.
  • Table data is a list of data items, separated by commas and semicolons. Commas separate table cells within a row; semicolons separate rows. The data items must be strings without commas or delimeters. Use SS-SS for
  • Page 14 of 30 Java expression substitution is allowed. Spaces and paragraph breaks are ignored and may be used to make the rows more readable.
  • the CHART command allows the creation of tailored tabular data which can then be displayed in chart form by the appropriate publisher (PostScript or HTML). Note that this command merely supplies the data to be used and the lavout file defines the format of the char
  • the CHART command is essentially identical to the TABLE command and results in the same type of data being passed to the publisher.
  • Name is a simple name describing this chart. The publisher will use this name to format and place the chart. Options is a list of keywords that specify optional information. min this chart is part of the "min” configuration max this chart is part of the "max” configuration
  • Condition is a Java expression defining whether this chart should be selected.
  • Paze 15 of 30 Table data is a list of data items, separated by commas and semicolons. Commas separate table cells within a row; semicolons separate rows. The data items must be strings without commas or delimeters. Use SS-SS for Java expression substitution is allowed. Spaces and paragraph breaks are ignored and may be used to make the rows more readable.
  • the new FUNCTION command allows the definition of a Java function that may be used in subsequent expressions including conditions.
  • Name is a simple name for the function.
  • Options is a list of keywords that specify optional information. Currently, none are defined for this command.
  • Type is a Java type. See the RESPONSE command.
  • Java code is Java code thai defines the function.
  • Java function which returns a boolean value.
  • the JAVA command allows the inclusion of raw Java code. This is an advanced feature and will often not be used.
  • Java code is Java code that will be included in the aenerated source file.
  • the Java code above creates a global variable named "cal” which contains a Calendar object.
  • the function "isTuesday” is also defined and it can be called from any Java code.
  • a MTD file will include subfiles, each of which may be developed separately, perhaps by a different content developer.
  • FilePathName is the pathname of another MTD file in HTML format.
  • the path can be either relative (in the same folder or lower) or absolute (a full pathname).
  • the SCHEDULE command is used to determine when a document is to be executed.
  • the Java code is executed everyday by the production system until it indicates that the document is ready to be run. Once run, the production system will subsequently not call the Java code.
  • This Java code will evaluate to "true” when the "todayO" function returns a date which is greater than 14 days after QuitDate.
  • COMMAND Lines beginning with COMMAND or VERSION are completely ignored.
  • the COMMAND command may be used to label columns.
  • VERSION may be useful for recording modifications to the MTD file.
  • a LABEL command provides a string of text used in a user interface.
  • the Grinder application displays the label when it builds its user interface for inputing responses.
  • Grinder will display "Personal Information" on the line before it prompts for FirstName.
  • Your birthdate is SStoString(BirthDate, DateFormat.LONG)SS.
  • IsSimoker toBoolean(SmokerStr);
  • names contains a comma-separated list of names (e.g. "a,b,d”).
  • any character in the standard "Symbol” font may be used. However, it does not work to simply include the character using the Symbol font in Word. Instead, use “n-s-S YMs#” to switch to the symbol font Then use the corresponding normal character then "??i?STD#&" to switch back to the standard font. For example:
  • TJWriteJavaJob is a job class that writes tailored Java.
  • File javaFile new File(filePath); // verify that it exists and is readable if (javaFile.canReadQ) ⁇
  • TJNode node (TJNode)enum.nextElement(); , if (node.isVariableQ) ⁇
  • StringBuffer converter new StringBuffer(); converter.append("toString("); converter.append(name); converter.append(""); return converter.toStringQ;

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

L'invention concerne un système et un procédé permettant la génération de code source informatique à l'aide d'un document préparé par quelqu'un autre qu'un programmeur dans un langage et dans une application logicielle qui lui sont familiers. Le système et le procédé de l'invention analysent la méthodologie du programme préparée par le non programmeur, et l'utilisent, conjointement avec des fragments de code prédéfinis (30), afin de générer le code source (26). En raison de la création en temps réel du code source informatique, le non programmeur peut activer le programme presque immédiatement après la création, le tester et le modifier dynamiquement si nécessaire (40).
PCT/US2001/010860 2000-04-07 2001-04-03 Systeme et procede de generation de code source informatique WO2001077882A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001253122A AU2001253122A1 (en) 2000-04-07 2001-04-03 System and method for generating computer source code

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US19572100P 2000-04-07 2000-04-07
US60/195,721 2000-04-07
US63228500A 2000-08-03 2000-08-03
US63150500A 2000-08-03 2000-08-03
US09/632,285 2000-08-03
US09/631,505 2000-08-03

Publications (1)

Publication Number Publication Date
WO2001077882A1 true WO2001077882A1 (fr) 2001-10-18

Family

ID=27393494

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/010860 WO2001077882A1 (fr) 2000-04-07 2001-04-03 Systeme et procede de generation de code source informatique

Country Status (2)

Country Link
AU (1) AU2001253122A1 (fr)
WO (1) WO2001077882A1 (fr)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9965256B2 (en) 2015-06-18 2018-05-08 The Joan and Irwin Jacobs Technion-Cornell Institute Method and system for evaluating computational algorithms described in printed publications
US10353539B2 (en) * 2011-09-26 2019-07-16 Paypal, Inc. Easy creation of mobile code
US10755590B2 (en) 2015-06-18 2020-08-25 The Joan and Irwin Jacobs Technion-Cornell Institute Method and system for automatically providing graphical user interfaces for computational algorithms described in printed publications
CN111954854A (zh) * 2018-05-31 2020-11-17 欧姆龙株式会社 支持装置以及支持程序
US11681504B1 (en) 2019-04-26 2023-06-20 Opturo, Inc. Automated application builder using configuration files
CN119025090A (zh) * 2024-08-30 2024-11-26 北京清程极智科技有限公司 代码生成方法、装置、计算机设备和可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860073A (en) * 1995-07-17 1999-01-12 Microsoft Corporation Style sheets for publishing system
US5895476A (en) * 1996-09-09 1999-04-20 Design Intelligence, Inc. Design engine for automatic reformatting for design and media
US6012098A (en) * 1998-02-23 2000-01-04 International Business Machines Corp. Servlet pairing for isolation of the retrieval and rendering of data
US6023714A (en) * 1997-04-24 2000-02-08 Microsoft Corporation Method and system for dynamically adapting the layout of a document to an output device
US6161114A (en) * 1996-09-09 2000-12-12 Design Intelligence, Inc. Design engine for fitting content to a medium
US6167409A (en) * 1996-03-01 2000-12-26 Enigma Information Systems Ltd. Computer system and method for customizing context information sent with document fragments across a computer network
US6199082B1 (en) * 1995-07-17 2001-03-06 Microsoft Corporation Method for delivering separate design and content in a multimedia publishing system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860073A (en) * 1995-07-17 1999-01-12 Microsoft Corporation Style sheets for publishing system
US6199082B1 (en) * 1995-07-17 2001-03-06 Microsoft Corporation Method for delivering separate design and content in a multimedia publishing system
US6167409A (en) * 1996-03-01 2000-12-26 Enigma Information Systems Ltd. Computer system and method for customizing context information sent with document fragments across a computer network
US5895476A (en) * 1996-09-09 1999-04-20 Design Intelligence, Inc. Design engine for automatic reformatting for design and media
US6161114A (en) * 1996-09-09 2000-12-12 Design Intelligence, Inc. Design engine for fitting content to a medium
US6023714A (en) * 1997-04-24 2000-02-08 Microsoft Corporation Method and system for dynamically adapting the layout of a document to an output device
US6012098A (en) * 1998-02-23 2000-01-04 International Business Machines Corp. Servlet pairing for isolation of the retrieval and rendering of data

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11080682B2 (en) 2011-09-26 2021-08-03 Paypal, Inc. Easy creation of mobile code
US11875333B2 (en) 2011-09-26 2024-01-16 Paypal, Inc. Easy creation of mobile code
US10353539B2 (en) * 2011-09-26 2019-07-16 Paypal, Inc. Easy creation of mobile code
US20210357902A1 (en) * 2011-09-26 2021-11-18 Paypal, Inc. Easy creation of mobile code
US11315436B2 (en) 2015-06-18 2022-04-26 The Joan and Irwin Jacobs Technion-Cornell Institute Method and system for automatically providing graphical user interfaces for computational algorithms described in printed publications
US10755590B2 (en) 2015-06-18 2020-08-25 The Joan and Irwin Jacobs Technion-Cornell Institute Method and system for automatically providing graphical user interfaces for computational algorithms described in printed publications
US10496380B2 (en) 2015-06-18 2019-12-03 The Joan and Irwin Jacobs Technion-Cornell Institute Cache-based system and method for executing instances of a computational algorithm
US10489124B2 (en) 2015-06-18 2019-11-26 The Joan and Irwin Jacobs Technion-Cornell Institute Method and system for providing software containers supporting executable code created from computational algorithms described in printed publications
US9965256B2 (en) 2015-06-18 2018-05-08 The Joan and Irwin Jacobs Technion-Cornell Institute Method and system for evaluating computational algorithms described in printed publications
US9971573B2 (en) 2015-06-18 2018-05-15 The Joan and Irwin Jacobs Technion-Cornell Institute Computing platform and method thereof for searching, executing, and evaluating computational algorithms
CN111954854A (zh) * 2018-05-31 2020-11-17 欧姆龙株式会社 支持装置以及支持程序
US11681504B1 (en) 2019-04-26 2023-06-20 Opturo, Inc. Automated application builder using configuration files
CN119025090A (zh) * 2024-08-30 2024-11-26 北京清程极智科技有限公司 代码生成方法、装置、计算机设备和可读存储介质

Also Published As

Publication number Publication date
AU2001253122A1 (en) 2001-10-23

Similar Documents

Publication Publication Date Title
US10002116B2 (en) System and method for citation processing presentation, and transport
US7761787B2 (en) Document generation system and user interface for producing a user desired document
CA2764012C (fr) Procede, systeme et programme informatiques pour affichage d'interface-utilisateur
US7191395B2 (en) Method and system for stylesheet-centric editing
US20040268229A1 (en) Markup language editing with an electronic form
JP3905179B2 (ja) 文書翻訳装置及び機械読み取り可能媒体
US20190220504A1 (en) Method and system for editing text with a find and replace function leveraging derivations of the find and replace input
US20040205605A1 (en) Method and system for stylesheet rule creation, combination, and removal
WO2007013418A1 (fr) Systeme de redaction de documentation logicielle dans des langues naturelles
US20050193330A1 (en) Methods and systems for eBook storage and presentation
JP4007562B2 (ja) プログラミング補助方法および装置
EP1311971A1 (fr) Dispositif et procede destines a fournir un contenu multilingue dans un environnement en ligne
KR20050056123A (ko) 소프트웨어 애플리케이션에서의 네임스페이스 또는 스키마라이브러리 지원을 위한 프로그램 가능한 객체 모델
KR20010106514A (ko) 확장 가능한 매크로 언어를 위한 방법 및 시스템
KR20060114871A (ko) 웹 프로그래밍 환경을 응용한 웹사이트 관리 시스템 및방법
KR100745530B1 (ko) 팝업 윈도우 생성 프로그램을 기록한 컴퓨터 이용가능 기록 매체 및 팝업 윈도우 생성 컴퓨터 구현형 방법
CN118312211A (zh) 一种基于插件和ai流编排的接口文档生成方法及系统
US10180931B2 (en) Using a template processor to determine context nodes
US7657869B2 (en) Integration of external tools into an existing design environment
WO2001077882A1 (fr) Systeme et procede de generation de code source informatique
Rao C++ in One Hour a Day, Sams Teach Yourself
US20040117776A1 (en) Type-specific objects from markup and web-oriented languages, and systems and methods therefor
US7020683B2 (en) Method, server and system for dynamic server application adjustment
Tonis Automating Scientific Paper Screening with Backus-Naur Form (BNF) Grammars
Joshi Beginning XML with C# 2008: from novice to professional

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载