WO2023007791A1 - Program code automatic generation system - Google Patents

Program code automatic generation system Download PDF

Info

Publication number
WO2023007791A1
WO2023007791A1 PCT/JP2022/008237 JP2022008237W WO2023007791A1 WO 2023007791 A1 WO2023007791 A1 WO 2023007791A1 JP 2022008237 W JP2022008237 W JP 2022008237W WO 2023007791 A1 WO2023007791 A1 WO 2023007791A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
program code
code
context
text data
Prior art date
Application number
PCT/JP2022/008237
Other languages
French (fr)
Japanese (ja)
Inventor
基光 白川
Original Assignee
SOPPRA Digital transformation株式会社
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 SOPPRA Digital transformation株式会社 filed Critical SOPPRA Digital transformation株式会社
Publication of WO2023007791A1 publication Critical patent/WO2023007791A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven

Definitions

  • the present invention relates to an automatic program code generation system that fundamentally changes the mechanism of program development.
  • Patent Document 1 an automatic program code generation system has been proposed that is capable of automatically generating program code extremely easily and without manual intervention.
  • an instruction action and a case component related to the instruction action are extracted from text data based on acquired speech, and artificial intelligence is used to obtain an optimal execution action instruction and execution action. Explore the target.
  • the program code is generated by substituting the searched execution operation instruction and the execution operation target into the basic syntax of the program code.
  • the present invention has been devised in view of the above-described problems, and its object is to automatically execute business processing in a computer system. It is possible to automatically generate short, smooth and efficient program code that reflects the knowledge and experience of experienced IT engineers. To provide a program code automatic generation system that can fundamentally change the system and prevent the drastic impact on society of a chronic shortage of SE engineers that can occur in the near future.
  • a program code automatic generation system includes text data acquisition means for acquiring text data from a document or conversational sentence, and context is extracted by performing natural language analysis on the text data acquired by the text data acquisition means. a program code database in which one or more program codes are associated with each context; and a program grammar analysis database in which programming language grammars are recorded. Code assigning means for assigning one or more program codes according to the extracted context, and program automation in which streamlined program structuring patterns are associated with program codes or processing operations to be realized by the program codes. A code efficiency improvement means for referring to the generated knowledge database and rewriting the program code assigned by the code assignment means into an efficient program.
  • a program code automatic generation system includes text data acquisition means for acquiring text data from a document or conversational sentence, and natural language analysis of the text data acquired by the text data acquisition means to extract context.
  • a program code database in which one or more program codes are stored in association with each context; a program grammar analysis database in which grammars of programming languages are recorded;
  • a code assigning means for referring to a program automatically generated knowledge database associated with the streamlined program and generating one or more programs according to the context extracted by the context extracting means.
  • a program code automatic generation system is characterized in that, in the first invention or the second invention, the context extraction means extracts a word, an instruction action, an instruction action, and words related thereto by performing the natural language analysis.
  • the context is extracted by extracting any one of them.
  • a program code automatic generation system is the program code automatic generation system according to the third aspect of the invention, wherein the context extracting means stores a word, a pointing action, a pointing action, and a word related thereto in association with a meaning.
  • the context is extracted by referring to a semantic conversion database and searching for meanings associated with any of the newly extracted words, pointing actions, pointing actions, and words related thereto.
  • a program code automatic generation system is the program code automatic generation system according to the first invention or the second invention, wherein the code allocation means refers to the program grammar analysis database and analyzes the grammar of the program to be generated to determine whether the program is correct or not. is characterized by checking
  • a program code automatic generation system is, in the first invention, wherein the code efficiency means refers to an automatic program generation knowledge database in which the streamlined program is associated with the program code, and the code It is characterized by extracting the streamlined program related to the program code assigned by the assigning means and rewriting to this.
  • a program code automatic generation system is the first aspect, wherein the code efficiency improvement means converts the program code before the efficiency improvement to the efficient program for the processing operation to be realized by the program code.
  • the algorithm as the structured pattern associated with the processing operation to be realized by the program code assigned by the code assigning means, referring to the automatically generated program knowledge database associated with the algorithm for conversion as the structured pattern The rewriting is performed based on the above.
  • a program code automatic generation system is the third aspect, wherein the context extracting means is machine-learned using a word, an instruction action, an instruction action, and a word related thereto, and a meaning thereof as training data.
  • This model is characterized by using a model, referring to a semantic conversion database in which an input is a word, a pointing action, a pointing action, or a word dependent on this, and an output is a meaning.
  • a program code automatic generation system is the program code automatic generation system according to any one of the first invention to the eighth invention, wherein the code assigning means uses a model machine-learned using the context and the program code as teacher data, and converts the input into the context. and refers to a program code database whose output is a program code.
  • a program code automatic generation system is, in the first aspect, wherein the code efficiency improvement means teaches the program code or the processing operation to be realized by the program code and the structuring pattern of the streamlined program. It is characterized by using a machine-learned model as data, referring to an automatically generated program knowledge database in which the input is a program code or a processing operation to be realized by the program code, and the output is the structured pattern.
  • FIG. 2 is a diagram for explaining data stored in a semantic conversion database (DB);
  • FIG. FIG. 4 is a diagram for explaining data stored in a program code DB;
  • FIG. 4 is a diagram for explaining data stored in an automatic program generation knowledge DB;
  • FIG. 13 is another diagram for explaining data stored in the automatically generated program knowledge DB;
  • 4 is a flowchart for explaining an operation example of the program code automatic generation system to which the present invention is applied;
  • FIG. 10 is a diagram showing an example of using learning data by artificial intelligence for a semantic conversion DB;
  • FIG. 10 is a diagram showing an example of using learning data by artificial intelligence for a program code DB;
  • FIG. 10 is a diagram showing an example of using learning data by artificial intelligence for an automatically generated program knowledge DB;
  • FIG. 1 is a schematic diagram showing the overall configuration of a program code automatic generation system 100 according to this embodiment.
  • the automatic program code generation system 100 is not just a work assistance, but a system that fundamentally changes the mechanism of program development, and in the near future, it is possible to avoid the drastic impact on society of the chronic shortage of SE engineers.
  • the program code automatic generation system 100 automatically generates program codes for executing work, thereby performing various work processes (e.g., delivery of e-mail, collection of progress of workers, Various data processing such as file management, file transfer, etc.) can be automatically performed on a computer.
  • the automatic program code generation system 100 can set the automatic generation of the program code particularly by voice or text. It is also possible for users who use the software to manage business operations, etc., to easily realize automatic generation of program codes for causing computers to automatically perform various business processing.
  • the automatic program code generation system 100 includes an automatic program code generation device 1, and the user may use the automatic program code generation device 1.
  • the automatic program code generation system 100 may include, for example, a terminal 2 connected to the automatic program code generation device 1 via a communication network 4 , and the user may use the automatic program code generation device 1 via the terminal 2 .
  • the automatic program code generation system 100 includes, for example, a server 3 connected to the automatic program code generation device 1 via a communication network 4, and a user can exchange various information with the server 3 via the automatic program code generation device 1 or the terminal 2. Each means may be realized by transmission and reception of .
  • Program code automatic generation device 1 Known electronic devices such as servers, personal computers, smart phones, tablet terminals, and wearable terminals are used as the program code automatic generation device 1 .
  • the program code automatic generation device 1 serves as the core of the cloud server.
  • the program code automatic generation device 1 is composed of a server, a personal computer (PC), a smartphone, a tablet terminal, a wearable terminal, and the like. Each function of the program code automatic generation device 1 is implemented by the CPU using the RAM as a work area and executing a program stored in a storage unit or the like. Also, part of each function may be controlled by artificial intelligence.
  • the artificial intelligence referred to herein may be based on any known artificial intelligence technology.
  • the program code automatic generation device 1 acquires text data from documents or conversational sentences.
  • the acquisition unit uses a known voice recognition technology (for example, voice recognition technology) to extract text data from the voice received via the microphone. Generate.
  • voice recognition technology for example, voice recognition technology
  • cloud-type speech recognition technology may be used as the speech recognition technology via the communication network 4, for example.
  • the program code automatic generation device 1 acquires the text data from a character string in the document written on a paper medium or an electronic medium.
  • a character string read from a paper medium may be recognized by OCR technology and converted into text data, or a character string contained in a document made of an electronic medium may be acquired as text data as it is.
  • the text data acquired by this automatic program code generation device 1 should be acquired from the data in the database in the automatic program code generation device 1, the e-mail sentences in the server 3, document files, etc. may
  • acquisition of this text data may be performed on the terminal 2 side in addition to the case where the program code automatic generation device 1 itself performs the acquisition.
  • the terminal 2 must be equipped with a voice recognition function for obtaining text data from voice received via a microphone, or an OCR function for recognizing character strings from paper media. be.
  • Terminal 2 for example, a known electronic device such as a server, PC, smart phone, tablet terminal, or wearable terminal is used.
  • the terminal 2 may have at least part of the same configuration and functions as the program code automatic generation device 1, for example.
  • a plurality of terminals 2 may be provided, and each terminal 2 may be connected to the program code automatic generation device 1 via a communication network 4 .
  • the communication network 4 is an Internet network or the like to which the program code automatic generation device 1 is connected via a communication circuit.
  • the communication network 4 may be composed of a so-called optical fiber communication network.
  • the communication network 4 may be realized by a known communication network such as a wireless communication network, in addition to the wired communication network.
  • ⁇ Server 3> Various information is stored in the server 3, for example.
  • the server 3 accumulates various kinds of information sent from the program code automatic generation device 1 or the like via the communication network 4, for example.
  • the server 3 may store, for example, the same information as the storage unit of the automatic program code generation device 1 , and transmit/receive various information to/from the automatic program code generation device 1 and the like via the communication network 4 . That is, in the automatic program code generation system 100 , the server 3 may be used instead of the automatic program code generation device 1 or the storage unit of the automatic program code generation device 1 .
  • a semantic conversion database (DB) 31 a program code database (DB) 32, a program grammar analysis database (DB) 33, and a program automatically generated knowledge database (DB) 34 are constructed in the server 3.
  • the semantic conversion database (DB) 31 stores meanings associated with words, pointing actions, pointing actions, and related words.
  • Words include nouns, noun phrases, adjectives, adverbs, and other words contained in text data that make up the constituent elements of any sentence, excluding verbs. Each of these words forms one intended action by being dependent on the indicated action.
  • the instruction action is a verb included in the text data. Dependence of words on this verb forms one intended action.
  • Meanings are associated with such words and instructive actions.
  • the meaning here indicates a semantic concept that is actually specified through words and pointing actions.
  • the meaning does not simply indicate the intention of conversation used in everyday life, but rather indicates a suitable meaning for determining the program code.
  • Such pointing actions, words, and meanings all constitute the context of the text data. That is, pointing actions, words, and meanings can be thought of as connected to the context of what the text data indicates.
  • the context is not limited to being first formed by the pointing action, the word, and the meaning, but may be formed by at least one of the pointing action, the word, and the meaning.
  • FIG. 2(b) shows the context in the text data "move data".
  • the word is “data” and the command action is "output”.
  • Various semantic concepts such as “copy (data)” and “move (data)” can be conceived.
  • the meaning conversion DB 31 all possible meanings are associated with this instruction action or word.
  • FIG. 2(c) also shows the context in the text data "Show me the output data", and various semantic concepts can be recollected for one combination of words and instruction actions. .
  • the meaning conversion DB 31 all possible meanings are associated with this instruction action or word.
  • words such as "communication line”, “screen”, “printer”, etc., which can narrow down the semantic concept are included, such words are not included. It is possible to narrow down the meaning associated with each word or instruction action that includes such phrases.
  • the program code DB 32 stores templates in which program codes are linked to each context.
  • the program code corresponding to the intended processing operation included in the context is linked.
  • the context consists of a simple instruction action or words only
  • a program code is associated with each instruction action or word, as shown in FIG. 3(a).
  • the context is assigned an instruction action, a word, or a combination of an instruction action and at least a word depending on the instruction action, and furthermore, a meaning is assigned
  • a program code is associated with each meaning.
  • the program code DB 32 can be said to be a database that can identify the program code necessary to execute the intended processing operation included in the context, if the context can be identified.
  • multiple contexts may exist for a single program code.
  • a plurality of contexts may be associated with the one program code.
  • Such a program code DB 32 pre-builds a template that associates context and program code for each programming language. Further, the program code DB 32 is in a state in which all instruction words (program codes) for each programming language are associated with contexts (instruction actions, words, meanings, etc.). As a result, since each program code of all program languages is associated with the context, it becomes possible to search for the program code corresponding to the context for all program languages.
  • the program grammar analysis DB 33 is a database for checking whether the program code generated by referring to the program code DB 32 in the program code automatic generation device 1 is grammatically correct.
  • the program grammar analysis DB 33 checks the spelling and description method of the generated program code, the arrangement of instruction words, whether or not necessary symbols and marks are inserted, whether or not arguments are correctly inserted, etc., to ensure that the program operates correctly. It contains the information you need.
  • the program grammar analysis DB 33 may store, for example, electronic data of grammars for each programming language. Program language grammars usually explain mainly how to write program code, but since the correct grammar of program code is described, by referring to this, the automatic program code generation device It is possible to confirm whether the program code generated in 1 is grammatically correct.
  • the program grammar analysis DB 33 may also record rule settings that enable correct/wrong judgment of grammars corresponding to individual program codes (instructions). In such a case, for example, rules that enable correctness judgment such as spelling, description order, parameter contents, etc. may be recorded in advance, and an algorithm for correctness judgment based on the rules may be recorded. good. Note that the program grammar analysis DB 33 may store in advance information on rules and regulations necessary for normal grammar checks performed by a compiler or an assembler, and correct grammar.
  • the automatically generated program knowledge DB 34 is a database in which program codes or processing operations to be realized by the program codes are associated with streamlined program structuring patterns.
  • This automatic program generation knowledge DB 34 is used by a skilled IT engineer who has a high level of skill to program code a processing operation to be implemented. Information about structuring or knowledge about is recorded.
  • rules (definitions) of such structured patterns are set by skilled IT engineers.
  • a skilled IT engineer when displaying a multi-line table repeatedly on the screen, a skilled IT engineer can structure the program code by determining the number of repetitions and the position and performing loop processing to make it more efficient. In many cases, a short program code is drafted.
  • a structured program can be coded by making rules (codes) from the experiences and technique samples of skilled IT engineers and registering them in the automatic program generation knowledge DB 34 .
  • this automatic program generation knowledge DB 34 structural patterns of a number of efficient programs basically converted into templates are registered.
  • the efficient program structuring pattern referred to here reflects the experience and knowledge of the skilled IT engineer described above.
  • FIG. 4 shows an example in which normal program code and streamlined program code are stored in the automatic program generation knowledge DB 34 when displaying sales data for each product on the screen.
  • processing operation P1 to be implemented is to display the unit price, actual sales quantity, sales, and total sales for each product name in tabular form, then the individual product For each, the unit price and volume sales are aggregated and displayed as an execution command. As a result, the number of lines in the program increases, and the entire program becomes long and redundant.
  • the sales tabulation and display processing are performed collectively rather than for each individual product, and the display processing is also structured based on common logic. , and the data for display is listed in item_list at the end.
  • the program indicated by the structured pattern P3 it is possible to display the sales data for each product as the processing operation P1 to be realized on the screen in the same manner as the program code P2.
  • this structured pattern P3 reflects the knowledge and experience of a skilled IT engineer, it is possible to efficiently implement the same processing operation P1 to be executed with a short number of lines. can be done.
  • structured patterns P3 are recorded for such processing operation P1 and program code P2 to be realized.
  • program codes P2 and corresponding structured patterns P3 are linked to each other and recorded for each of the diverse processing operations P1 to be implemented. .
  • the processing operation P1 to be realized and the program code P2 corresponding thereto are linked.
  • the structured patterns P3 are associated with each other is shown, it is not limited to this.
  • the structured pattern P3 is directly associated with it, and the general program code P2 may be omitted.
  • the general program code P2 and the structured pattern P3 may be associated with each other, and the processing operation P1 to be realized may not be associated with them.
  • an algorithm for converting a general program code P2 into a streamlined program P3 is associated as a structured pattern with the processing operation P1 to be realized by the program code. There may be.
  • the general program code P2 before efficiency improvement can be converted into the efficient program P3 by reading the algorithm associated with it. becomes possible.
  • Such an algorithm was acquired from a skilled IT engineer, such as various rules, habits, knowledge, know-how, patterns, etc., in transitioning from the general program code P2 to the efficient program P3, and was made into an algorithm. can be anything.
  • the automatic program generation knowledge DB 34 concepts such as various rules, habits, knowledge, know-how, and patterns for transitioning from the processing operation P1 to be realized to the streamlined program P3 are recorded.
  • concepts such as various rules, habits, knowledge, know-how, and patterns for transitioning from the processing operation P1 to be realized to the streamlined program P3 are recorded.
  • Conceptual information such as whether to create a program consisting of various procedures, what concept the program is drafted, etc. may be stored.
  • FIG. 5 shows a general program code P2 before efficiency improvement and a general program code P2 before efficiency improvement, in an example of executing a process corresponding to an error when an error occurs when the processing operation P1 to be realized performs various processes.
  • 2 shows the program P3 that has been processed.
  • the general program code P2 since error processing codes are written at many places in the program, the code is long and redundant as a whole.
  • structured patterns P3 may be recorded for processing operations P1 and program codes P2 to be implemented in the same manner. Further, if there is a processing operation P1 to be realized, the structured pattern P3 may be directly linked to it, or only the general program code P2 and the structured pattern P3 are linked to each other. may Further, an algorithm for converting a general program code P2 into a streamlined program P3 may be associated as a structured pattern with the processing operation P1 to be implemented.
  • structured patterns P3 are accumulated in this automatic program generation knowledge DB 34 for each processing operation P1 or program code P2 to be implemented.
  • multiple types of structured patterns P3 may be associated with one processing operation P1 or program code P2.
  • multiple types of processing operations P1 or program codes P2 may be associated with one structured pattern P3.
  • this automatic program generation knowledge DB 34 may be associated not only with typical program code patterns, but also with some non-fixed patterns.
  • step S11 After starting the processing operation as shown in FIG. 6, first, as shown in step S11, it is confirmed whether the processing has ended. This confirmation may be made by inquiring directly to the user via the automatic program code generation device 1 or the terminal 2 whether or not to end the processing, or by automatically inquiring whether or not the processing is ended on the automatic program code generation system 100 side. You may make it discriminate
  • step S12 move to step S12 and acquire text data from the document or conversational sentence.
  • text data is generated using a known voice recognition technology (for example, phoneme recognition technology).
  • text data converted into electronic data is acquired by the program code automatic generation device 1, it is used as it is.
  • the text data converted into electronic data may be, for example, e-mails, information bulletin boards used inside or outside the company, and postings on various sites as they are.
  • the terminal 2 or the program code automatic generation device 1 acquires text data at each timing of input by the user, and may acquire, for example, multiple pieces of text data accumulated over a certain period of time at once.
  • a known technique can be used to generate text data from non-text data input via the terminal 2 or the program code automatic generation device 1 .
  • the text data obtained in this manner is temporarily stored in the automatic program code generation device 1 .
  • step S13 the text data acquired in S12 and temporarily stored in the automatic program code generation device 1 is read, and the context is extracted by natural language analysis.
  • This natural language analysis is mainly performed by the program code automatic generation device 1 .
  • This natural language analysis may use any known natural language analysis technique, including morphological analysis and syntactic analysis.
  • the text data “move data” can be decomposed into a word consisting of "data” and an instruction action consisting of "move”.
  • the text “Show me the output data” can be decomposed into the word “output data” and the instruction action “show me.” That is, it is possible to extract the context from the text data through the combination of words that depend on the verb that is composed of the pointing action.
  • the context is not limited to the case of extracting a combination of an instruction action and a word related thereto, and the context may be extracted only from an instruction action or from only a word.
  • the text data consists of only verbs or only words such as "show me” or "file A”
  • only the pointing action or only the words are extracted.
  • step S13 the process proceeds to step S14, and if the analysis is correct, the process proceeds to step S15. On the other hand, if the natural language analysis could not be performed correctly, the process returns to step S11.
  • step S15 the semantic conversion DB 31 is referred to, and the meaning of the words to be executed by the program is redefined from the context extracted in step S13.
  • step S15 the context contained in the text data is converted into a suitable meaning for determining the program code.
  • the meaning conversion is performed by referring to the meaning conversion DB 31. For example, as shown in FIG. Convert to “read out”. Similarly, if the instruction action is “inquire” and the word is “screen”, the meaning is converted to "show data”. Also, as shown in FIGS. 2(b) and 2(c), when a plurality of meanings are associated with one instruction action and word, all of these associated meanings are searched. Alternatively, only some of these meanings may be searched. Also, when only pointing actions or only words are extracted in step S13, the meaning conversion DB 31 is similarly referred to, and the meaning associated with the pointing actions or words is extracted. In step S15, the meaning thus extracted is defined as the context of the text data, and the process proceeds to step S16.
  • step S15 the processing operation of redefining the meaning of the words to be executed by the program in step S15 is not essential and may be omitted.
  • the word, pointing action, pointing action, and related words extracted in step S13 are defined as the context of the text data, and the process proceeds to step S16.
  • step S16 it is determined whether or not the context of the text data has been correctly defined through the semantic conversion in step S15. As a result, when the context of the text data can be correctly defined, the process proceeds to step S17. On the other hand, if the context of the text data could not be defined correctly, the process returns to step S15. Note that step S16 may be omitted if step S15 itself is omitted, or if the processing operation for redefining the meaning of the words to be executed by the program is not performed in step S15.
  • program code is automatically generated based on the context of the text data defined in step S15.
  • the program code DB 32 stores program codes corresponding to contexts (words, pointing actions, pointing actions and related words and meanings) in association with each other. Therefore, in step S17, the program code DB 32 is referenced to specify the program code corresponding to the context of the text data defined in step S15. At this time, the specified program code itself may be the program code to be automatically generated, but depending on the context, some program codes may be combined, or variables, symbols, arguments, etc. good too.
  • the program code DB 32 is similarly referred to when performing this combination or appropriation.
  • the program code DB 32 is referenced and extracted, and the program code is automatically generated based on this. If the context of the text data defined in step S15 includes "screen”, assign "text xxxx” etc. as an instruction word corresponding to this by referring to the program code DB 32, and based on this, program code is generated. Generate automatically. Similarly, if the context of the text data defined in step S15 includes "file”, the instruction word corresponding to this is assigned with reference to the program code DB 32, such as "import xxxx file.write". Automatically generate program code based on
  • the text data is composed of such instruction actions and words. If so, it may be automatically generated by assigning program codes associated with a plurality of corresponding meanings. In such a case, multiple program codes are automatically generated for one text data.
  • the text data is "output the input data to the screen and USB”
  • the instruction action is “output” as a result of natural language analysis
  • the words are “input data”, “screen”, “USB ”, referring to the program code DB 32 shown in FIG.
  • the meaning of the word "output” is analyzed to determine and generate the program code.
  • the program code may be read from the program code DB 32 and automatically generated.
  • the program grammar analysis DB 33 is referenced to check whether the grammar of the automatically generated program code is correct or incorrect.
  • the program grammar analysis DB 33 may store grammar electronic data for each programming language. By referring to this, the correctness of the grammar of the automatically generated program code can be checked. can be done. In practice, this automatically generated program code is compared with the electronic data of the grammar book. If it is written in a way that deviates from the description of the book, it can be judged to be grammatically incorrect.
  • imperative words are continuous in the automatically generated program code, refer to the part where the grammar of the imperative word is described in the content of the grammar stored in the program grammar analysis DB 33.
  • the grammar book does not describe a series of imperatives in succession as a correct example, it can be determined that the grammar is grammatically incorrect.
  • the automatically generated program code does not contain """ after "print”
  • the grammar book does not include an example where the information to be displayed is enclosed in """ after "print” as a correct example, it can be judged to be grammatically incorrect. can.
  • the program grammar analysis DB 33 when the rule setting that enables correct/wrong judgment of the grammar corresponding to the individual program code (command word) is recorded, the correct/wrong judgment is performed based on the rule setting. good too. Also, if an algorithm for making a correct/wrong judgment based on the rule is recorded, the judgment may be made based on that algorithm.
  • a normal grammar check performed by a compiler or assembler may be performed.
  • the rules and regulations necessary for normal grammatical checks performed by the compiler and assembler, stored in the program grammar analysis DB 33, and information on correct grammar are referred to.
  • step S17 If it is determined that the program code is grammatically incorrect as a result of checking correctness in the program grammar analysis DB 33, correction may be made in step S17.
  • the program grammar analysis DB 33 may be referred to in the same way, the description of the correct grammar may be quoted, and the program code may be corrected based on this.
  • the correctness of the grammar may be checked by referring to the program grammar analysis DB 33 by analyzing the grammar of the program to be generated.
  • the program to be generated here includes program code generated based on the program code DB 32, but is not limited to this. Also includes streamlined programs. That is, the correctness of the grammar is checked by referring to the program grammar analysis DB 33, and the program code generated based on the program code DB 32 is rewritten with reference to the program automatically generated knowledge DB 34 in step S19, which will be described later. Any of the programs provided can be covered.
  • step S17 the program grammar analysis DB 33 is not required to determine whether the program grammar is correct or incorrect, and may be omitted.
  • step S17 When each process in step S17 is completed, the process proceeds to step S18. In step S18, it is determined whether or not the program code is correct. If it is correct, the process returns to step S19. If not, the process returns to step S17.
  • step S19 the automatically generated program knowledge DB 34 is referred to, and the program code grammatically checked in step S17 is rewritten into a streamlined program.
  • the automatic program generation knowledge DB 34 stores the structured pattern P3 for the processing operation P1 to be realized and the program code P2, the structured pattern P3 for the processing operation P1 to be realized, the structured pattern P3 for the program code P2, Algorithms are stored for transforming a general program code P2 into a streamlined program P3 for a processing operation P1 to be implemented.
  • the structuring can be performed by referring to the automatic program generation knowledge DB 34 as shown in FIG.
  • the pattern P3 can be searched.
  • step S19 the program code automatically generated in step S17 exists. Therefore, if there is a program code automatically generated in step S17, the structured pattern P3 associated with the most similar program code P2 can be read out from this automatically generated program knowledge DB34. If the structured pattern P3 itself is composed of streamlined program code, this itself can be used as a new program to be rewritten. Further, if the structured pattern P3 read from the automatically generated program knowledge DB 34 differs from the program code automatically generated in step S17 in part, such as variables, expressions, definitions, arguments, etc., the structured pattern P3 Alternatively, a new program to be rewritten may be generated by correcting the different variables and expressions. That is, in step S19, the program is rewritten by correcting the program code automatically generated in step S17 based on the structured pattern P3 associated with the program code P2 that is most similar to the program code. may be
  • the rewriting of the program in step S19 is not limited to being performed based on the structured pattern P3 associated with the program code P2 that is most similar to the program code automatically generated in step S17.
  • a processing operation to be performed in the program code automatically generated in step S17 may be identified and compared with the processing operation P1 recorded in the automatically generated program knowledge DB 34 .
  • a data table is prepared in advance in which the pattern of the instruction word of the program and the processing operation P1 are linked, and automatically generated in step S17. It may be performed by extracting the instruction words of the program code and referring to the data table.
  • a data table in which the meaning and the processing operation P1 are directly linked may be prepared, and the meaning identified in step S15 may be identified by referring to the data table.
  • the program may be rewritten based on the structured pattern P3 associated therewith.
  • the transition pattern for converting the corresponding program code P2 to the structured pattern P3 is stored in the automatic program generation knowledge DB 34, so this transition pattern is read out. , the program code automatically generated in step S17 may be rewritten accordingly.
  • the automatic program generation knowledge DB 34 if an algorithm for converting the pre-efficient program code P2 to the streamlined program is associated as a structured pattern P3, the program code automatically generated in step S17 The algorithm associated with program code P2 that is most similar to P2 may be retrieved. Then, based on this read algorithm, the program code automatically generated in step S17 may be efficiently rewritten.
  • step S20 After rewriting the program in this automatically generated knowledge DB 34, the process moves to step S20, and it is confirmed whether code editing by an IT engineer or programmer is necessary. As a result, if code editing is required or if the request for code editing is received from the user side, the process proceeds to step S21. On the other hand, if code editing is unnecessary or if the user's request for code editing is not accepted, the process ends.
  • step S21 the program code rewritten in step S19 is edited by an IT engineer or programmer. In addition to manual editing of the program code, this code editing may be performed automatically by a well-known editing tool. After the code editing in step S21 is finished, the process returns to step S20, and if the code editing is no longer necessary, the process ends.
  • the program code for the intended business process is automatically generated in the system on the computer side through the processing operations described in steps S13 to S17. be able to. Therefore, it is possible to automatically generate a program code very easily and without the technical ability of a skilled IT engineer.
  • step S19 since the present invention can perform the structuring process in step S19, a short program code that reflects the knowledge and experience of a skilled IT engineer and is smooth and efficient can be automatically generated. It is possible to generate This will fundamentally change the system of program development and prevent the chronic shortage of IT engineers from having a huge impact on society in the near future.
  • a more efficient rewriting program can be generated in step S19. can be generated over a number of It is also possible to select the optimum one automatically or based on the user's intention from among the rewriting programs generated over a plurality of times, and it is possible to achieve more precise structuring.
  • step S19 itself can be omitted. good too.
  • step S17 when creating a program based on the program code DB 32, an efficient program is created instead of creating a general program code from the beginning. That is, a streamlined program is created directly without going through a general program.
  • the correctness of the grammar of the created program may be checked by referring to the program grammar analysis DB 33. That is, the directly created program may be included in the program to be generated as a target for checking whether the grammar is correct or not.
  • the semantic conversion DB 31 may use data learned by artificial intelligence, as shown in FIG.
  • the input data is composed of a word, an instruction action, an instruction action, and a word related thereto, and the output becomes the meaning.
  • the semantic conversion DB 31 is generated.
  • this learning data is referred to, and a matching search solution is obtained.
  • the program code DB 32 may use learning data by artificial intelligence, as shown in FIG.
  • the input data consists of contexts (words, pointing actions, pointing actions and related words, meanings, etc.), and the output is program code.
  • the program code DB 32 is generated by accumulating such learning data in advance. This learning data is referred to during the automatic generation of the program code in step S17, and the program code as a search solution suitable for the context is extracted.
  • the automatically generated program knowledge DB 34 may use learning data by artificial intelligence, as shown in FIG.
  • the input data are the processing operations P1 and/or the program code P2 to be implemented and the output is the structured pattern P3.
  • the automatic program generation knowledge DB 34 is generated. Then, this learning data is referenced when the structuring in step S19 is executed, and the structuring pattern P3 as a search solution suitable for the processing operation and/or program code to be realized is extracted.
  • program grammar analysis DB 33 may similarly use learning data from artificial intelligence.

Abstract

[Problem] To automatically generate a short program code in which knowledge and experience of a skilled IT engineer is reflected and which is smooth and streamlined. [Solution] The present invention involves: acquiring text data from a document or a conversation sentence; performing natural language analysis of the acquired text data so as to extract contexts; referring to a program code database DB32 in which one or more program codes are stored in association with each of the contexts, a program grammar analysis database DB33 in which a grammar textbook of a program language is recorded, and a program automatic generation knowledge database DB34 in which a streamlined program is associated with a process operation to be realized; and generating one or more programs according to each of the extracted contexts.

Description

プログラムコード自動生成システムProgram code automatic generation system
 本発明は、プログラム開発の仕組みを根本的に変えるプログラムコード自動生成システムに関するものである。 The present invention relates to an automatic program code generation system that fundamentally changes the mechanism of program development.
 従来、プログラム開発を行う場合には、システムエンジニア(SE)やプログラマーを始めとするIT技術者が、仕様書やそれに準ずるドキュメントにも基づいて、様々なプログラム言語によりプログラムコードをコーディングしている。 Conventionally, when developing programs, IT engineers, including system engineers (SE) and programmers, code program codes in various programming languages based on specifications and similar documents.
 近年では、世界的に深刻なIT技術者不足に対応するため、ローコードあるいはノーコードプログラミングと称するプログラム動作を定義したテンプレートの組み合わせにより簡易な定型プログラムを作成したり、RPAの様な定型作業手順を設定し、業務を行うツール等を活用しプログラム開発工数を削減している。 In recent years, in order to deal with the serious shortage of IT engineers worldwide, we have created simple fixed programs by combining templates that define program operations called low-code or no-code programming, and fixed work procedures such as RPA. and reduce the number of man-hours required for program development by utilizing tools for business operations.
 しかしながら、このようなツールは何れもIT技術者が設定や構築を行わなければならず、また本格的な業務システムの構築や高度なプログラム開発は、このようなツールでは不可能である。このため、結局のところ、本格的なシステム構築やプログラム開発は、高度な技術をもった熟練のIT技術者に依存せざるを得ず、開発工数がなかなか削減できないのが現状であった。 However, all such tools must be set up and built by IT engineers, and full-scale business system construction and advanced program development are impossible with such tools. For this reason, after all, full-scale system construction and program development have to rely on skilled IT engineers with advanced skills, and the current situation is that it is difficult to reduce development man-hours.
 このため、近年において、プログラムコードを極めて容易に、しかも人手を介することなく自動的に生成することが可能なプログラムコード自動生成システムが提案されている(例えば、特許文献1参照。)。この特許文献1の開示技術によれば、取得した音声に基づいくテキストデータから指示動作と、これに係り受けする格成分を抽出し、人工知能を利用して、最適な実行動作命令、実行動作対象を探索する。そして、この探索した実行動作命令、実行動作対象をプログラムコードの基本構文に代入することでプログラムコードを生成する。 For this reason, in recent years, an automatic program code generation system has been proposed that is capable of automatically generating program code extremely easily and without manual intervention (see Patent Document 1, for example). According to the technique disclosed in Patent Document 1, an instruction action and a case component related to the instruction action are extracted from text data based on acquired speech, and artificial intelligence is used to obtain an optimal execution action instruction and execution action. Explore the target. Then, the program code is generated by substituting the searched execution operation instruction and the execution operation target into the basic syntax of the program code.
特許第6889448号公報Japanese Patent No. 6889448
 しかしながら、上述した特許文献1の開示技術では、プログラムを自動生成する上で、単にプログラムの基本構文に実行動作命令に代入しているにすぎないため、実際に複雑な業務処理のプログラムを自動生成させた場合に、できあがるプログラムコード全体が冗長なものとなってしまう場合が多い。プログラムコードが冗長になると、プログラムの読み出しや処理動作に時間を要してしまい、意図している業務処理を円滑に実行させることが難しくなる。このため、冗長なプログラムを自動生成させるのではなく、同じ業務処理であっても、まさしく熟練のIT技術者だけが起案できるような、スムーズで効率化が図られた、短いプログラムコードを自動生成するツールが従来より望まれていた。 However, in the technique disclosed in Patent Document 1 described above, when automatically generating a program, it merely substitutes the execution operation instructions into the basic syntax of the program, so that a program of actually complex business processing can be automatically generated. In many cases, the resulting program code becomes redundant. If the program code becomes redundant, it takes time to read the program and process operations, making it difficult to smoothly execute intended business processes. For this reason, instead of automatically generating redundant programs, even for the same business process, it automatically generates short, smooth and efficient program code that only skilled IT engineers can draft. There has long been a desire for a tool that
 そこで本発明は、上述した問題点に鑑みて案出されたものであり、その目的とするところは、業務処理をコンピュータのシステムにおいて自動的に実行していくために、その業務処理を実行するためのプログラムコードを自動生成する際において、熟練のIT技術者の知識や経験が反映された、スムーズで効率化が図られた短いプログラムコードを自動生成することが可能であり、プログラム開発の仕組みを根本的に変え、近い将来において起こりえる慢性的なSE技術者不足が社会に甚大な影響を与えることを回避できるプログラムコード自動生成システムを提供することにある。 Accordingly, the present invention has been devised in view of the above-described problems, and its object is to automatically execute business processing in a computer system. It is possible to automatically generate short, smooth and efficient program code that reflects the knowledge and experience of experienced IT engineers. To provide a program code automatic generation system that can fundamentally change the system and prevent the drastic impact on society of a chronic shortage of SE engineers that can occur in the near future.
 第1発明に係るプログラムコード自動生成システムは、文書又は会話文からテキストデータを取得するテキストデータ取得手段と、上記テキストデータ取得手段により取得されたテキストデータを自然言語解析することにより、文脈を抽出する文脈抽出手段と、各文脈に対して1以上のプログラムコードが関連付けて記憶されるプログラムコードデータベースと、プログラム言語の文法書が記録されたプログラム文法解析データベースとを参照し、上記文脈抽出手段により抽出された文脈に応じた1以上のプログラムコードを割り当てるコード割当手段と、プログラムコード又は当該プログラムコードにより実現すべき処理動作に対して、効率化されたプログラムの構造化パターンが関連付けられたプログラム自動生成知識データベースを参照し、上記コード割当手段により割り当てられたプログラムコードを効率化されたプログラムに書き換えるコード効率化手段とを備えることを特徴とする。 A program code automatic generation system according to the first invention includes text data acquisition means for acquiring text data from a document or conversational sentence, and context is extracted by performing natural language analysis on the text data acquired by the text data acquisition means. a program code database in which one or more program codes are associated with each context; and a program grammar analysis database in which programming language grammars are recorded. Code assigning means for assigning one or more program codes according to the extracted context, and program automation in which streamlined program structuring patterns are associated with program codes or processing operations to be realized by the program codes. A code efficiency improvement means for referring to the generated knowledge database and rewriting the program code assigned by the code assignment means into an efficient program.
 第2発明に係るプログラムコード自動生成システムは、文書又は会話文からテキストデータを取得するテキストデータ取得手段と、上記テキストデータ取得手段により取得されたテキストデータを自然言語解析することにより、文脈を抽出する文脈抽出手段と、各文脈に対して1以上のプログラムコードが関連付けて記憶されるプログラムコードデータベースと、プログラム言語の文法書が記録されたプログラム文法解析データベースと、実現すべき処理動作に対して効率化されたプログラムが関連付けられたプログラム自動生成知識データベースとを参照し、上記文脈抽出手段により抽出された文脈に応じた1以上のプログラムを生成するコード割当手段とを備えることを特徴とする。 A program code automatic generation system according to a second aspect of the present invention includes text data acquisition means for acquiring text data from a document or conversational sentence, and natural language analysis of the text data acquired by the text data acquisition means to extract context. a program code database in which one or more program codes are stored in association with each context; a program grammar analysis database in which grammars of programming languages are recorded; A code assigning means for referring to a program automatically generated knowledge database associated with the streamlined program and generating one or more programs according to the context extracted by the context extracting means.
 第3発明に係るプログラムコード自動生成システムは、第1発明又は第2発明において、上記文脈抽出手段は、上記自然言語解析することにより、単語、指示動作、指示動作及びこれに係り受けする単語の何れかを抽出することにより、上記文脈を抽出することを特徴とする。 A program code automatic generation system according to a third invention is characterized in that, in the first invention or the second invention, the context extraction means extracts a word, an instruction action, an instruction action, and words related thereto by performing the natural language analysis. The context is extracted by extracting any one of them.
 第4発明に係るプログラムコード自動生成システムは、第3発明において、上記文脈抽出手段は、単語、指示動作、指示動作及びこれに係り受けする単語の何れかと、意味とが互いに関連付けて記憶される意味変換データベースを参照し、新たに抽出した上記単語、指示動作、指示動作及びこれに係り受けする単語の何れかと関連する意味を探索することにより、上記文脈を抽出することを特徴とする。 A program code automatic generation system according to a fourth aspect of the invention is the program code automatic generation system according to the third aspect of the invention, wherein the context extracting means stores a word, a pointing action, a pointing action, and a word related thereto in association with a meaning. The context is extracted by referring to a semantic conversion database and searching for meanings associated with any of the newly extracted words, pointing actions, pointing actions, and words related thereto.
 第5発明に係るプログラムコード自動生成システムは、第1発明又は第2発明において、上記コード割当手段は、上記プログラム文法解析データベースを参照し、生成すべきプログラムの文法を解析することにより、その正誤をチェックすることを特徴とする。 A program code automatic generation system according to a fifth invention is the program code automatic generation system according to the first invention or the second invention, wherein the code allocation means refers to the program grammar analysis database and analyzes the grammar of the program to be generated to determine whether the program is correct or not. is characterized by checking
 第6発明に係るプログラムコード自動生成システムは、第1発明において、上記コード効率化手段は、プログラムコードに対して、効率化されたプログラムが関連付けられたプログラム自動生成知識データベースを参照し、上記コード割当手段により割り当てられたプログラムコードに関連する上記効率化されたプログラムを抽出し、これに書き換えることを特徴とする。 A program code automatic generation system according to a sixth invention is, in the first invention, wherein the code efficiency means refers to an automatic program generation knowledge database in which the streamlined program is associated with the program code, and the code It is characterized by extracting the streamlined program related to the program code assigned by the assigning means and rewriting to this.
 第7発明に係るプログラムコード自動生成システムは、第1発明において、上記コード効率化手段は、プログラムコードにより実現すべき処理動作に対して、効率化前の上記プログラムコードから効率化されたプログラムへ変換するためのアルゴリズムが上記構造化パターンとして関連付けられたプログラム自動生成知識データベースを参照し、上記コード割当手段により割り当てられたプログラムコードにより実現すべき処理動作に関連付けられた上記構造化パターンとしてのアルゴリズムに基づいて、上記書き換えを行うことを特徴とする。 A program code automatic generation system according to a seventh aspect of the present invention is the first aspect, wherein the code efficiency improvement means converts the program code before the efficiency improvement to the efficient program for the processing operation to be realized by the program code. The algorithm as the structured pattern associated with the processing operation to be realized by the program code assigned by the code assigning means, referring to the automatically generated program knowledge database associated with the algorithm for conversion as the structured pattern The rewriting is performed based on the above.
 第8発明に係るプログラムコード自動生成システムは、第3発明において、上記文脈抽出手段は、単語、指示動作、指示動作及びこれに係り受けする単語の何れかと、意味とを教師データとして機械学習されたモデルを用い、入力を単語、指示動作、指示動作及びこれに係り受けする単語の何れかとし、出力を意味とする意味変換データベースを参照することを特徴とする。 A program code automatic generation system according to an eighth aspect of the present invention is the third aspect, wherein the context extracting means is machine-learned using a word, an instruction action, an instruction action, and a word related thereto, and a meaning thereof as training data. This model is characterized by using a model, referring to a semantic conversion database in which an input is a word, a pointing action, a pointing action, or a word dependent on this, and an output is a meaning.
 第9発明に係るプログラムコード自動生成システムは、第1発明~第8発明の何れかにおいて、上記コード割当手段は、文脈とプログラムコードとを教師データとして機械学習されたモデルを用い、入力を文脈とし、出力をプログラムコードとするプログラムコードデータベースを参照することを特徴とする。 A program code automatic generation system according to a ninth invention is the program code automatic generation system according to any one of the first invention to the eighth invention, wherein the code assigning means uses a model machine-learned using the context and the program code as teacher data, and converts the input into the context. and refers to a program code database whose output is a program code.
 第10発明に係るプログラムコード自動生成システムは、第1発明において、上記コード効率化手段は、プログラムコード又は当該プログラムコードにより実現すべき処理動作と、効率化されたプログラムの構造化パターンとを教師データとして機械学習されたモデルを用い、入力をプログラムコード又は当該プログラムコードにより実現すべき処理動作とし、出力を上記構造化パターンとするプログラム自動生成知識データベースを参照することを特徴とする。  A program code automatic generation system according to a tenth aspect of the present invention is, in the first aspect, wherein the code efficiency improvement means teaches the program code or the processing operation to be realized by the program code and the structuring pattern of the streamlined program. It is characterized by using a machine-learned model as data, referring to an automatically generated program knowledge database in which the input is a program code or a processing operation to be realized by the program code, and the output is the structured pattern. 
 上述した発明によれば、意図している業務処理をコンピュータ側のシステムにおいて自動的にプログラムコードを生成することができる。このため、極めて容易に、しかも熟練のIT技術者のような技術力がなくても、自動的にプログラムコードを生成することが可能となる。 According to the invention described above, it is possible to automatically generate program code for intended business processing in a computer-side system. Therefore, it is possible to automatically generate a program code very easily and without the technical ability of a skilled IT engineer.
 これに加えて、効率化されたプログラムの構造化パターンが関連付けられたプログラム自動生成知識データベースを参照し、プログラムコードを効率化されたプログラムに書き換えることができる。その結果、熟練のIT技術者の知識や経験が反映された、スムーズで効率化が図られた短いプログラムコードを自動生成することが可能となる。これにより、プログラム開発の仕組みを根本的に変え、近い将来、慢性的なIT技術者不足が社会に甚大な影響を与えることを回避できる。 In addition to this, it is possible to refer to the automatically generated knowledge database associated with the structural patterns of streamlined programs and rewrite the program code into streamlined programs. As a result, it is possible to automatically generate a smooth and efficient short program code that reflects the knowledge and experience of a skilled IT engineer. This will fundamentally change the system of program development and prevent the chronic shortage of IT engineers from having a huge impact on society in the near future.
本発明を適用したプログラムコード自動生成システムの構成の一例を示す図である。It is a figure which shows an example of a structure of the program code automatic generation system to which this invention is applied. 意味変換データベース(DB)に格納されているデータについて説明するための図である。FIG. 2 is a diagram for explaining data stored in a semantic conversion database (DB); FIG. プログラムコードDBに格納されているデータについて説明するための図である。FIG. 4 is a diagram for explaining data stored in a program code DB; FIG. プログラム自動生成知識DBに格納されているデータについて説明するための図である。FIG. 4 is a diagram for explaining data stored in an automatic program generation knowledge DB; FIG. プログラム自動生成知識DBに格納されているデータについて説明するための他の図である。FIG. 13 is another diagram for explaining data stored in the automatically generated program knowledge DB; 本発明を適用したプログラムコード自動生成システムの動作例について説明するためのフローチャートである。4 is a flowchart for explaining an operation example of the program code automatic generation system to which the present invention is applied; 意味変換DBについて人工知能による学習データを利用する例について示す図である。FIG. 10 is a diagram showing an example of using learning data by artificial intelligence for a semantic conversion DB; プログラムコードDBについて人工知能による学習データを利用する例について示す図である。FIG. 10 is a diagram showing an example of using learning data by artificial intelligence for a program code DB; プログラム自動生成知識DBについて人工知能による学習データを利用する例について示す図である。FIG. 10 is a diagram showing an example of using learning data by artificial intelligence for an automatically generated program knowledge DB;
 以下、本発明を適用したプログラムコード自動生成システムについて、図面を参照しながら詳細に説明をする。 A program code automatic generation system to which the present invention is applied will be described in detail below with reference to the drawings.
(プログラムコード自動生成システム100)
 図1を参照して、本実施形態におけるプログラムコード自動生成システム100の構成の一例について説明する。図1は、本実施形態におけるプログラムコード自動生成システム100の全体の構成を示す模式図である。
(Program code automatic generation system 100)
An example of the configuration of a program code automatic generation system 100 according to this embodiment will be described with reference to FIG. FIG. 1 is a schematic diagram showing the overall configuration of a program code automatic generation system 100 according to this embodiment.
 プログラムコード自動生成システム100は、単なる業務補助ではなくプログラム開発の仕組みを根本的に変え、近い将来、慢性的なSE技術者不足が社会に甚大な影響を与えることを回避できるものである。 The automatic program code generation system 100 is not just a work assistance, but a system that fundamentally changes the mechanism of program development, and in the near future, it is possible to avoid the drastic impact on society of the chronic shortage of SE engineers.
 すなわち、プログラムコード自動生成システム100は、業務を実行するためのプログラムコードを自動生成することで、家庭や企業、官公庁内における各業務処理(例えば、メールの配信、作業者の進捗状況の収集、ファイル管理、ファイル転送等)の様々なデータ処理をコンピュータ上で自動的に行うことができる。プログラムコード自動生成システム100は、特にこのプログラムコードの自動生成を、音声又はテキストにより設定することができ、システム管理者等のような専門的知識を有しないユーザ(例えばプログラムコード自動生成システム100を利用して業務を管理する利用者等)においても、様々な業務処理をコンピュータに自動的に行わせるためのプログラムコードの自動生成を容易に実現することが可能となる。 In other words, the program code automatic generation system 100 automatically generates program codes for executing work, thereby performing various work processes (e.g., delivery of e-mail, collection of progress of workers, Various data processing such as file management, file transfer, etc.) can be automatically performed on a computer. The automatic program code generation system 100 can set the automatic generation of the program code particularly by voice or text. It is also possible for users who use the software to manage business operations, etc., to easily realize automatic generation of program codes for causing computers to automatically perform various business processing.
 プログラムコード自動生成システム100は、例えば図1に示すように、プログラムコード自動生成装置1を備え、ユーザがプログラムコード自動生成装置1を利用してもよい。プログラムコード自動生成システム100は、例えば通信網4を介してプログラムコード自動生成装置1と接続された端末2を備え、ユーザが端末2を介してプログラムコード自動生成装置1を利用してもよい。プログラムコード自動生成システム100は、例えば通信網4を介してプログラムコード自動生成装置1と接続されたサーバ3を備え、ユーザがプログラムコード自動生成装置1又は端末2を介してサーバ3との各種情報の送受信により、各手段を実現してもよい。 For example, as shown in FIG. 1, the automatic program code generation system 100 includes an automatic program code generation device 1, and the user may use the automatic program code generation device 1. The automatic program code generation system 100 may include, for example, a terminal 2 connected to the automatic program code generation device 1 via a communication network 4 , and the user may use the automatic program code generation device 1 via the terminal 2 . The automatic program code generation system 100 includes, for example, a server 3 connected to the automatic program code generation device 1 via a communication network 4, and a user can exchange various information with the server 3 via the automatic program code generation device 1 or the terminal 2. Each means may be realized by transmission and reception of .
 <プログラムコード自動生成装置1>
 プログラムコード自動生成装置1として、例えばサーバ、パーソナルコンピュータ、スマートフォン、タブレット端末、ウェアラブル端末等の公知の電子機器が用いられる。なお、本実施形態におけるプログラムコード自動生成システム100において、プログラムコード自動生成装置1は、クラウドサーバの中枢となる。
<Program code automatic generation device 1>
Known electronic devices such as servers, personal computers, smart phones, tablet terminals, and wearable terminals are used as the program code automatic generation device 1 . In addition, in the program code automatic generation system 100 in this embodiment, the program code automatic generation device 1 serves as the core of the cloud server.
 プログラムコード自動生成装置1は、サーバ、パーソナルコンピュータ(PC)、スマートフォン、タブレット端末、ウェアラブル端末等で構成される。プログラムコード自動生成装置1の各機能は、CPUが、RAMを作業領域として、保存部等に記憶されたプログラムを実行することにより実現される。また、各機能の一部は、人工知能により制御されてもよい。ここで、いう人工知能は、いかなる周知の人工知能技術に基づくものであってもよい。 The program code automatic generation device 1 is composed of a server, a personal computer (PC), a smartphone, a tablet terminal, a wearable terminal, and the like. Each function of the program code automatic generation device 1 is implemented by the CPU using the RAM as a work area and executing a program stored in a storage unit or the like. Also, part of each function may be controlled by artificial intelligence. The artificial intelligence referred to herein may be based on any known artificial intelligence technology.
 プログラムコード自動生成装置1は、文書又は会話文からテキストデータを取得する。プログラムコード自動生成装置1は、ユーザから会話文が音声により入力された場合、取得部は、公知の音声認識技術(例えば音声認識技術)を用いて、マイクロフォンを介して受け付けた音声からテキストデータを生成する。なお、音声認識技術は、例えば通信網4を介して、クラウド型の音声認識技術を用いてもよい。プログラムコード自動生成装置1は、文書からテキストデータを取得する場合、紙媒体や電子媒体に記載されている文書中の文字列からテキストデータを取得する。かかる場合には、紙媒体から読み取った文字列をOCR技術で文字認識してテキストデータ化してもよいし、電子媒体からなる文書に含まれる文字列をそのままテキストデータとして取得してもよい。かかる場合において、このプログラムコード自動生成装置1により取得されるテキストデータは、プログラムコード自動生成装置1内にあるデータベース内にあるデータやサーバ3内にあるメール文章、ドキュメントファイル等から取得するようにしてもよい。 The program code automatic generation device 1 acquires text data from documents or conversational sentences. In the program code automatic generation device 1, when a conversation sentence is input by voice from the user, the acquisition unit uses a known voice recognition technology (for example, voice recognition technology) to extract text data from the voice received via the microphone. Generate. Note that cloud-type speech recognition technology may be used as the speech recognition technology via the communication network 4, for example. When acquiring text data from a document, the program code automatic generation device 1 acquires the text data from a character string in the document written on a paper medium or an electronic medium. In such a case, a character string read from a paper medium may be recognized by OCR technology and converted into text data, or a character string contained in a document made of an electronic medium may be acquired as text data as it is. In such a case, the text data acquired by this automatic program code generation device 1 should be acquired from the data in the database in the automatic program code generation device 1, the e-mail sentences in the server 3, document files, etc. may
 なお、このテキストデータの取得は、プログラムコード自動生成装置1自身が行う場合以外に、端末2側において行うようにしてもよい。かかる場合には、端末2においてマイクロフォンを介して受け付けた音声からテキストデータを得るための音声認識機能が実装され、或いは紙媒体から文字列を文字認識するためのOCR機能が実装されている必要がある。 It should be noted that acquisition of this text data may be performed on the terminal 2 side in addition to the case where the program code automatic generation device 1 itself performs the acquisition. In such a case, the terminal 2 must be equipped with a voice recognition function for obtaining text data from voice received via a microphone, or an OCR function for recognizing character strings from paper media. be.
 <端末2>
 端末2として、例えばサーバ、PC、スマートフォン、タブレット端末、ウェアラブル端末等の公知の電子機器が用いられる。端末2は、例えばプログラムコード自動生成装置1と同様の構成及び機能の少なくとも一部を備えてもよい。端末2は、例えば複数備えてもよく、各端末2がそれぞれ通信網4を介してプログラムコード自動生成装置1と接続されてもよい。
<Terminal 2>
As the terminal 2, for example, a known electronic device such as a server, PC, smart phone, tablet terminal, or wearable terminal is used. The terminal 2 may have at least part of the same configuration and functions as the program code automatic generation device 1, for example. For example, a plurality of terminals 2 may be provided, and each terminal 2 may be connected to the program code automatic generation device 1 via a communication network 4 .
 <通信網4>
 通信網4は、プログラムコード自動生成装置1が通信回路を介して接続されるインターネット網等である。通信網4は、いわゆる光ファイバ通信網で構成されてもよい。また、通信網4は、有線通信網のほか、無線通信網等の公知の通信網で実現されてもよい。
<Communication network 4>
The communication network 4 is an Internet network or the like to which the program code automatic generation device 1 is connected via a communication circuit. The communication network 4 may be composed of a so-called optical fiber communication network. Also, the communication network 4 may be realized by a known communication network such as a wireless communication network, in addition to the wired communication network.
 <サーバ3>
 サーバ3には、例えば各種情報が記憶される。サーバ3には、例えば通信網4を介してプログラムコード自動生成装置1等から送られてきた各種情報が蓄積される。サーバ3には、例えばプログラムコード自動生成装置1の保存部と同様の情報が記憶され、通信網4を介してプログラムコード自動生成装置1等と各種情報の送受信が行われてもよい。即ち、プログラムコード自動生成システム100では、プログラムコード自動生成装置1又はプログラムコード自動生成装置1の保存部の代わりにサーバ3を用いてもよい。
<Server 3>
Various information is stored in the server 3, for example. The server 3 accumulates various kinds of information sent from the program code automatic generation device 1 or the like via the communication network 4, for example. The server 3 may store, for example, the same information as the storage unit of the automatic program code generation device 1 , and transmit/receive various information to/from the automatic program code generation device 1 and the like via the communication network 4 . That is, in the automatic program code generation system 100 , the server 3 may be used instead of the automatic program code generation device 1 or the storage unit of the automatic program code generation device 1 .
 また本発明においては、サーバ3において意味変換データベース(DB)31、プログラムコードデータベース(DB)32、プログラム文法解析データベース(DB)33、プログラム自動生成知識データベース(DB)34が構築されている。 In the present invention, a semantic conversion database (DB) 31, a program code database (DB) 32, a program grammar analysis database (DB) 33, and a program automatically generated knowledge database (DB) 34 are constructed in the server 3.
 意味変換データベース(DB)31は、図2に示すように、単語、指示動作、指示動作及びこれに係り受けする単語に対して、意味が関連付けて記憶される。 The semantic conversion database (DB) 31, as shown in FIG. 2, stores meanings associated with words, pointing actions, pointing actions, and related words.
 単語とは、テキストデータに含まれる名詞、名詞句、形容詞、副詞、その他動詞を除くあらゆる文の構成要素を構成する単語が含まれる。この単語は、それぞれ指示動作に対して係り受けすることで一つの意図する動作を形成することとなる。 "Words" include nouns, noun phrases, adjectives, adverbs, and other words contained in text data that make up the constituent elements of any sentence, excluding verbs. Each of these words forms one intended action by being dependent on the indicated action.
 指示動作は、テキストデータに含まれる動詞である。この動詞に単語が係り受けすることで、一つの意図する動作を形成することとなる。 The instruction action is a verb included in the text data. Dependence of words on this verb forms one intended action.
 例えば、図2(a)に示すように、「画面に出力する」であれば、単語が「画面」であり、これが係り受ける指示動作が「出力する」である。同じく「ファイルを登録する」であれば、単語が「ファイル」であり、これが係り受ける指示動作が「登録する」である。 For example, as shown in FIG. 2(a), in the case of "output to screen", the word is "screen", and the instruction action to which this word is related is "output". Similarly, in the case of "register a file", the word is "file", and the instruction action to which this word is related is "register".
 このような単語と指示動作に対して、それぞれ意味が紐付けられる。ここでいう意味とは、実際に単語と指示動作を通じて特定される意味概念を示すものである。意味は、単なる日常生活において使用される会話の意図を示す意味ではなく、プログラムコードを決定する上で相応しい意味を示すものである。 Meanings are associated with such words and instructive actions. The meaning here indicates a semantic concept that is actually specified through words and pointing actions. The meaning does not simply indicate the intention of conversation used in everyday life, but rather indicates a suitable meaning for determining the program code.
 図2(a)の例では、「画面に出力する」(単語:「画面」、指示動作:「出力する」)であれば、意味として「データを見せる」が紐付けられている。また、「ファイルを登録する」(単語:「ファイル」、指示動作:「登録する」)であれば、意味として「書き込む」が紐付けられている。 In the example of FIG. 2(a), "output to screen" (word: "screen", instruction action: "output") is associated with "show data" as a meaning. Also, "register a file" (word: "file", instruction action: "register") is associated with "write" as a meaning.
 なお、この意味変換DB31では、単語とこれか係り受ける指示動作が一つのセットになり、単語と指示動作の組み合わせが意味に紐付けられている場合を例に挙げて説明をしているが、これに限定されるものでは無く。単語、又は指示動作の何れか一方のみが少なくとも意味に対して紐付けられていればよい。 In this semantic conversion DB 31, a case where a word and an instructive action to which it depends is set as one set, and the combination of the word and the instructive action is associated with the meaning is explained as an example. It is not limited to this. Either the word or the pointing action should be associated with at least the meaning.
 このような指示動作、単語、意味は、何れもテキストデータの文脈の構成要素となる。即ち、指示動作、単語、意味は、テキストデータが何を示しているのか、その文脈につながるものと考えることができる。文脈は、指示動作、単語、意味の3つにより初めて形成されるものに限定されず、指示動作、単語、意味の少なくとも1つにより形成されるものであってもよい。 Such pointing actions, words, and meanings all constitute the context of the text data. That is, pointing actions, words, and meanings can be thought of as connected to the context of what the text data indicates. The context is not limited to being first formed by the pointing action, the word, and the meaning, but may be formed by at least one of the pointing action, the word, and the meaning.
 図2(b)の例では、「データを移す」というテキストデータにおける文脈を示している。かかる場合には、単語が「データ」、指示動作が「出力する」となるが、「データを移す」を構成する単語や指示動作からなる一つの組み合わせからは、「データを転送する」、「(データを)コピーする」、「(データを)移動する」等、様々な意味概念を想起することができる。かかる場合には、意味変換DB31には、想起可能な全ての意味を、この指示動作や単語に対して紐付けておく。 The example in FIG. 2(b) shows the context in the text data "move data". In such a case, the word is "data" and the command action is "output". Various semantic concepts such as "copy (data)" and "move (data)" can be conceived. In such a case, in the meaning conversion DB 31, all possible meanings are associated with this instruction action or word.
 但し、この図2(b)の例において、指示動作が「移す」ではなく、「転送する」であれば、「データを転送する」という意味に絞り込むことができるし、指示動作又は単語に「バックアップ」という文言が含まれているのであれば、「コピーする」という意味に絞り込むことができる。このような文言が含まれている単語や指示動作には、それぞれ紐付ける意味を絞り込むことができる。 However, in the example of FIG. 2B, if the instruction action is not "transfer" but "transfer", the meaning can be narrowed down to "transfer data", and the instruction action or the word " If the word "backup" is included, it can be narrowed down to mean "copy". It is possible to narrow down the meanings associated with words and instruction actions that include such phrases.
 図2(c)の例も同様に「出力データを見せて」というテキストデータにおける文脈を示しているが、単語や指示動作からなる一つの組み合わせに対して様々な意味概念を想起することができる。かかる場合には、意味変換DB31には、想起可能な全ての意味を、この指示動作や単語に対して紐付けておく。但し、この図2(c)の例において、「通信回線」や「画面」、「プリンタ」等のように、意味概念を絞り込むことができるような単語が含まれている場合には、そのような文言が含まれている単語や指示動作には、それぞれ紐付ける意味を絞り込むことができる。 The example in FIG. 2(c) also shows the context in the text data "Show me the output data", and various semantic concepts can be recollected for one combination of words and instruction actions. . In such a case, in the meaning conversion DB 31, all possible meanings are associated with this instruction action or word. However, in the example of FIG. 2(c), if words such as "communication line", "screen", "printer", etc., which can narrow down the semantic concept are included, such words are not included. It is possible to narrow down the meaning associated with each word or instruction action that includes such phrases.
 特に指示動作と単語の組み合わせではなく、指示動作のみ、或いは単語のみの場合には、意味概念を絞り込むことができない場合が多く、想起可能な意味概念は多岐に亘る場合があるが、かかる場合も同様に、その多岐に亘る意味概念を全て紐付けることとなる。 In particular, it is often not possible to narrow down the semantic concept in the case of only the instructive action or only the word, not the combination of the instructive action and the word, and the semantic concept that can be recalled may be wide-ranging. In the same way, all the wide-ranging semantic concepts are linked.
 プログラムコードDB32は、図3に示すように、各文脈に対してプログラムコードが紐付けられているテンプレートが記憶される。つまり、文脈に含まれている、意図する処理動作に応じたプログラムコードが紐付けられている。単なる指示動作又は単語のみで文脈を構成する場合には、図3(a)に示すように、その指示動作又は単語に対してそれぞれプログラムコードが紐付けられている。また、文脈が指示動作、単語、又は指示動作とこれに係り受けする少なくとも単語の組み合わせに加え、更に意味までが割り当てられている場合には、その意味に対してそれぞれプログラムコードが紐付けられている。つまり、このプログラムコードDB32は、文脈が特定できれば、その文脈に含められた、意図する処理動作を実行するために必要なプログラムコードを特定することができるデータベースといえる。 As shown in FIG. 3, the program code DB 32 stores templates in which program codes are linked to each context. In other words, the program code corresponding to the intended processing operation included in the context is linked. When the context consists of a simple instruction action or words only, a program code is associated with each instruction action or word, as shown in FIG. 3(a). In addition, if the context is assigned an instruction action, a word, or a combination of an instruction action and at least a word depending on the instruction action, and furthermore, a meaning is assigned, a program code is associated with each meaning. there is In other words, the program code DB 32 can be said to be a database that can identify the program code necessary to execute the intended processing operation included in the context, if the context can be identified.
 このプログラムコードDB32においても、文脈が全く同じであっても、また文脈を構成する指示動作、単語、又は指示動作とこれに係り受けする少なくとも単語、意味が全く同じであっても、意図する処理動作を実行するために必要なプログラムコードを複数に亘り想起できる場合がある。かかる場合には、その一の文脈に対して複数のプログラムコードを紐付けるようにしてもよい。 Even in this program code DB 32, even if the context is exactly the same, and even if the instruction action, word, or instruction action that constitutes the context and at least words and meanings related thereto are exactly the same, the intended processing It may be possible to recall multiple pieces of program code necessary to perform an operation. In such a case, a plurality of program codes may be associated with the one context.
 同様に、一のプログラムコードに対して複数の文脈が成り立つ場合もある。かかる場合には、その一のプログラムコードに対して複数の文脈を紐付けるようにしてもよい。 Similarly, multiple contexts may exist for a single program code. In such a case, a plurality of contexts may be associated with the one program code.
 このようなプログラムコードDB32は、プログラム言語毎に、文脈とプログラムコードを紐付けたテンプレートを予め構築しておく。また、プログラムコードDB32は、プログラム言語毎の全ての命令語(プログラムコード)が、文脈(指示動作や単語、意味等)に対応付けられた状態となっている。その結果、全てのプログラム言語の各プログラムコードが、文脈と対応付けられていることから、逆に文脈に対応するプログラムコードを全てのプログラム言語につき、探索することが可能となる。 Such a program code DB 32 pre-builds a template that associates context and program code for each programming language. Further, the program code DB 32 is in a state in which all instruction words (program codes) for each programming language are associated with contexts (instruction actions, words, meanings, etc.). As a result, since each program code of all program languages is associated with the context, it becomes possible to search for the program code corresponding to the context for all program languages.
 プログラム文法解析DB33は、プログラムコード自動生成装置1において、プログラムコードDB32を参照しつつ生成したプログラムコードが文法的に正しいかを確認するためのデータベースである。プログラム文法解析DB33は、生成したプログラムコードのスペルや記述方法、命令語の配列、必要な記号やマークが挿入されているか否か、引数が正しく挿入されているか否か等、プログラムを正しく動作させる上で必要な情報が格納されている。このプログラム文法解析DB33は、例えば各プログラム言語の文法書の電子データが格納されていてもよい。プログラム言語の文法書には、通常、プログラムコードの記述方法が中心に説明がなされているが、プログラムコードの正しい文法が記述されていることから、これを参照することで、プログラムコード自動生成装置1において生成したプログラムコードが文法的に正しいかを確認することができる。また、プログラム文法解析DB33には、個別のプログラムコード(命令語)に対応した文法の正誤判断が可能なルール設定も記録されていてもよい。かかる場合には、例えばスペル、記載順序、パラメーターの内容等の正誤判断が可能なルールが予め記録されていてもよく、またそのルールに基づいて正誤判断をするためのアルゴリズムが記録されていてもよい。なお、プログラム文法解析DB33では、コンパイラやアセンブラにて行う通常の文法チェックに必要なルールや規則、正しい文法に関する情報が予め格納されていてもよい。 The program grammar analysis DB 33 is a database for checking whether the program code generated by referring to the program code DB 32 in the program code automatic generation device 1 is grammatically correct. The program grammar analysis DB 33 checks the spelling and description method of the generated program code, the arrangement of instruction words, whether or not necessary symbols and marks are inserted, whether or not arguments are correctly inserted, etc., to ensure that the program operates correctly. It contains the information you need. The program grammar analysis DB 33 may store, for example, electronic data of grammars for each programming language. Program language grammars usually explain mainly how to write program code, but since the correct grammar of program code is described, by referring to this, the automatic program code generation device It is possible to confirm whether the program code generated in 1 is grammatically correct. The program grammar analysis DB 33 may also record rule settings that enable correct/wrong judgment of grammars corresponding to individual program codes (instructions). In such a case, for example, rules that enable correctness judgment such as spelling, description order, parameter contents, etc. may be recorded in advance, and an algorithm for correctness judgment based on the rules may be recorded. good. Note that the program grammar analysis DB 33 may store in advance information on rules and regulations necessary for normal grammar checks performed by a compiler or an assembler, and correct grammar.
 プログラム自動生成知識DB34は、プログラムコード又は当該プログラムコードにより実現すべき処理動作に対して、効率化されたプログラムの構造化パターンが関連付けられたデータベースである。このプログラム自動生成知識DB34は、実現すべき処理動作をプログラムコード化する上で高度な技術をもった熟練のIT技術者であればどのようなプログラムを生成するか、或いはどのようにプログラムコードを構造化するか、についての知識に関する情報が記録されている。プログラム自動生成知識DB34では、このような熟練のIT技術者による構造化パターンのルール(定義)が設定されている。 The automatically generated program knowledge DB 34 is a database in which program codes or processing operations to be realized by the program codes are associated with streamlined program structuring patterns. This automatic program generation knowledge DB 34 is used by a skilled IT engineer who has a high level of skill to program code a processing operation to be implemented. Information about structuring or knowledge about is recorded. In the automatic program generation knowledge DB 34, rules (definitions) of such structured patterns are set by skilled IT engineers.
 例えば、画面中に繰り返し複数行の表を表示をする場合には、熟練のIT技術者によれば、その繰り返し回数や位置を決めループ処理をすることで、プログラムコードを構造化し、より効率的で短いプログラムコードを起案する場合が多い。このような熟練のIT技術者の経験やテクニックのサンプルをルール(コード)化し、プログラム自動生成知識DB34において登録する事で構造化プログラムのコーディングが可能となる。このプログラム自動生成知識DB34には、基本的にテンプレート化されたいくつもの効率化されたプログラムの構造化パターンが登録されている。ここでいう効率化されたプログラムの構造化パターンは、上述した熟練のIT技術者の経験や知識が反映されている。そして、プログラムコード自動生成装置1において生成したプログラムコード又は当該プログラムコードにより実現すべき処理動作に対応した効率化されたプログラムの構造化パターンが選択可能とされている。かかる場合において、システムで多くのAPIを予め作り込んでおき、処理毎にそのAPIを呼び出すことで上述したプログラムの構造化パターンを選択するようにしてもよい。 For example, when displaying a multi-line table repeatedly on the screen, a skilled IT engineer can structure the program code by determining the number of repetitions and the position and performing loop processing to make it more efficient. In many cases, a short program code is drafted. A structured program can be coded by making rules (codes) from the experiences and technique samples of skilled IT engineers and registering them in the automatic program generation knowledge DB 34 . In this automatic program generation knowledge DB 34, structural patterns of a number of efficient programs basically converted into templates are registered. The efficient program structuring pattern referred to here reflects the experience and knowledge of the skilled IT engineer described above. Then, it is possible to select a program code generated by the program code automatic generation device 1 or a structured pattern of an efficient program corresponding to a processing operation to be realized by the program code. In such a case, many APIs may be created in advance in the system, and the above-described program structuring pattern may be selected by calling the APIs for each process.
 図4は、プログラム自動生成知識DB34において、画面上に商品毎の売り上げデータ等を表示する場合における、通常のプログラムコードと、効率化されたプログラムコードが格納されている例を示している。 FIG. 4 shows an example in which normal program code and streamlined program code are stored in the automatic program generation knowledge DB 34 when displaying sales data for each product on the screen.
 実現すべき処理動作P1が、各商品名について単価、実際に売り上げた数量、売上、更に売上合計を表形式で表示することである場合、一般的なプログラムコードP2に示すように、個々の商品毎に、単価、数量売上をそれぞれ集計処理し、これを表示することをそれぞれ実行命令として定義していく。その結果、プログラムの行数が増加してしまい、全体的に長く冗長となってしまう。 If the processing operation P1 to be implemented is to display the unit price, actual sales quantity, sales, and total sales for each product name in tabular form, then the individual product For each, the unit price and volume sales are aggregated and displayed as an execution command. As a result, the number of lines in the program increases, and the entire program becomes long and redundant.
 これに対して、効率化されたプログラムの構造化パターンP3では、売上の集計処理や表示処理を個々の商品毎に行うのではなく一括して行い、表示処理についても共通ロジックに基づいて構造化したものを使用し、表示用データについては、最後尾においてitem_listにおいてリスト化しておくものが例示されている。この構造化パターンP3に示されるプログラムを実行することで、プログラムコードP2と同様に、実現すべき処理動作P1としての商品毎の売り上げデータ等を画面上に表示することができる。但し、この構造化パターンP3は、熟練のIT技術者の知識や経験が反映されたものであることから、効率的され、しかも短い行数で、同様の実行すべき処理動作P1を実現することができる。 On the other hand, in the streamlined program structuring pattern P3, the sales tabulation and display processing are performed collectively rather than for each individual product, and the display processing is also structured based on common logic. , and the data for display is listed in item_list at the end. By executing the program indicated by the structured pattern P3, it is possible to display the sales data for each product as the processing operation P1 to be realized on the screen in the same manner as the program code P2. However, since this structured pattern P3 reflects the knowledge and experience of a skilled IT engineer, it is possible to efficiently implement the same processing operation P1 to be executed with a short number of lines. can be done.
 プログラム自動生成知識DB34では、このような実現すべき処理動作P1及びプログラムコードP2に対する、構造化パターンP3がそれぞれ記録されている。そして、実現すべき処理動作P1が多岐にわたる場合には、その多岐にわたる実現すべき処理動作P1毎にそのプログラムコードP2、更にこれに対応する構造化パターンP3が互いに紐付けられて記録されている。 In the automatic program generation knowledge DB 34, structured patterns P3 are recorded for such processing operation P1 and program code P2 to be realized. When there are a wide variety of processing operations P1 to be implemented, program codes P2 and corresponding structured patterns P3 are linked to each other and recorded for each of the diverse processing operations P1 to be implemented. .
 図4に示す例では、プログラム自動生成知識DB34において、実現すべき処理動作P1と、これに対応するプログラムコードP2が紐付けられ、更にこの実現すべき処理動作P1とプログラムコードP2に対して、構造化パターンP3が互いに紐付けられる場合を示しているが、これに限定されるものではない。例えば実現すべき処理動作P1があれば、これに対して直接的に構造化パターンP3が紐付けられ、一般的なプログラムコードP2は省略してもよい。また、一般的なプログラムコードP2と構造化パターンP3のみが互いに紐付けられ、実現すべき処理動作P1は特段これらに紐付けられていなくてもよい。 In the example shown in FIG. 4, in the automatic program generation knowledge DB 34, the processing operation P1 to be realized and the program code P2 corresponding thereto are linked. Although the case where the structured patterns P3 are associated with each other is shown, it is not limited to this. For example, if there is a processing operation P1 to be implemented, the structured pattern P3 is directly associated with it, and the general program code P2 may be omitted. Also, only the general program code P2 and the structured pattern P3 may be associated with each other, and the processing operation P1 to be realized may not be associated with them.
 また、プログラム自動生成知識DB34では、プログラムコードにより実現すべき処理動作P1に対して、一般的なプログラムコードP2から効率化されたプログラムP3へ変換するためのアルゴリズムが構造化パターンとして関連付けられるものであってもよい。かかる場合には、この実現すべき処理動作P1を特定することができれば、これに関連付けたアルゴリズムを読み出すことにより、効率化前の一般的なプログラムコードP2から効率化されたプログラムP3へ変換することが可能となる。このようなアルゴリズムは、一般的なプログラムコードP2から効率化されたプログラムP3へ遷移させる上での様々な法則や習性、知識やノウハウ、パターン等、熟練のIT技術者から取得してアルゴリズム化したものであってもよい。 In addition, in the automatic program generation knowledge DB 34, an algorithm for converting a general program code P2 into a streamlined program P3 is associated as a structured pattern with the processing operation P1 to be realized by the program code. There may be. In such a case, if the processing operation P1 to be implemented can be specified, the general program code P2 before efficiency improvement can be converted into the efficient program P3 by reading the algorithm associated with it. becomes possible. Such an algorithm was acquired from a skilled IT engineer, such as various rules, habits, knowledge, know-how, patterns, etc., in transitioning from the general program code P2 to the efficient program P3, and was made into an algorithm. can be anything.
 また、プログラム自動生成知識DB34では、実現すべき処理動作P1から、効率化されたプログラムP3へ遷移させる上での様々な法則や習性、知識やノウハウ、パターン等の概念が記録されるものであってもよい。例えば、ある実現すべき処理動作P1から、効率化されたプログラムP3を作る上で、効率化されたプログラムP3自身が格納されることは必須ではなく、例えば熟練のIT技術者であればどのような手順からなるプログラムを作成するか、どのようなコンセプトでプログラムの起案するか等、概念的な情報が格納されていてもよい。 Also, in the automatic program generation knowledge DB 34, concepts such as various rules, habits, knowledge, know-how, and patterns for transitioning from the processing operation P1 to be realized to the streamlined program P3 are recorded. may For example, when creating a streamlined program P3 from a certain processing operation P1 to be implemented, it is not essential that the streamlined program P3 itself be stored. Conceptual information such as whether to create a program consisting of various procedures, what concept the program is drafted, etc. may be stored.
 図5は、実現すべき処理動作P1が各種処理を行った場合にエラーが発生した場合には、それに対応した処理を実行する例における、効率化前の一般的なプログラムコードP2と、効率化されたプログラムP3を示したものである。一般的なプログラムコードP2では、プログラム中において、いくつもの箇所でエラー処理のコードを記述していることから、その分において全体的に長く冗長化したものとなっている。 FIG. 5 shows a general program code P2 before efficiency improvement and a general program code P2 before efficiency improvement, in an example of executing a process corresponding to an error when an error occurs when the processing operation P1 to be realized performs various processes. 2 shows the program P3 that has been processed. In the general program code P2, since error processing codes are written at many places in the program, the code is long and redundant as a whole.
 これに対して、効率化されたプログラムP3は、共通ロジックを前段で構造化し、最後尾において出力データのみを記述しているが、これにより、効率化が図られ、全体的に短くまとめることができている。 On the other hand, in the streamlined program P3, the common logic is structured in the first stage, and only the output data is described at the end. is made of.
 この図5の例においても同様に実現すべき処理動作P1及びプログラムコードP2に対する、構造化パターンP3がそれぞれ記録されていてもよい。また実現すべき処理動作P1があれば、これに対して直接的に構造化パターンP3が紐付けられていてもよいし、一般的なプログラムコードP2と構造化パターンP3のみが互いに紐付けられていてもよい。また、実現すべき処理動作P1に対して、一般的なプログラムコードP2から効率化されたプログラムP3へ変換するためのアルゴリズムが構造化パターンとして関連付けられるものであってもよい。 In the example of FIG. 5 as well, structured patterns P3 may be recorded for processing operations P1 and program codes P2 to be implemented in the same manner. Further, if there is a processing operation P1 to be realized, the structured pattern P3 may be directly linked to it, or only the general program code P2 and the structured pattern P3 are linked to each other. may Further, an algorithm for converting a general program code P2 into a streamlined program P3 may be associated as a structured pattern with the processing operation P1 to be implemented.
 このように全ての実現すべき処理動作P1又はプログラムコードP2毎に、それぞれ構造化パターンP3が、このプログラム自動生成知識DB34に蓄積されている。このとき、一の処理動作P1又はプログラムコードP2に対して複数種の構造化パターンP3が関連付けられていてもよい。また一の構造化パターンP3に対して複数種の処理動作P1又はプログラムコードP2が関連付けられていてもよい。 In this way, structured patterns P3 are accumulated in this automatic program generation knowledge DB 34 for each processing operation P1 or program code P2 to be implemented. At this time, multiple types of structured patterns P3 may be associated with one processing operation P1 or program code P2. Moreover, multiple types of processing operations P1 or program codes P2 may be associated with one structured pattern P3.
 なお、このプログラム自動生成知識DB34では、定型的なプログラムコードのパターンが関連付けられている場合のみならず、非定型の何らかのパターンが関連付けされているものであってもよい。 It should be noted that this automatic program generation knowledge DB 34 may be associated not only with typical program code patterns, but also with some non-fixed patterns.
 次に本発明を適用したプログラムコード自動生成システム100により、プログラムコードを実際に自動生成する動作について詳細に説明をする。 Next, the operation of actually automatically generating program code by the program code automatic generation system 100 to which the present invention is applied will be described in detail.
 図6に示すように処理動作を開始させた後、先ずステップS11に示すように、処理が終了したか否かを確認をする。この確認は、プログラムコード自動生成装置1や端末2を介して直接ユーザに処理を終了させるか否かを問い合わせるようにしてもよいし、プログラムコード自動生成システム100側において終了したか否かを自動判別するようにしてもよい。 After starting the processing operation as shown in FIG. 6, first, as shown in step S11, it is confirmed whether the processing has ended. This confirmation may be made by inquiring directly to the user via the automatic program code generation device 1 or the terminal 2 whether or not to end the processing, or by automatically inquiring whether or not the processing is ended on the automatic program code generation system 100 side. You may make it discriminate|determine.
 次にステップS12に移行し、文書又は会話文からテキストデータを取得する。具体的には、音声データとして端末2又はプログラムコード自動生成装置1において会話文が取得された場合には、これを公知の音声認識技術(例えば音素認識技術)を用いテキストデータを生成する。また、電子データ化されたテキストデータをプログラムコード自動生成装置1において取得した場合には、これをそのまま利用することになる。電子データ化されたテキストデータは、例えばメール文や社内又は社外において活用している情報掲示板や各種サイトの書き込みをそのまま取り込むようにしてもよい。 Next, move to step S12 and acquire text data from the document or conversational sentence. Specifically, when a conversational sentence is acquired as voice data at the terminal 2 or the program code automatic generation device 1, text data is generated using a known voice recognition technology (for example, phoneme recognition technology). Further, when text data converted into electronic data is acquired by the program code automatic generation device 1, it is used as it is. The text data converted into electronic data may be, for example, e-mails, information bulletin boards used inside or outside the company, and postings on various sites as they are.
 端末2又はプログラムコード自動生成装置1は、ユーザの入力するタイミング毎にテキストデータを取得するほか、例えば一定期間に蓄積された複数のテキストデータを一度に取得してもよい。なお、端末2又はプログラムコード自動生成装置1を介して入力された非テキスト形式のデータから、テキストデータを生成する方法は、公知技術を用いることができる。このようにして取得されたテキストデータは、プログラムコード自動生成装置1において一時的に記憶される。 The terminal 2 or the program code automatic generation device 1 acquires text data at each timing of input by the user, and may acquire, for example, multiple pieces of text data accumulated over a certain period of time at once. A known technique can be used to generate text data from non-text data input via the terminal 2 or the program code automatic generation device 1 . The text data obtained in this manner is temporarily stored in the automatic program code generation device 1 .
 次にステップS13に移行し、S12において取得され、プログラムコード自動生成装置1において一時的に記憶されているテキストデータを読み出し、これを自然言語解析することにより文脈を抽出する。この自然言語解析は、主としてプログラムコード自動生成装置1が行う。この自然言語解析では、形態素解析や構文解析を始めとして周知のいかなる自然言語解析技術を利用するようにしてもよい。 Next, the process proceeds to step S13, the text data acquired in S12 and temporarily stored in the automatic program code generation device 1 is read, and the context is extracted by natural language analysis. This natural language analysis is mainly performed by the program code automatic generation device 1 . This natural language analysis may use any known natural language analysis technique, including morphological analysis and syntactic analysis.
 このステップS13における自然言語解析の結果、例えばテキストデータ「データを移す」については、「データ」からなる単語と、「移す」からなる指示動作に分解することができる。またテキスト「出力データを見せて」は、「出力データ」という単語と、「見せて」という指示動作に分解することができる。つまりテキストデータを指示動作からなる動詞に係り受けする単語の組み合わせを通じて文脈を抽出することができる。このステップS13において指示動作とこれに係り受けする単語からなる組み合わせを文脈として抽出する場合に限定されるものではなく、指示動作のみ、又は単語のみを文脈を抽出するようにしてもよい。特に「見せて」や、「ファイルA」等のようにテキストデータが動詞のみ、又は単語のみで構成される場合には、指示動作のみ、又は単語のみを抽出することとなる。 As a result of the natural language analysis in step S13, for example, the text data "move data" can be decomposed into a word consisting of "data" and an instruction action consisting of "move". Also, the text "Show me the output data" can be decomposed into the word "output data" and the instruction action "show me." That is, it is possible to extract the context from the text data through the combination of words that depend on the verb that is composed of the pointing action. In this step S13, the context is not limited to the case of extracting a combination of an instruction action and a word related thereto, and the context may be extracted only from an instruction action or from only a word. In particular, when the text data consists of only verbs or only words such as "show me" or "file A", only the pointing action or only the words are extracted.
 このステップS13において自然言語解析を行った結果、ステップS14へ移行し、正しく解析できた場合にはステップS15へ移行する。これに対して、正しく自然言語解析できなかった場合には、ステップS11へ戻る。 As a result of the natural language analysis performed in step S13, the process proceeds to step S14, and if the analysis is correct, the process proceeds to step S15. On the other hand, if the natural language analysis could not be performed correctly, the process returns to step S11.
 ステップS15へ移行した場合、意味変換DB31を参照し、ステップS13において抽出した文脈からプログラムが実行すべき言葉の意味に再定義する。 When the process proceeds to step S15, the semantic conversion DB 31 is referred to, and the meaning of the words to be executed by the program is redefined from the context extracted in step S13.
 実際に文脈を構成する単語や動詞には、日常使用される口語調の文言が含まれている場合があるが、これが、プログラムコードを決定するための意味とは乖離している場合がある。このため、このステップS15において、テキストデータに含まれている文脈をプログラムコードを決定する上で好適な意味に変換する。 The words and verbs that actually make up the context may contain everyday colloquial phrases, but this may deviate from the meaning used to determine the program code. Therefore, in step S15, the context contained in the text data is converted into a suitable meaning for determining the program code.
 意味変換は、意味変換DB31を参照し、例えば図2(a)に示すように、ステップS13において抽出された指示動作が「出力する」であり、単語が「ファイル」であれば、意味として「読み出す」に変換する。同様に指示動作が「照会する」であり、単語が「画面」であれば、意味として「データを見せる」に変換する。また図2(b)、(c)に示すように一の指示動作と単語に対して複数の意味が紐付けられている場合には、これら紐付けられている全ての意味を探索するようにしてもよいし、これらのうち一部の意味のみを探索するようにしてもよい。また、ステップS13において抽出されたものが指示動作のみ、又は単語のみである場合も同様に意味変換DB31を参照し、指示動作又は単語に紐付けられた意味を抽出することとなる。ステップS15では、このようにして抽出した意味を、テキストデータの文脈として定義し、ステップS16へ移行する。 The meaning conversion is performed by referring to the meaning conversion DB 31. For example, as shown in FIG. Convert to "read out". Similarly, if the instruction action is "inquire" and the word is "screen", the meaning is converted to "show data". Also, as shown in FIGS. 2(b) and 2(c), when a plurality of meanings are associated with one instruction action and word, all of these associated meanings are searched. Alternatively, only some of these meanings may be searched. Also, when only pointing actions or only words are extracted in step S13, the meaning conversion DB 31 is similarly referred to, and the meaning associated with the pointing actions or words is extracted. In step S15, the meaning thus extracted is defined as the context of the text data, and the process proceeds to step S16.
 なお、このステップS15における、プログラムが実行すべき言葉の意味に再定義する処理動作は必須ではなく、省略するようにしてもよい。かかる場合には、ステップS13において抽出した、単語、指示動作、指示動作及びこれに係り受けする単語を、テキストデータの文脈として定義し、ステップS16へ移行する。 It should be noted that the processing operation of redefining the meaning of the words to be executed by the program in step S15 is not essential and may be omitted. In such a case, the word, pointing action, pointing action, and related words extracted in step S13 are defined as the context of the text data, and the process proceeds to step S16.
 ステップS16へ移行した場合には、ステップS15における意味変換を通じて、テキストデータの文脈を正しく定義できたか否かを判別する。その結果、テキストデータの文脈を正しく定義できた場合には、ステップS17へ移行する。これに対してテキストデータの文脈を正しく定義できなかった場合には、ステップS15へと戻る。なお、ステップS15自体を省略した場合、或いはステップS15においてプログラムが実行すべき言葉の意味に再定義する処理動作を行わなかった場合には、このステップS16を省略するようにしてもよい。 When proceeding to step S16, it is determined whether or not the context of the text data has been correctly defined through the semantic conversion in step S15. As a result, when the context of the text data can be correctly defined, the process proceeds to step S17. On the other hand, if the context of the text data could not be defined correctly, the process returns to step S15. Note that step S16 may be omitted if step S15 itself is omitted, or if the processing operation for redefining the meaning of the words to be executed by the program is not performed in step S15.
 ステップS17に移行した場合には、ステップS15において定義されたテキストデータの文脈に基づいてプログラムコードを自動生成する。 When proceeding to step S17, program code is automatically generated based on the context of the text data defined in step S15.
 かかる場合には、図3に示すプログラムコードDB32を参照する。プログラムコードDB32には、文脈(単語、指示動作、指示動作及びこれに係り受けする単語、意味)に対応する各プログラムコードが関連付けられて記憶されている。このため、ステップS17では、プログラムコードDB32を参照し、ステップS15において定義されたテキストデータの文脈に対応するプログラムコードを特定する。このとき、特定したプログラムコードそのものを自動生成すべきプログラムコードとしてもよいが、文脈に応じて、いくつかのプログラムコードを組み合わせ、或いはプログラムコード内にある変数や記号、引数等を適宜流用してもよい。この組み合わせや流用を行う場合においても同様に、プログラムコードDB32を参照する。 In such a case, refer to the program code DB 32 shown in FIG. The program code DB 32 stores program codes corresponding to contexts (words, pointing actions, pointing actions and related words and meanings) in association with each other. Therefore, in step S17, the program code DB 32 is referenced to specify the program code corresponding to the context of the text data defined in step S15. At this time, the specified program code itself may be the program code to be automatically generated, but depending on the context, some program codes may be combined, or variables, symbols, arguments, etc. good too. The program code DB 32 is similarly referred to when performing this combination or appropriation.
 例えば、図3(a)に示すように、ステップS15において定義されたテキストデータの文脈が「送信」を含むものであれば、これに対応する命令語として「vary response=http.post 」等をプログラムコードDB32を参照して抽出し、これに基づいてプログラムコードを自動生成する。ステップS15において定義されたテキストデータの文脈が「画面」を含むものであれば、これに対応する命令語として「text  xxxx 」等をプログラムコードDB32を参照して割り当て、これに基づいてプログラムコードを自動生成する。同様にステップS15において定義されたテキストデータの文脈が「ファイル」を含むものであれば、これに対応する命令語として「import xxxx  file.write…」等をプログラムコードDB32を参照して割り当て、これに基づいてプログラムコードを自動生成する。 For example, as shown in FIG. 3(a), if the context of the text data defined in step S15 includes "send", then "vary response=http.post" or the like is used as the corresponding instruction word. The program code DB 32 is referenced and extracted, and the program code is automatically generated based on this. If the context of the text data defined in step S15 includes "screen", assign "text xxxx" etc. as an instruction word corresponding to this by referring to the program code DB 32, and based on this, program code is generated. Generate automatically. Similarly, if the context of the text data defined in step S15 includes "file", the instruction word corresponding to this is assigned with reference to the program code DB 32, such as "import xxxx file.write...". Automatically generate program code based on
 なお、図3(b)、(c)に示すように、一の指示動作や単語から複数の意味が紐付けられている場合もあることから、テキストデータにおいてこのような指示動作や単語で構成されている場合には、これに対応した複数の意味毎に関連付けられたプログラムコードを割り当てることで自動生成するようにしてもよい。かかる場合には、一のテキストデータに対して複数のプログラムコードが自動的に生成されることとなる。 As shown in FIGS. 3(b) and 3(c), since there are cases where a plurality of meanings are associated with one instruction action or word, the text data is composed of such instruction actions and words. If so, it may be automatically generated by assigning program codes associated with a plurality of corresponding meanings. In such a case, multiple program codes are automatically generated for one text data.
 例えば、テキストデータが「入力データを画面とUSBに出力して」であり、自然言語解析の結果、指示動作が「出力して」であり、単語が「入力データ」、「画面」、「USB」である場合、図3に示すプログラムコードDB32を参照し、“入力データの取り込み(Read)”、”画面装置への表示(print xxxx)”、”USBメモリーへのデータ保存(Disk_write)”等の意味に「出力」という語句の意味を解析しプログラムコードを決定し生成することとなる。 For example, the text data is "output the input data to the screen and USB", the instruction action is "output" as a result of natural language analysis, and the words are "input data", "screen", "USB ”, referring to the program code DB 32 shown in FIG. The meaning of the word "output" is analyzed to determine and generate the program code.
 なお、本発明においては、指示動作や単語に対する意味を文脈として定義することは必須ではないことから、仮に意味が文脈として定義されていない場合には、指示動作又は単語に直接紐付けられているプログラムコードをプログラムコードDB32から読み出し、プログラムコードを自動生成するようにしてもよい。 In the present invention, it is not essential to define the meaning of the pointing action or the word as a context. The program code may be read from the program code DB 32 and automatically generated.
 次に、このステップS17においてはプログラム文法解析DB33を参照し、自動生成したプログラムコードの文法の正誤をチェックする。上述したようにプログラム文法解析DB33には、各プログラム言語の文法書の電子データが格納されていてもよいことから、これを参照することで、自動生成したプログラムコードの文法の正誤をチェックすることができる。実際には、この自動生成したプログラムコードと、文法書の電子データとを比較し、文法書に記載された語法に沿って記述されているのであれば、文法的に正しいものと判断し、文法書の記載から逸脱した形で記述されているのであれば、文法的に誤りであるものと判断することができる。 Next, in step S17, the program grammar analysis DB 33 is referenced to check whether the grammar of the automatically generated program code is correct or incorrect. As described above, the program grammar analysis DB 33 may store grammar electronic data for each programming language. By referring to this, the correctness of the grammar of the automatically generated program code can be checked. can be done. In practice, this automatically generated program code is compared with the electronic data of the grammar book. If it is written in a way that deviates from the description of the book, it can be judged to be grammatically incorrect.
 例えば、自動生成したプログラムコードにおいて命令語が連続しているとき、プログラム文法解析DB33に記憶されている文法書の内容において命令語の語法が記述されている箇所を参照する。その結果、文法書には、正しい例として命令語が立て続けに連続するものが記述されていない場合には、文法的に誤りであると判断することができる。また自動生成したプログラムコードにおいて「print」の後に「””」が入っていない場合、同じくプログラム文法解析DB33に記憶されている文法書の内容において命令語の語法が記述されている箇所を参照する。その結果、文法書には、正しい例として「print」の後に実際に表示すべき情報を「””」で囲む例が記述されていない場合には、文法的に誤りであると判断することができる。 For example, when imperative words are continuous in the automatically generated program code, refer to the part where the grammar of the imperative word is described in the content of the grammar stored in the program grammar analysis DB 33. As a result, if the grammar book does not describe a series of imperatives in succession as a correct example, it can be determined that the grammar is grammatically incorrect. In addition, if the automatically generated program code does not contain """ after "print", it refers to the part where the command word usage is described in the contents of the grammar book that is also stored in the program grammar analysis DB 33. . As a result, if the grammar book does not include an example where the information to be displayed is enclosed in """ after "print" as a correct example, it can be judged to be grammatically incorrect. can.
 なお、プログラム文法解析DB33において、個別のプログラムコード(命令語)に対応した文法の正誤判断が可能なルール設定が記録されている場合には、そのルール設定に基づいて正誤判断を行うようにしてもよい。またそのルールに基づいて正誤判断をするためのアルゴリズムが記録されている場合には、そのアルゴリズムに基づいて判断を行うようにしてもよい。 In addition, in the program grammar analysis DB 33, when the rule setting that enables correct/wrong judgment of the grammar corresponding to the individual program code (command word) is recorded, the correct/wrong judgment is performed based on the rule setting. good too. Also, if an algorithm for making a correct/wrong judgment based on the rule is recorded, the judgment may be made based on that algorithm.
 また、このステップS17では、コンパイラやアセンブラにて行う通常の文法チェックを行うようにしてもよい。かかる場合には、プログラム文法解析DB33において格納されている、コンパイラやアセンブラにて行う通常の文法チェックに必要なルールや規則、正しい文法に関する情報を参照することとなる。 Also, in this step S17, a normal grammar check performed by a compiler or assembler may be performed. In such a case, the rules and regulations necessary for normal grammatical checks performed by the compiler and assembler, stored in the program grammar analysis DB 33, and information on correct grammar are referred to.
 このプログラム文法解析DB33において正誤をチェックした結果、プログラムコードが文法的に誤っているものと判断された場合には、このステップS17において修正を加えるようにしてもよい。この修正を行う場合においても同様にプログラム文法解析DB33を参照し、正しい文法の記載を引用し、これに基づいてプログラムコードを修正するようにしてもよい。 If it is determined that the program code is grammatically incorrect as a result of checking correctness in the program grammar analysis DB 33, correction may be made in step S17. When performing this correction, the program grammar analysis DB 33 may be referred to in the same way, the description of the correct grammar may be quoted, and the program code may be corrected based on this.
 なお、このプログラム文法解析DB33を参照することによる文法の正誤のチェックは、生成すべきプログラムの文法を解析することにより行うようにしてもよい。ここでいう生成すべきプログラムとは、プログラムコードDB32に基づいて生成したプログラムコードも含まれるが、これに限定されるものではなく、後述するステップS19において、プログラム自動生成知識DB34を参照して書き換えられた、効率化されたプログラムも含まれる。即ち、プログラム文法解析DB33を参照することによる文法の正誤のチェックは、プログラムコードDB32に基づいて生成したプログラムコード、後述するステップS19において、プログラム自動生成知識DB34を参照して書き換えられた、効率化されたプログラムの何れもが対象になりえる。 It should be noted that the correctness of the grammar may be checked by referring to the program grammar analysis DB 33 by analyzing the grammar of the program to be generated. The program to be generated here includes program code generated based on the program code DB 32, but is not limited to this. Also includes streamlined programs. That is, the correctness of the grammar is checked by referring to the program grammar analysis DB 33, and the program code generated based on the program code DB 32 is rewritten with reference to the program automatically generated knowledge DB 34 in step S19, which will be described later. Any of the programs provided can be covered.
 また、このステップS17におけるプログラム文法解析DB33の活用方法としては、上述のような自動生成したプログラムコードの文法の正誤チェックは必須ではない。つまり、プログラムコードDB32に基づいてプログラムを生成する際において、少なくともこのプログラム文法解析DB33を参照していれば、文法の正誤チェックは省略するようにしてもよい。 Also, as a method of utilizing the program grammar analysis DB 33 in this step S17, it is not essential to check the accuracy of the grammar of the automatically generated program code as described above. That is, when generating a program based on the program code DB 32, if at least the program grammar analysis DB 33 is referred to, the accuracy check of the grammar may be omitted.
 かかる場合には、プログラムコードDB32に基づいてプログラムを生成する過程において、プログラム言語の文法書が格納されたプログラム文法解析DB33を参照する。これにより、現在作成中のプログラムにおいて、正しいブログラム文法を反映させることが可能となる。 In such a case, in the process of generating a program based on the program code DB 32, refer to the program grammar analysis DB 33 that stores the grammar of the programming language. This makes it possible to reflect the correct program grammar in the program currently being created.
 ステップS17においては、このプログラム文法解析DB33によるプログラム文法の正誤判断は必須ではなく、省略するようにしてもよい。 In step S17, the program grammar analysis DB 33 is not required to determine whether the program grammar is correct or incorrect, and may be omitted.
 このようなステップS17における各処理が終了した場合には、ステップS18へ移行する。ステップS18では、プログラムコードが正しいか否かを判断し、正しい場合には、ステップS19に、また正しくない場合には、再度ステップS17に戻る。 When each process in step S17 is completed, the process proceeds to step S18. In step S18, it is determined whether or not the program code is correct. If it is correct, the process returns to step S19. If not, the process returns to step S17.
 ステップS19に移行した場合には、プログラム自動生成知識DB34を参照し、ステップS17において文法的にチェックされたプログラムコードを、効率化されたプログラムに書き換える。 When proceeding to step S19, the automatically generated program knowledge DB 34 is referred to, and the program code grammatically checked in step S17 is rewritten into a streamlined program.
 上述したように、プログラム自動生成知識DB34には、実現すべき処理動作P1及びプログラムコードP2に対する構造化パターンP3、実現すべき処理動作P1に対する構造化パターンP3、プログラムコードP2に対する構造化パターンP3、実現すべき処理動作P1に対する、一般的なプログラムコードP2から効率化されたプログラムP3へ変換するためのアルゴリズムが記憶されている。 As described above, the automatic program generation knowledge DB 34 stores the structured pattern P3 for the processing operation P1 to be realized and the program code P2, the structured pattern P3 for the processing operation P1 to be realized, the structured pattern P3 for the program code P2, Algorithms are stored for transforming a general program code P2 into a streamlined program P3 for a processing operation P1 to be implemented.
 つまり、ステップS19に到達した段階で、実現すべき処理動作P1、プログラムコードP2の何れかが特定されていれば、この図4に示すようなプログラム自動生成知識DB34を参照することで、構造化パターンP3を探索することができる状態となっている。 That is, at the stage of reaching step S19, if either the processing operation P1 or the program code P2 to be realized is specified, the structuring can be performed by referring to the automatic program generation knowledge DB 34 as shown in FIG. The pattern P3 can be searched.
 ステップS19に到達した時点において、ステップS17にて自動生成したプログラムコードが存在している。このため、ステップS17にて自動生成したプログラムコードがあれば、これに最も類似しているプログラムコードP2に関連付けられた構造化パターンP3をこのプログラム自動生成知識DB34から読み出すことができる。構造化パターンP3自体が、効率化されたプログラムコードで構成されているのであれば、これ自体を新たに書き換えるべきプログラムとすることができる。また、プログラム自動生成知識DB34から読み出した構造化パターンP3が、変数、式、定義、引数等、一部がステップS17にて自動生成したプログラムコードと相違する場合には、その構造化パターンP3に、その相違する変数や式等を修正することにより、新たに書き換えるべきプログラムを生成するようにしてもよい。つまり、ステップS19では、ステップS17にて自動生成したプログラムコードに対して、これに最も類似しているプログラムコードP2に関連付けられた構造化パターンP3に基づいて修正することでプログラムの書き換えを行うものであってもよい。 At the time when step S19 is reached, the program code automatically generated in step S17 exists. Therefore, if there is a program code automatically generated in step S17, the structured pattern P3 associated with the most similar program code P2 can be read out from this automatically generated program knowledge DB34. If the structured pattern P3 itself is composed of streamlined program code, this itself can be used as a new program to be rewritten. Further, if the structured pattern P3 read from the automatically generated program knowledge DB 34 differs from the program code automatically generated in step S17 in part, such as variables, expressions, definitions, arguments, etc., the structured pattern P3 Alternatively, a new program to be rewritten may be generated by correcting the different variables and expressions. That is, in step S19, the program is rewritten by correcting the program code automatically generated in step S17 based on the structured pattern P3 associated with the program code P2 that is most similar to the program code. may be
 また、このステップS19におけるプログラムの書き換えは、ステップS17にて自動生成したプログラムコードに最も類似しているプログラムコードP2に関連付けられた構造化パターンP3に基づいて行う場合に限定されるものではない。ステップS17にて自動生成したプログラムコードにおいて行おうとしている処理動作を特定し、これをプログラム自動生成知識DB34に記録されている処理動作P1と照合するようにしてもよい。自動生成したプログラムコードにおいて行おうとしている処理動作を特定する方法としては、予めプログラムの命令語のパターンと、処理動作P1とを紐付けたデータテーブルを準備しておき、ステップS17にて自動生成したプログラムコードの命令語を抽出し、データテーブルを参照することで行うようにしてもよい。また、意味と、処理動作P1とを直接紐付けたデータテーブルを準備しておき、ステップS15において特定した意味から、データテーブルを参照することで特定するようにしてもよい。 Also, the rewriting of the program in step S19 is not limited to being performed based on the structured pattern P3 associated with the program code P2 that is most similar to the program code automatically generated in step S17. A processing operation to be performed in the program code automatically generated in step S17 may be identified and compared with the processing operation P1 recorded in the automatically generated program knowledge DB 34 . As a method of specifying the processing operation to be performed in the automatically generated program code, a data table is prepared in advance in which the pattern of the instruction word of the program and the processing operation P1 are linked, and automatically generated in step S17. It may be performed by extracting the instruction words of the program code and referring to the data table. Alternatively, a data table in which the meaning and the processing operation P1 are directly linked may be prepared, and the meaning identified in step S15 may be identified by referring to the data table.
 このようにして処理動作P1が特定できれば、これに関連付けられている構造化パターンP3に基づいてプログラムの書き換えを行うようにしてもよい。また、これ以外には、処理動作P1が特定できれば、これに対応するプログラムコードP2から構造化パターンP3させるための遷移パターンがプログラム自動生成知識DB34に記憶されていることから、この遷移パターンを読み出し、それに沿ってステップS17にて自動生成したプログラムコードを書き換えるようにしてもよい。 If the processing operation P1 can be identified in this way, the program may be rewritten based on the structured pattern P3 associated therewith. In addition to this, if the processing operation P1 can be specified, the transition pattern for converting the corresponding program code P2 to the structured pattern P3 is stored in the automatic program generation knowledge DB 34, so this transition pattern is read out. , the program code automatically generated in step S17 may be rewritten accordingly.
 また更に、プログラム自動生成知識DB34において、効率化前のプログラムコードP2から効率化されたプログラムへ変換するためのアルゴリズムが構造化パターンP3として関連付けられている場合、ステップS17にて自動生成したプログラムコードに最も類似するプログラムコードP2に関連付けられているアルゴリズムを読み出すようにしてもよい。そして、この読み出したアルゴリズムに基づいて、ステップS17にて自動生成したプログラムコードを効率化して書き換えるようにしてもよい。 Furthermore, in the automatic program generation knowledge DB 34, if an algorithm for converting the pre-efficient program code P2 to the streamlined program is associated as a structured pattern P3, the program code automatically generated in step S17 The algorithm associated with program code P2 that is most similar to P2 may be retrieved. Then, based on this read algorithm, the program code automatically generated in step S17 may be efficiently rewritten.
 このプログラム自動生成知識DB34におけるプログラムの書き換えが終了した後、ステップS20へ移行し、IT技術者やプログラマーによるコード編集が必要か否かを確認する。その結果、コード編集が必要な場合、或いはユーザ側からコード編集を希望する旨が受け付けられた場合には、ステップS21へ移行する。一方、コード編集が不要な場合、或いはユーザ側からコード編集を希望する旨が受け付けられなかった場合には、終了となる。 After rewriting the program in this automatically generated knowledge DB 34, the process moves to step S20, and it is confirmed whether code editing by an IT engineer or programmer is necessary. As a result, if code editing is required or if the request for code editing is received from the user side, the process proceeds to step S21. On the other hand, if code editing is unnecessary or if the user's request for code editing is not accepted, the process ends.
 ステップS21に移行した場合、ステップS19において書き換えれたプログラムコードに対して、IT技術者やプログラマーによるコード編集が施される。このコード編集は、手動によるプログラムコードの編集に加え、周知の編集ツールにより自動的に編集をするようにしてもよい。このステップS21におけるコード編集が終了した後、再びステップS20に戻り、コード編集がする必要がなくなればそのまま終了となる。 When proceeding to step S21, the program code rewritten in step S19 is edited by an IT engineer or programmer. In addition to manual editing of the program code, this code editing may be performed automatically by a well-known editing tool. After the code editing in step S21 is finished, the process returns to step S20, and if the code editing is no longer necessary, the process ends.
 このように、本発明を適用したプログラムコード自動生成システム100によれば、ステップS13~S17において説明した処理動作を通じて、意図している業務処理をコンピュータ側のシステムにおいて自動的にプログラムコードを生成することができる。このため、極めて容易に、しかも熟練のIT技術者のような技術力がなくても、自動的にプログラムコードを生成することが可能となる。 As described above, according to the program code automatic generation system 100 to which the present invention is applied, the program code for the intended business process is automatically generated in the system on the computer side through the processing operations described in steps S13 to S17. be able to. Therefore, it is possible to automatically generate a program code very easily and without the technical ability of a skilled IT engineer.
 これに加えて、本発明は、ステップS19における構造化の処理を行うことができることから、熟練のIT技術者の知識や経験が反映された、スムーズで効率化が図られた短いプログラムコードを自動生成することが可能とある。これにより、プログラム開発の仕組みを根本的に変え、近い将来、慢性的なIT技術者不足が社会に甚大な影響を与えることを回避できる。 In addition to this, since the present invention can perform the structuring process in step S19, a short program code that reflects the knowledge and experience of a skilled IT engineer and is smooth and efficient can be automatically generated. It is possible to generate This will fundamentally change the system of program development and prevent the chronic shortage of IT engineers from having a huge impact on society in the near future.
 なお、プログラム自動生成知識DB34において、処理動作P1やこれに対応するプログラムコードP2に対して、複数の構造化パターンP3を関連付けておくことにより、ステップS19において、より効率化された書き換え用のプログラムを複数に亘り生成することができる。その複数に亘り生成された書き換え用のプログラムの中から自動的に、又はユーザの意図に基づいて最適なものを選択することもでき、より高精度な構造化を実現することができる。 By associating a plurality of structured patterns P3 with the processing operation P1 and the corresponding program code P2 in the automatic program generation knowledge DB 34, a more efficient rewriting program can be generated in step S19. can be generated over a number of It is also possible to select the optimum one automatically or based on the user's intention from among the rewriting programs generated over a plurality of times, and it is possible to achieve more precise structuring.
 ちなみに、上述したステップS19における構造化プロセスを導入する代替として、例えば、ステップS17におけるプログラムコードの自動生成時において、プログラム自動生成知識DB34を参照することで、当該ステップS19自体を省略するようにしてもよい。 Incidentally, as an alternative to introducing the structuring process in step S19 described above, for example, at the time of automatic generation of the program code in step S17, by referring to the automatic program generation knowledge DB 34, step S19 itself can be omitted. good too.
 かかる場合には、ステップS17において、プログラムコードDB32に基づいてプログラムを生成する際において、当初から一般的なプログラムコードを作るのではなく、効率化されたプログラムの作成を行う。即ち、一般的なプログラムを介さずに、直接的に効率化されたプログラムの作成を行う。 In such a case, in step S17, when creating a program based on the program code DB 32, an efficient program is created instead of creating a general program code from the beginning. That is, a streamlined program is created directly without going through a general program.
 かかる場合には、少なくとも、このプログラム自動生成知識DB34において、実現すべき処理動作P1に対して効率化されたプログラムが関連付けられることが必要となる。実現すべき処理動作P1は、上述したように文脈から読み取る。そして、読み取った文脈から、実現すべき処理動作P1を特定し、この特定した実現すべき処理動作P1に応じた、効率化されたプログラムを参照する。これにより、いかなる実現すべき処理動作P2に対して、熟練のIT技術者であればどのようにプログラムを効率化するかについての知識を参照することができる。この知識を参照することで、プログラムコードDB32に基づいてプログラムを生成する際において、その効率化したプログラムの知識を反映させることができ、その結果、一般的なプログラムを介さずに、直接的に効率化されたプログラムの作成を行うことが可能となる。 In such a case, at least in this automatically generated knowledge DB 34, it is necessary to associate a streamlined program with the processing operation P1 to be realized. The processing action P1 to be performed is read from the context as described above. Then, from the read context, the processing operation P1 to be implemented is specified, and a streamlined program corresponding to the specified processing operation P1 to be implemented is referred to. As a result, a skilled IT engineer can refer to knowledge on how to make the program more efficient for any processing operation P2 to be implemented. By referring to this knowledge, when generating a program based on the program code DB 32, the knowledge of the streamlined program can be reflected. It becomes possible to create an efficient program.
 このような直接的に効率化されたプログラムの作成を行う場合、作成したプログラムについて、プログラム文法解析DB33を参照することによる文法の正誤のチェックを行うようにしてもよい。即ち、この文法の正誤のチェックを行う対象としての生成すべきプログラムに、この直接的に作成されたプログラムを含めるようにしてもよい。 When creating such a directly streamlined program, the correctness of the grammar of the created program may be checked by referring to the program grammar analysis DB 33. That is, the directly created program may be included in the program to be generated as a target for checking whether the grammar is correct or not.
 なお、本発明は、上述した実施の形態に限定されるものではない。例えば、意味変換DB31は、図7に示すように、人工知能による学習データを利用するようにしてもよい。入力データは、単語、指示動作、指示動作及びこれに係り受けする単語の何れかで構成され、出力が意味となる。このような学習データを予め蓄積しておくことで意味変換DB31を生成しておく。そして、ステップS13の自然言語解析においてテキストデータから単語、指示動作、指示動作及びこれに係り受けする単語の何れかが抽出された場合には、この学習データを参照し、これに見合う探索解としての意味を抽出する。 It should be noted that the present invention is not limited to the above-described embodiments. For example, the semantic conversion DB 31 may use data learned by artificial intelligence, as shown in FIG. The input data is composed of a word, an instruction action, an instruction action, and a word related thereto, and the output becomes the meaning. By accumulating such learning data in advance, the semantic conversion DB 31 is generated. Then, in the natural language analysis in step S13, if any of the word, the pointing action, the pointing action, and the word related thereto is extracted from the text data, this learning data is referred to, and a matching search solution is obtained. extract the meaning of
 また、プログラムコードDB32は、図8に示すように、人工知能による学習データを利用するようにしてもよい。入力データは、文脈(単語、指示動作、指示動作及びこれに係り受けする単語、意味等)で構成され、出力がプログラムコードとなる。このような学習データを予め蓄積しておくことでプログラムコードDB32を生成しておく。そして、ステップS17のプログラムコードの自動生成時においてこの学習データを参照し、文脈に見合う探索解としてのプログラムコードを抽出する。 Also, the program code DB 32 may use learning data by artificial intelligence, as shown in FIG. The input data consists of contexts (words, pointing actions, pointing actions and related words, meanings, etc.), and the output is program code. The program code DB 32 is generated by accumulating such learning data in advance. This learning data is referred to during the automatic generation of the program code in step S17, and the program code as a search solution suitable for the context is extracted.
 同様に、プログラム自動生成知識DB34は、図9に示すように、人工知能による学習データを利用するようにしてもよい。入力データは、実現すべき処理動作P1及び/又はプログラムコードP2であり、出力は、構造化パターンP3となる。このような学習データを予め蓄積しておくことでプログラム自動生成知識DB34を生成しておく。そして、ステップS19の構造化の実行時においてこの学習データを参照し、実現すべき処理動作及び/又はプログラムコードに見合う探索解としての構造化パターンP3を抽出する。 Similarly, the automatically generated program knowledge DB 34 may use learning data by artificial intelligence, as shown in FIG. The input data are the processing operations P1 and/or the program code P2 to be implemented and the output is the structured pattern P3. By accumulating such learning data in advance, the automatic program generation knowledge DB 34 is generated. Then, this learning data is referenced when the structuring in step S19 is executed, and the structuring pattern P3 as a search solution suitable for the processing operation and/or program code to be realized is extracted.
 またプログラム文法解析DB33も同様に、人工知能による学習データを利用するようにしてもよいことは勿論である。 Of course, the program grammar analysis DB 33 may similarly use learning data from artificial intelligence.
1 プログラムコード自動生成装置
2 端末
3 サーバ
4 通信網
100 プログラムコード自動生成システム
1 program code automatic generation device 2 terminal 3 server 4 communication network 100 program code automatic generation system

Claims (10)

  1.  文書又は会話文からテキストデータを取得するテキストデータ取得手段と、
     上記テキストデータ取得手段により取得されたテキストデータを自然言語解析することにより、文脈を抽出する文脈抽出手段と、
     各文脈に対して1以上のプログラムコードが関連付けて記憶されるプログラムコードデータベースと、プログラム言語の文法書が記録されたプログラム文法解析データベースとを参照し、上記文脈抽出手段により抽出された文脈に応じた1以上のプログラムコードを割り当てるコード割当手段と、 
     プログラムコード又は当該プログラムコードにより実現すべき処理動作に対して、効率化されたプログラムの構造化パターンが関連付けられたプログラム自動生成知識データベースを参照し、上記コード割当手段により割り当てられたプログラムコードを効率化されたプログラムに書き換えるコード効率化手段とを備えること
     を特徴とするプログラムコード自動生成システム。
    text data acquisition means for acquiring text data from a document or conversational sentence;
    a context extracting means for extracting a context by performing natural language analysis on the text data acquired by the text data acquiring means;
    Referring to a program code database in which one or more program codes are associated with each context and a program grammar analysis database in which grammars of programming languages are recorded, according to the context extracted by the context extraction means code assigning means for assigning one or more program codes;
    The program code assigned by the code assigning means is referred to the automatically generated knowledge database in which the structured pattern of the streamlined program is associated with the program code or the processing operation to be realized by the program code, and the program code assigned by the code assigning means is efficiently assigned. and code efficiency improvement means for rewriting into a streamlined program.
  2.  文書又は会話文からテキストデータを取得するテキストデータ取得手段と、
     上記テキストデータ取得手段により取得されたテキストデータを自然言語解析することにより、文脈を抽出する文脈抽出手段と、
     各文脈に対して1以上のプログラムコードが関連付けて記憶されるプログラムコードデータベースと、プログラム言語の文法書が記録されたプログラム文法解析データベースと、実現すべき処理動作に対して効率化されたプログラムが関連付けられたプログラム自動生成知識データベースとを参照し、上記文脈抽出手段により抽出された文脈に応じた1以上のプログラムを生成するコード割当手段とを備えること
     を特徴とするプログラムコード自動生成システム。
    text data acquisition means for acquiring text data from a document or conversational sentence;
    a context extracting means for extracting a context by performing natural language analysis on the text data acquired by the text data acquiring means;
    A program code database in which one or more program codes are stored in association with each context, a program grammar analysis database in which grammars of programming languages are recorded, and a program streamlined for processing operations to be realized. and code assigning means for referring to an associated automatic program generation knowledge database and generating one or more programs according to the context extracted by the context extracting means.
  3.  上記文脈抽出手段は、上記自然言語解析することにより、単語、指示動作、指示動作及びこれに係り受けする単語の何れかを抽出することにより、上記文脈を抽出すること
     を特徴とする請求項1又は2記載のプログラムコード自動生成システム。
    2. The context extracting means extracts the context by extracting any one of a word, a pointing action, a pointing action, and a word related thereto through the natural language analysis. Or the program code automatic generation system according to 2.
  4.  上記文脈抽出手段は、単語、指示動作、指示動作及びこれに係り受けする単語の何れかと、意味とが互いに関連付けて記憶される意味変換データベースを参照し、新たに抽出した上記単語、指示動作、指示動作及びこれに係り受けする単語の何れかと関連する意味を探索することにより、上記文脈を抽出すること
     を特徴とする請求項3記載のプログラムコード自動生成システム。
    The context extracting means refers to a semantic conversion database in which words, pointing actions, pointing actions, and any of words dependent on these, and meanings are stored in association with each other, and newly extracted words, pointing actions, 4. The program code automatic generation system according to claim 3, wherein said context is extracted by searching for a meaning associated with any of the pointing action and the word depending on it.
  5.  上記コード割当手段は、上記プログラム文法解析データベースを参照し、生成すべきプログラムの文法を解析することにより、その正誤をチェックすること
     を特徴とする請求項1又は2記載のプログラムコード自動生成システム。
    3. The program code automatic generation system according to claim 1, wherein said code assigning means refers to said program grammar analysis database and analyzes the grammar of the program to be generated to check whether the program is correct or not.
  6.  上記コード効率化手段は、プログラムコードに対して、効率化されたプログラムが関連付けられたプログラム自動生成知識データベースを参照し、上記コード割当手段により割り当てられたプログラムコードに関連する上記効率化されたプログラムを抽出し、これに書き換えること
     を特徴とする請求項1記載のプログラムコード自動生成システム。
    The code efficiency means refers to the program automatically generated knowledge database in which the streamlined program is associated with the program code, and the streamlined program related to the program code allocated by the code allocation means. 2. The program code automatic generation system according to claim 1, wherein is extracted and rewritten to this.
  7.  上記コード効率化手段は、プログラムコードにより実現すべき処理動作に対して、効率化前の上記プログラムコードから効率化されたプログラムへ変換するためのアルゴリズムが上記構造化パターンとして関連付けられたプログラム自動生成知識データベースを参照し、上記コード割当手段により割り当てられたプログラムコードにより実現すべき処理動作に関連付けられた上記構造化パターンとしてのアルゴリズムに基づいて、上記書き換えを行うこと
     を特徴とする請求項1記載のプログラムコード自動生成システム。
    The code efficiency improvement means automatically generates a program in which an algorithm for converting the program code before efficiency improvement into an efficient program is associated as the structured pattern with respect to the processing operation to be realized by the program code. 2. The rewriting is performed based on the algorithm as the structured pattern associated with the processing operation to be realized by the program code assigned by the code assigning means by referring to the knowledge database. Program code automatic generation system.
  8.  上記文脈抽出手段は、単語、指示動作、指示動作及びこれに係り受けする単語の何れかと、意味とを教師データとして機械学習されたモデルを用い、入力を単語、指示動作、指示動作及びこれに係り受けする単語の何れかとし、出力を意味とする意味変換データベースを参照すること
     を特徴とする請求項3記載のプログラムコード自動生成システム。
    The context extracting means uses a machine-learned model using a word, a pointing action, a pointing action, any of the words that depend on this, and their meanings as teacher data, and inputs a word, a pointing action, a pointing action, and a 4. The program code automatic generation system according to claim 3, wherein any of the words to be dependent is referred to a semantic conversion database whose meaning is the output.
  9.  上記コード割当手段は、文脈とプログラムコードとを教師データとして機械学習されたモデルを用い、入力を文脈とし、出力をプログラムコードとするプログラムコードデータベースを参照すること
     を特徴とする請求項1~8のうち何れか1項記載のプログラムコード自動生成システム。
    9. The code assigning means refers to a program code database that uses a machine-learned model with context and program code as teacher data, uses an input as context, and has an output as program code. program code automatic generation system according to any one of the above.
  10.  上記コード効率化手段は、プログラムコード又は当該プログラムコードにより実現すべき処理動作と、効率化されたプログラムの構造化パターンとを教師データとして機械学習されたモデルを用い、入力をプログラムコード又は当該プログラムコードにより実現すべき処理動作とし、出力を上記構造化パターンとするプログラム自動生成知識データベースを参照すること
     を特徴とする請求項1記載のプログラムコード自動生成システム。
    The code efficiency improvement means uses a machine-learned model using the program code or the processing operation to be realized by the program code and the structuring pattern of the streamlined program as training data, and the input is the program code or the program 2. The automatic program code generation system according to claim 1, wherein the processing operation to be realized by the code and the automatic program generation knowledge database in which the output is the structured pattern are referred to.
PCT/JP2022/008237 2021-07-28 2022-02-28 Program code automatic generation system WO2023007791A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021123178A JP7064680B1 (en) 2021-07-28 2021-07-28 Program code automatic generation system
JP2021-123178 2021-07-28

Publications (1)

Publication Number Publication Date
WO2023007791A1 true WO2023007791A1 (en) 2023-02-02

Family

ID=81579245

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/008237 WO2023007791A1 (en) 2021-07-28 2022-02-28 Program code automatic generation system

Country Status (2)

Country Link
JP (1) JP7064680B1 (en)
WO (1) WO2023007791A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116931911A (en) * 2023-06-15 2023-10-24 明物数智科技研究院(南京)有限公司 Intelligent low-code application development platform and development method based on AIGC

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0488531A (en) * 1990-08-01 1992-03-23 Fuji Xerox Co Ltd Code optimizing system
JPH10254688A (en) * 1997-03-07 1998-09-25 Toshiba Corp Program generation support device
JP2008243019A (en) * 2007-03-28 2008-10-09 Toshiba Corp Source code converting device and source code converting method
WO2021106380A1 (en) * 2019-11-28 2021-06-03 ソプラ株式会社 Program code automatic generation device and program

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019139675A (en) * 2018-02-15 2019-08-22 日本電気株式会社 Source code optimization device, program, and method
GB2589900B (en) * 2019-12-12 2022-06-01 Sony Interactive Entertainment Inc Apparatus and method for source code optimisation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0488531A (en) * 1990-08-01 1992-03-23 Fuji Xerox Co Ltd Code optimizing system
JPH10254688A (en) * 1997-03-07 1998-09-25 Toshiba Corp Program generation support device
JP2008243019A (en) * 2007-03-28 2008-10-09 Toshiba Corp Source code converting device and source code converting method
WO2021106380A1 (en) * 2019-11-28 2021-06-03 ソプラ株式会社 Program code automatic generation device and program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "What is an ITmedia ID?", ITMEDIANEWS, 2 July 2020 (2020-07-02), XP093028528, Retrieved from the Internet <URL:https://www.itmedia.co.jp/news/articles/2007/02/news090.html> [retrieved on 20230302] *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116931911A (en) * 2023-06-15 2023-10-24 明物数智科技研究院(南京)有限公司 Intelligent low-code application development platform and development method based on AIGC

Also Published As

Publication number Publication date
JP2023018851A (en) 2023-02-09
JP7064680B1 (en) 2022-05-11

Similar Documents

Publication Publication Date Title
US8117022B2 (en) Method and system for machine understanding, knowledge, and conversation
US8886521B2 (en) System and method of dictation for a speech recognition command system
US11138005B2 (en) Methods and systems for automatically generating documentation for software
US7912700B2 (en) Context based word prediction
CN1457041B (en) System for automatically annotating training data for natural language understanding system
CN114547329A (en) Method for establishing pre-training language model, semantic analysis method and device
WO2022062798A1 (en) Rpa and ai-based table information extraction method and apparatus, device and medium
CN110532573A (en) A kind of interpretation method and system
US20150024351A1 (en) System and Method for the Relevance-Based Categorizing and Near-Time Learning of Words
TWI661349B (en) Method and system for generating conversational user interface
CN111309313A (en) Method for quickly generating HTML (hypertext markup language) and storing form data
US20220414463A1 (en) Automated troubleshooter
CN107798123A (en) Knowledge base and its foundation, modification, intelligent answer method, apparatus and equipment
US8315874B2 (en) Voice user interface authoring tool
WO2023007791A1 (en) Program code automatic generation system
CN102323858B (en) Identify the input method of modification item in input, terminal and system
CN112506488A (en) Method for generating programming language class based on sql creating statement
RU2688758C1 (en) Method and system for arranging dialogue with user in user-friendly channel
CN117289938A (en) Intelligent auxiliary system for software development
CN114219438A (en) Document file distribution method, device, equipment and medium based on RPA and AI
CN115374764A (en) Demand model automatic generation method and system based on user story
CN113448544A (en) Method and system for automatically generating document in program development
CN114462376A (en) RPA and AI-based court trial record generation method, device, equipment and medium
CN111783465A (en) Named entity normalization method, system and related device
Schubanz Custom-MADE-Leveraging Agile Rationale Management by Employing Domain-Specific Languages.

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22848875

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE