System
An AI system addresses inefficiencies in system replacements by converting and optimizing old programming languages and systems, ensuring high-quality conversions and user support, thus reducing time and costs.
Patent Information
- Application Number
- JP2024128367
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-02
- Publication Date
- 2026-02-16
AI Technical Summary
Existing systems face challenges with inefficient and costly system replacements due to a shortage of engineers, increasing security risks, and the need for quick adaptation to new requirements, leading to project failures and delays.
An AI system that analyzes and converts old programming languages to new languages, optimizes the code, generates test cases, converts data formats, and provides real-time project progress visualization and support, ensuring data integrity and user training.
The system efficiently replaces old programming languages and systems, reducing time and costs while ensuring high-quality conversions and user support, thereby preventing project failures and delays.
Smart Images

Figure 2026025558000001_ABST
Abstract
Description
[Technical Field]
[0001] The technology of the present disclosure relates to a system. [Background technology]
[0002] Patent document 1 discloses a persona chatbot control method performed by at least one processor, the method including the steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to a description of the chatbot character, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance in response to the user utterance. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Publication No. 2022-180282 Summary of the Invention [Problem to be solved by the invention]
[0004] With a shortage of engineers and increasing security risks in existing systems, while source code is becoming increasingly legacy, there is an urgent need for efficient system replacement to address these issues. System replacement work is also extremely time-consuming, with many areas difficult for humans to handle, which can easily lead to project failures and schedule delays. Furthermore, when new requirements are added, existing code and environments must be quickly adapted. There is a need to solve these problems and reduce time and costs. [Means for solving the problem]
[0005] The present invention solves the above-mentioned problems through the following means.
[0006] As described in claim 1, we provide an AI system that analyzes source code written in an old programming language and automatically converts it to a new programming language based on the analysis results. It also includes a means for optimizing the converted code and automatically generating and executing test cases for the optimized code. It also includes a means for converting the data format of the old system to the format of the new system and visualizing the project progress.
[0007] As described in claim 2, the accuracy and efficiency of conversion are improved by using an AI-based model for the conversion work, and the quality of the converted code is guaranteed by using the automatic test case generation means described in claim 3.
[0008] Furthermore, it provides a data integrity check means to check whether the old data has been correctly converted and loaded into the new system without any problems (Claim 4), and also includes a means to provide training materials for users on the new system and processes and provide real-time support (Claim 5), thereby efficiently supporting the entire project and preventing project failures and delays.
[0009] "Analysis" is a series of processes for interpreting a program's source code and understanding its structure and function.
[0010] "Conversion" is the process of generating source code in a new programming language based on the analyzed source code in an old programming language.
[0011] "Optimization" is the process of modifying or improving code to improve the performance and efficiency of the converted code.
[0012] A "test case" is a set of test scenarios designed to verify that software operates as specified.
[0013] "Automatic generation" means that the system automatically generates a specific artifact (in this case, a test case) without manual intervention.
[0014] "Data format" is a concept that indicates how data is structured and stored.
[0015] "Data integrity check" is a validation process that verifies whether data is accurate and consistent.
[0016] "Project progress" is information that indicates the progress and current status of a project.
[0017] "Training materials" refers to educational content such as documents and videos for learning about new systems or processes.
[0018] "Real-time support" is a support function that allows users to enter questions and the system immediately provides answers.
[0019] An "AI-based model" is one that uses artificial intelligence algorithms that are trained based on human knowledge and experience to perform specific tasks. [Brief explanation of the drawings]
[0020] [Figure 1] 1 is a conceptual diagram showing an example of the configuration of a data processing system according to a first embodiment. [Figure 2] 1 is a conceptual diagram showing an example of main functions of a data processing device and a smart device according to a first embodiment. [Figure 3] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a second embodiment. [Figure 4] FIG. 10 is a conceptual diagram showing an example of main functions of a data processing device and smart glasses according to a second embodiment. [Figure 5] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a third embodiment. [Figure 6] FIG. 11 is a conceptual diagram showing an example of main functions of a data processing device and a headset-type terminal according to a third embodiment. [Figure 7] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a fourth embodiment. [Figure 8] FIG. 10 is a conceptual diagram showing an example of main functions of a data processing device and a robot according to a fourth embodiment. [Figure 9] 1 shows an emotion map onto which multiple emotions are mapped. [Figure 10] 1 shows an emotion map onto which multiple emotions are mapped. [Figure 11] FIG. 3 is a sequence diagram showing a processing flow of the data processing system according to the first embodiment. [Figure 12] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system in Application Example 1. [Figure 13] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system according to the second embodiment when an emotion engine is combined. [Figure 14] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system in Application Example 2 when an emotion engine is combined. DETAILED DESCRIPTION OF THE INVENTION
[0021] An example of an embodiment of a system according to the technology of the present disclosure will be described below with reference to the accompanying drawings.
[0022] First, the terms used in the following description will be explained.
[0023] In the following embodiments, a coded processor (hereinafter simply referred to as a "processor") may be a single arithmetic device or a combination of multiple arithmetic devices. Furthermore, a processor may be a single type of arithmetic device or a combination of multiple types of arithmetic devices. Examples of arithmetic devices include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a GPGPU (General-Purpose computing on Graphics Processing Units), and an APU (Accelerated Processing Unit).
[0024] In the following embodiments, a coded RAM (Random Access Memory) is a memory in which information is temporarily stored and is used as a working memory by a processor.
[0025] In the following embodiments, the coded storage is one or more non-volatile storage devices that store various programs, various parameters, etc. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), and magnetic tapes.
[0026] In the following embodiments, a communication I / F (Interface) with a symbol is an interface including a communication processor, an antenna, etc. The communication I / F controls communication between multiple computers. Examples of communication standards applied to the communication I / F include wireless communication standards including 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), Bluetooth (registered trademark), etc.
[0027] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." In other words, "A and / or B" means that it may be only A, only B, or a combination of A and B. Furthermore, in this specification, the same concept as "A and / or B" is also applied when three or more things are expressed connected by "and / or."
[0028] [First embodiment]
[0029] FIG. 1 shows an example of the configuration of a data processing system 10 according to the first embodiment.
[0030] 1, a data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server.
[0031] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0032] The smart device 14 includes a computer 36, a reception device 38, an output device 40, a camera 42, and a communication I / F 44. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The reception device 38, the output device 40, and the camera 42 are also connected to the bus 52.
[0033] The reception device 38 includes a touch panel 38A, a microphone 38B, and the like, and receives user input. The touch panel 38A detects contact with an indicator (for example, a pen or a finger) to receive user input by the touch of the indicator. The microphone 38B detects the user's voice to receive user input by voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the data indicating the user input.
[0034] The output device 40 includes a display 40A and a speaker 40B, and presents data to the user 20 by outputting the data in a form of expression that the user 20 can perceive (for example, audio and / or text). The display 40A displays visible information such as text and images in accordance with instructions from the processor 46. The speaker 40B outputs audio in accordance with instructions from the processor 46. The camera 42 is a compact digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.
[0035] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 control the exchange of various information between the processor 46 and the processor 28 via the network 54.
[0036] FIG. 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0037] 2, in the data processing device 12, a specific process is performed by the processor 28. A specific processing program 56 is stored in the storage 32. The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific process is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0038] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0039] In the smart device 14, the processor 46 performs the reception output process. The storage 50 stores a reception output program 60. The reception output program 60 is used in conjunction with the specific processing program 56 by the data processing system 10. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[0040] Next, a description will be given of the specific processing performed by the specific processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0041] This invention is an AI system that automatically converts old programming languages and systems to new languages and environments. The system analyzes the old programming language code entered by the user and generates new programming language code based on the analysis results. Furthermore, it optimizes the generated code and automatically generates and executes test cases to ensure the quality of the entire system. It also has the function of converting data formats used in the old system to new formats and visualizing the progress of the project.
[0042] (Analysis and Transformation)
[0043] The user inputs source code written in an older programming language into the system. The server then analyzes the source code by tokenizing, parsing, and structurally analyzing the code. This extracts the relationships between each part of the code (functions, classes, loops, etc.). Based on the analysis results, the server generates code in a new programming language. For example, it can parse code written in COBOL and generate code with the same functionality in Python.
[0044] (Optimization and testing)
[0045] The server further optimizes the generated code in the new programming language. This optimization includes removing unnecessary code and replacing it with faster algorithms. For the optimized code, the server automatically generates test cases, runs them, and analyzes the results. Based on the test results, it automatically generates fixes for detected bugs and incorporates them into the code.
[0046] (Data conversion)
[0047] The server also plays a vital role in the process of converting data formats used in the old system to the format of the new system. It receives the old data and converts its character encoding and structure to the appropriate format. For example, it converts the character encoding from EBCDIC to UTF-8. It also performs data integrity checks on the converted data to ensure that it has been loaded correctly.
[0048] (Project progress support)
[0049] To ensure the project runs smoothly, the device displays the project's progress in a dashboard format, allowing users to check the current progress in real time and make any necessary adjustments immediately. The device also suggests solutions to ongoing problems, allowing users to select the optimal solution from a selection of options.
[0050] (Training and real-time support)
[0051] Training on new systems and processes is also important, so the terminals provide users with training materials. Through video tutorials and documentation, users can quickly become familiar with their new environment. Furthermore, the terminals are equipped with a real-time Q&A function, allowing users to input questions about the system and instantly provide answers using AI.
[0052] (Example)
[0053] For example, consider the case where a company is replacing its old COBOL system with a Python system. First, the user inputs the COBOL code into the system. The server analyzes the code and converts it into Python code. The server then optimizes the converted code and automatically generates and runs test cases. The server then converts the data used in the COBOL system into UTF-8 format data and loads it into the new system. The project's progress is displayed in real time on a terminal, allowing users to check the progress and resolve any issues. Training and support for the new system are also provided, ensuring a smooth overall replacement process.
[0054] In this way, the present invention provides an efficient replacement for older programming languages and systems, saving time and money.
[0055] The processing flow will be explained below.
[0056] Step 1:
[0057] Users input source code written in an old programming language into the system.
[0058] Step 2:
[0059] The server tokenizes the input source code. At this stage, the source code is broken down into the smallest unit of tokens.
[0060] Step 3:
[0061] The server parses the tokenized code and builds a syntax tree, which gives it an understanding of the grammatical structure of the code.
[0062] Step 4:
[0063] Based on the syntax tree, the server analyzes the structure of the code and extracts the relationships between each part of the program (functions, classes, loops, etc.).
[0064] Step 5:
[0065] The server generates code for a new programming language based on the analysis results, for example, converting COBOL grammar into Python grammar.
[0066] Step 6:
[0067] The server optimizes the generated code in the new programming language by removing unnecessary code and applying efficient algorithms.
[0068] Step 7:
[0069] The server performs a syntax check on the optimized code and automatically runs basic tests to detect basic errors and warnings.
[0070] Step 8:
[0071] The server automatically generates test cases for the optimized code, for example, creating input and output patterns for each function.
[0072] Step 9:
[0073] The server executes the generated test cases and collects and analyzes the test results, thereby verifying the quality of the code.
[0074] Step 10:
[0075] Based on the test results, the server automatically generates fixes for detected bugs and applies them to the code, thereby improving the stability of the code.
[0076] Step 11:
[0077] The server converts the data format used by the old system to the format used by the new system, for example by converting the character encoding from EBCDIC to UTF-8.
[0078] Step 12:
[0079] The server loads the converted data into the new system and performs a data integrity check to ensure the data has been converted correctly.
[0080] Step 13:
[0081] The terminal displays the project progress to the user in a dashboard format, allowing the user to check the current progress in real time.
[0082] Step 14:
[0083] The device uses AI to detect solutions to problems that arise during the project and suggests them to the user, allowing them to select the optimal solution.
[0084] Step 15:
[0085] The terminal provides users with training materials (videos, documentation, etc.) on new systems and processes, allowing them to quickly adapt to the new environment.
[0086] Step 16:
[0087] The terminal provides a chat function where users can input questions about the system and AI will provide answers in real time, quickly resolving any doubts or concerns users may have.
[0088] Example 1
[0089] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0090] With the previous system, converting source code written in an older programming language into a newer one required a lot of manual work, which was time-consuming and costly. There was also a need for efficiency improvements in many aspects, such as quality assurance of the converted code, data format conversion, and visualization of project progress. Furthermore, there was a lack of functionality to provide user training and real-time support, making it difficult to adapt to the new environment.
[0091] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[0092] In this invention, the server includes means for analyzing source code written in an old programming language, means for converting the source code into a new programming language based on the analysis results, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old system into the format of the new system, means for displaying the project progress, means for presenting solutions to ongoing problems in real time, means for providing training materials to users, and means for providing answers to user questions in real time, thereby enabling efficient replacement of old systems and reducing time and costs.
[0093] An "old programming language" is a programming language that was widely used in the past but has now been superseded by newer languages or technologies.
[0094] "New programming languages" refer to programming languages that are currently widely used or are expected to become mainstream in the future.
[0095] "Source code" refers to a set of instructions or logic written in a programming language.
[0096] "Analysis" refers to the process of breaking down source code to make its structure and meaning easier to understand.
[0097] "Conversion" refers to the process of converting data or code from one format into another.
[0098] "Optimization" refers to the process of improving code or algorithms to make them run more efficiently or faster.
[0099] A "test case" defines the expected output for a specific input in order to verify the behavior of a program.
[0100] "Data format" refers to the form or structure in which data is stored.
[0101] "Project progress" refers to the progress of each phase and task of the project.
[0102] "Real-time" refers to the instant a response is returned the moment a user performs an operation or asks a question.
[0103] A "solution" refers to a means or method for solving a particular problem.
[0104] "Training Materials" refers to educational content provided to users to familiarize them with new systems or processes.
[0105] "AI-based model" refers to a mathematical or algorithmic model that is trained to perform a specific task using artificial intelligence.
[0106] "Input and output patterns for each function" refers to the combination of input values and corresponding output values for a specific function.
[0107] A "server" refers to a computer system that provides services to clients over a network.
[0108] "Terminal" refers to a computer or device that can be directly operated by a user.
[0109] "Automatic generation" refers to the system automatically generating data, code, and test cases without human intervention.
[0110] The present invention is an AI system that automatically converts old programming languages and systems to new languages and environments, and is implemented in the following manner.
[0111] First, users upload source code written in an older programming language into the system's designated input form, where they are also given the option to select the target programming language.
[0112] Next, the server performs a tokenization process to analyze the received source code. This tokenization process means dividing the source code into units that are easy to analyze. For example, a COBOL variable declaration is tokenized as "85 FIELD-NAME PIC X(10)".
[0113] The server then performs syntax analysis based on the tokenized code. This analysis understands the grammatical structure of the code and represents it as tree-structured data. The server then performs structural analysis to extract relationships between functions, classes, loops, and other elements within the code.
[0114] Once the structural analysis is complete, the server automatically generates code in a new programming language based on the analysis results. During this phase, for example, COBOL code can be converted to Python. The converted code is then adapted to run in the new environment.
[0115] The server then optimizes the new code, removing unnecessary variables and redundant loops and replacing them with more efficient algorithms. For example, nested loops may be converted into a single loop. The server then automatically generates test cases for the optimized code, runs them, and analyzes the results. This process ensures the quality of the code.
[0116] Additionally, the server automatically generates and presents fixes to the discovered bugs to the user, and if the user approves the fixes, they are applied to the code.
[0117] The server also converts data formats used in the old system to the new format, for example, converting character codes from EBCDIC to UTF-8, and then performs consistency checks on the converted data.
[0118] The device displays the project progress in real time on a dashboard, allowing users to grasp the progress at a glance and make any necessary adjustments quickly. In addition, the device can suggest solutions to ongoing problems in real time, providing users with options.
[0119] The device also provides users with training materials on new systems and processes, helping them quickly familiarize themselves with new environments through video tutorials and documentation. Users can also input questions about the system and the device instantly provides answers using AI.
[0120] Specific examples
[0121] For example, consider a company replacing its old COBOL system with a Python system. First, the user inputs COBOL code into the system. The server analyzes this code and converts it into Python code. The server then optimizes the converted Python code and automatically generates and runs test cases. The server then automatically generates fixes for any bugs discovered and implements them after obtaining the user's approval. The server also converts data from the old COBOL system into UTF-8 format and loads it into the new system. The project progress is displayed in real time on the terminal, allowing the user to efficiently resolve issues. The terminal provides training materials for the new system, allowing the user to quickly become familiar with the new environment. If the user has any questions, the terminal uses AI to provide answers in real time.
[0122] An example of a prompt statement is "Please parse the following COBOL code and convert it into Python code with the same functionality."
[0123] In this way, the present invention provides an efficient replacement for older programming languages and systems, saving time and money.
[0124] The flow of the identification process in the first embodiment will be described with reference to FIG.
[0125] Step 1:
[0126] Users input source code written in an older programming language into the system. Specifically, they upload the source code file into the system's designated input form. At this time, they are also given the option to select the target programming language. The input source code is then passed directly to the server.
[0127] Step 2:
[0128] The server tokenizes the source code it receives. First, it reads the source code line by line and divides each part into units (tokens) that are easy to parse. In this tokenization process, for example, a COBOL variable declaration statement is divided into individual tokens, such as "85 FIELD-NAME PIC X(10)". The input is the source code from the user, and the output is a list of tokens.
[0129] Step 3:
[0130] The server performs syntax analysis based on the tokenized code. In syntax analysis, the list of tokens is analyzed and the grammatical structure of the code is expressed as tree-structured data. For example, the block structure of functions, classes, and loops is clarified. The input is a list of tokens, and the output is a syntax tree.
[0131] Step 4:
[0132] The server performs structural analysis to extract relationships between functions, classes, loops, etc. in the code. Here, it analyzes the logical structure and data flow of the program based on the syntax tree. The input is the syntax tree, and the output is a data model that represents the structure of the entire program.
[0133] Step 5:
[0134] The server generates code in a new programming language based on the analysis results. Specifically, it reconstructs the code to conform to the grammar of the new language while preserving the functionality of the original program. For example, it converts COBOL code into Python code. The input is a structural data model of the program, and the output is source code in the new programming language.
[0135] Step 6:
[0136] The server optimizes the new code it generates by removing unnecessary variables and redundant loops and replacing them with more efficient algorithms, for example by changing nested loops into a single loop. The input is the generated source code, and the output is the optimized source code.
[0137] Step 7:
[0138] The server automatically generates test cases for the optimized code. Here, it creates input and output patterns for each function and generates test cases based on them. It then executes the generated test cases and analyzes the results. The input is the optimized source code, and the output is the test results and their analysis data.
[0139] Step 8:
[0140] The server automatically generates proposed fixes for detected bugs based on the test results. The proposed fixes are presented to the user, and if the user approves them, the fixes are applied to the code. The input is the test analysis data, and the output is the corrected source code.
[0141] Step 9:
[0142] The server converts the data format of the old system to the new format, for example converting character encoding from EBCDIC to UTF-8, and performs data integrity checks. The input is the old data format and the output is the new data format.
[0143] Step 10:
[0144] The terminal displays the project progress in real time on a dashboard, which visually displays the progress of each processing step, any problems that arise, and proposed solutions. The input is progress data from the server, and the output is a dashboard that can be viewed by the user.
[0145] Step 11:
[0146] The terminal provides training materials to the user, such as video tutorials and documentation, to help the user quickly familiarize themselves with the new system. The input is the training materials, and the output is the training content provided to the user.
[0147] Step 12:
[0148] The terminal provides real-time answers to user questions. When a user inputs a question about the system, the terminal immediately uses AI to provide an appropriate answer. The input is the user's question, and the output is the answer.
[0149] The above are the specific processing steps of this system.
[0150] (Application example 1)
[0151] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0152] Maintaining and updating source code written in old programming languages for control systems such as factory robots is complex, time-consuming, and costly. In particular, manually converting old code to new programming languages is inefficient and error-prone. Furthermore, the lack of a way to convert data formats and keep track of project progress in real time reduces the overall efficiency of the work.
[0153] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[0154] In this invention, the server includes means for analyzing source code written in an old programming language, means for converting the source code to a new programming language based on the analysis results, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old system to the format of the new system, means for displaying the project progress, means for automatically converting and optimizing the factory robot control program to a new language or environment, means for displaying the progress in real time and supporting problem solving, and means for providing training materials and real-time support functions. This enables efficient conversion from old programs to new programs in factory robot control systems, enabling high-quality system operation with fewer errors.
[0155]
[0156] An "old programming language" is a programming language that was used in the past but is no longer in widespread use.
[0157] An "analyzing means" is a method or device for understanding the syntax and semantics of source code and analyzing its structure.
[0158] A "means for converting to a new programming language" is a method or device for converting code written in an older programming language into a modern programming language based on the analysis results.
[0159] An "optimization means" is a method or apparatus for improving the performance or efficiency of generated code.
[0160] A "means for automatically generating and executing test cases" is a method or apparatus for automatically creating and executing test cases to verify whether the generated code operates correctly.
[0161] A "means for converting data formats" is a method or device for converting data between different data formats.
[0162] A "means for displaying project progress" is a method or device for visually displaying the current progress of a project.
[0163] A "factory robot control program" is a program for controlling the operation of automated equipment and robots in a factory.
[0164] "Means for automatic conversion and optimization to a new language or environment" refers to a method or device for analyzing an old control program, converting it to a new language, and optimizing the code.
[0165] "Means for displaying progress in real time and supporting problem solving" refers to a method or device for displaying the progress of a project in real time and providing immediate solutions to any problems that arise.
[0166] "Means for providing training materials and real-time support" means a method or device for providing training materials to help users quickly become familiar with new systems or processes, and for providing real-time support as needed.
[0167]
[0168] This invention provides a system that automatically converts and optimizes factory robot control programs for new languages and environments. The entire system is mainly composed of a server and terminals, and includes the following means:
[0169] First, the server uses an analysis tool to analyze source code written in the old programming language. This analysis tool tokenizes, parses, and analyzes the source code. The analysis results reveal the relationships between parts of the code (functions, classes, loops, etc.). Based on the analysis results, the server uses a generative AI model to convert the code to the new programming language. For example, when converting old Assembly code to Python, the server processes the analysis results using a generative AI model to generate code in the new language.
[0170] Next, the server uses an optimization tool to optimize the generated code in the new programming language. This tool improves the performance of the code by removing unnecessary code and replacing it with efficient algorithms. The server then automatically generates and runs test cases for the optimized code. A test case generation tool is used to generate test cases, creating input and output patterns for each function. This automatic testing verifies that the converted code operates correctly.
[0171] The server also includes a means to convert data formats from the old system to the new system format. A data format conversion tool is used to convert old data (e.g., EBCDIC) to the new data format (e.g., UTF-8). After conversion, a data integrity check is performed to ensure that the data is loaded correctly.
[0172] Project progress is displayed in real time on the terminal. The terminal displays progress in a dashboard format, allowing users to understand the progress at a glance. The terminal also suggests solutions to ongoing problems, allowing users to take optimal action based on these. Training materials for new systems and processes are also provided. The training materials include video tutorials and documentation, allowing users to quickly become familiar with the new environment. The system also has a real-time support function, allowing users to input questions about the system and receive instant answers using AI.
[0173] As a concrete example, consider the case of converting old assembly code used in a factory to Python. First, the user inputs the old assembly code into the system. The server analyzes the code and generates Python code. The generated code is then optimized and automatically generated test cases are executed. After verifying that the optimized code works correctly, the data is converted to the new format using a data format conversion tool. The project progress is displayed in real time on the terminal, and the user works while taking advantage of training materials and real-time support.
[0174] Examples of prompts for a generative AI model might include:
[0175] "Convert the following Assembly code to Python. The code snippet is below: MOV AX, BX; INC AX; ADD AX, 10"
[0176] In this way, the present invention realizes an efficient replacement of old programming languages and systems in factory robot control systems, resulting in improved work efficiency and reduced errors.
[0177] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[0178]
[0179] Step 1:
[0180] The user inputs source code written in an old programming language. For example, the user provides old Assembly code to the system. The input data is source code in the old programming language.
[0181] Step 2:
[0182] The server tokenizes, parses, and analyzes the input source code. It first breaks it down into tokens, then uses a parser to analyze the semantic structure of the code, and finally understands the overall structure of the source code based on the analysis results. The output of this process is the analyzed coding structure.
[0183] Step 3:
[0184] Based on the analysis results, the server uses a generative AI model to generate code for a new programming language. A prompt is given to the generative AI model to create new code based on the analysis results. For example, the following prompt is input to the generative AI model: "Convert the following Assembly code into Python. The code fragment is shown below: MOV AX, BX; INC AX; ADD AX, 10." The output is the source code for the new programming language.
[0185] Step 4:
[0186] The server optimizes the generated code in the new programming language. It uses optimization tools to remove unnecessary code and replace it with more efficient algorithms. This optimized code has improved performance and efficiency. The output is the optimized code.
[0187] Step 5:
[0188] The server automatically generates and executes test cases for the optimized code. It uses a test case generation tool to create input and output patterns for each function and automatically executes the tests. The test results verify whether the code works correctly. The output is the test results.
[0189] Step 6:
[0190] The server converts the data format of the old system to the format of the new system. For example, it uses a data format conversion tool to convert data in EBCDIC format to UTF-8. The data output by this process is the data converted to the new format.
[0191] Step 7:
[0192] The terminal displays the progress of the project in real time on a dashboard, visually displaying the progress, any issues that have arisen, and the progress status, allowing the user to check at a glance. The output is visualized data of the progress.
[0193] Step 8:
[0194] Users can constantly check the progress of the project through the dashboard displayed on their device, and select and apply the proposed solutions. Specific operations involve implementing the solutions using the support provided by the real-time support function. The output is the applied solution and its results.
[0195] Step 9:
[0196] The terminal provides training materials and real-time support functions. It provides video tutorials, documentation, and answers real-time questions to help users quickly become familiar with new systems and processes. The output is training materials and real-time support information.
[0197] Furthermore, an emotion engine that estimates the user's emotion may be combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion.
[0198] This invention combines an AI system for automatically converting old programming languages and systems to new languages and environments with an emotion engine that recognizes user emotions. As shown below, this system comprehensively covers everything from source code analysis and conversion to data format conversion, project progress visualization, and user emotion monitoring and feedback.
[0199] (Analysis and Transformation)
[0200] The user inputs source code written in an older programming language into the system. The server then tokenizes the input source code and constructs a syntax tree through syntactic analysis. It then uses structural analysis to understand the relationships between each part of the code. Based on the analysis results, the server converts the code into a new programming language and then optimizes it.
[0201] (Optimization and testing)
[0202] The server automatically generates test cases for the optimized new programming language code and executes them to ensure quality. Based on the test results, any necessary bug fixes are made and the code is tested again.
[0203] (Data conversion)
[0204] The data formats used in the old system are also converted to the new system format. The server performs this data conversion and performs data integrity checks, including converting old character encodings to the new UTF-8 format.
[0205] (Project progress support)
[0206] The terminal displays the project progress to the user in a dashboard format, allowing the user to check the progress in real time, making project management easier. It also proposes solutions to problems that arise during the project and allows the user to select them.
[0207] (Introduction of emotion engine)
[0208] The device is equipped with an emotion engine that recognizes the user's current emotions by analyzing the user's voice, facial expressions, input patterns, etc. This emotion data is fed back to each function of the system.
[0209] For example, if a user is feeling stressed, the device will display a message encouraging them to take a break. Furthermore, support will be enhanced depending on the difficulties the user is experiencing during the project. For example, when a specific problem occurs, the device will reduce the user's burden by providing more frequent solution suggestions and detailed help.
[0210] (Training and real-time support)
[0211] The terminals provide training materials on new systems and processes to help users quickly adapt to the new environment, and utilize real-time support functions to instantly answer user questions using AI, quickly resolving any concerns or doubts users may have.
[0212] (Example)
[0213] For example, consider a company using this system to replace an old COBOL system with a Python system. Users input COBOL code into the system, and the server parses and converts it into Python code. After conversion, the optimized code is tested, and the data used in COBOL is converted to the new format. Project progress is displayed on the terminal in real time, and an emotion engine monitors the user's stress level and prompts them to take a break when necessary. Furthermore, training materials and real-time support help users quickly learn the new system.
[0214] In this way, the present invention can efficiently and effectively support the entire system replacement process, while also taking into consideration the feelings of users, thereby improving the success rate of the project and reducing time and costs.
[0215] The processing flow will be explained below.
[0216] Step 1:
[0217] Users input source code written in an old programming language into the system.
[0218] Step 2:
[0219] The server tokenizes the input source code. Tokenization is the process of breaking down the source code into the smallest unit, tokens.
[0220] Step 3:
[0221] The server parses the tokenized code and builds a syntax tree, which gives it an understanding of the grammatical structure of the code.
[0222] Step 4:
[0223] The server analyzes the code structure based on the syntax tree, specifically extracting relationships between functions, classes, loops, etc.
[0224] Step 5:
[0225] The server converts the results of the analysis into code in a new programming language, for example, analyzing COBOL code and generating Python code.
[0226] Step 6:
[0227] The server optimizes the new code it generates by removing unnecessary code and applying efficient algorithms.
[0228] Step 7:
[0229] The server performs a syntax check on the optimized code, which detects and corrects basic errors.
[0230] Step 8:
[0231] The server automatically generates test cases for the optimized code, based on the input and output patterns for each function.
[0232] Step 9:
[0233] The server executes the generated test cases, collects the results, and analyzes them to detect defects.
[0234] Step 10:
[0235] Based on the test results, the server automatically generates suggested fixes for detected defects and incorporates them into the code.
[0236] Step 11:
[0237] The server converts the data format used by the old system to the format used by the new system, for example by converting the character encoding from EBCDIC to UTF-8.
[0238] Step 12:
[0239] The server loads the converted data into the new system and checks the data integrity to ensure that the data has been converted correctly.
[0240] Step 13:
[0241] The device displays the project progress to the user in a dashboard format, allowing the user to check progress in real time.
[0242] Step 14:
[0243] The device uses AI to propose solutions to problems that arise during the project, and users can select the most appropriate solution from the suggestions.
[0244] Step 15:
[0245] The device uses an emotion engine to analyze the user's facial expressions, voice, and input patterns to recognize the user's emotions.
[0246] Step 16:
[0247] The device will provide appropriate support based on the user's emotional data. For example, if the user is feeling stressed, it will display a message encouraging them to take a break.
[0248] Step 17:
[0249] The terminal provides training materials on new systems and processes, including videos and documentation.
[0250] Step 18:
[0251] The device runs a chat function where users can enter questions about the system and AI will provide answers in real time.
[0252] As a concrete example, if a company is replacing an old COBOL system with a Python system, the system replacement work can proceed smoothly by sequentially executing the processes from Step 1 to Step 18. Users can check the project progress on the dashboard and receive support from the emotion engine.
[0253] Example 2
[0254] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0255] When migrating source code written in an old programming language to a new programming language or environment, it is necessary to solve the problem of manual conversion work, testing, and data format conversion, which takes a lot of time and effort.In addition, there is a lack of visualization of project progress, monitoring of user emotions, and adaptation support, which can cause users to feel stressed and make project management difficult.
[0256] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means. In this invention, the server includes means for analyzing source code written in an old programming language, means for converting it into a new programming language, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old information processing system into the format of the new information processing system, means for displaying the project progress status, means for recognizing and feedbacking the user's emotions, and means for providing educational materials and real-time support to the user. This makes it possible to efficiently perform the replacement work, reduce the burden on the user, and improve the success rate of the project.
[0257] "Old programming languages" are programming languages such as COBOL and FORTRAN that were widely used in the past but are now less frequently used.
[0258] "New programming languages" are programming languages that are widely used today, such as Python, Java, and JavaScript.
[0259] "Source code analysis" is the process of breaking down input program code into tokens and performing syntactic analysis to understand its logical structure.
[0260] "Tokenization" is the process of dividing source code into characters or symbols and identifying each element.
[0261] "Syntax parsing" is the process of analyzing tokenized source code based on grammatical rules and constructing a syntax tree.
[0262] "Structural analysis" is the process of using data obtained from syntactic analysis to analyze in detail the relationships and functions of each element in the code.
[0263] "Converting to code in a new programming language" means rewriting source code written in an old programming language in accordance with the grammar and rules of a specified new programming language.
[0264] "Optimization" is the process of removing unnecessary instructions and improving the structure of the converted source code to improve its performance.
[0265] "Automatic generation of test cases" means automatically creating input patterns and expected outputs to check the behavior of the converted source code.
[0266] "Data format conversion" is the process of converting the data format used in an old information processing system into the format of a new information processing system.
[0267] "Visualization of project progress" means displaying the project's progress and achievement status in graphs and charts so that it can be checked in real time.
[0268] The "emotion engine" is an engine that analyzes the user's current emotions from their voice, facial expressions, and input patterns, and feeds the results back to the system.
[0269] "Providing educational materials" means providing educational materials and information to help users learn new systems and processes.
[0270] "Real-time support" is a support function that responds immediately to user questions and problems and quickly presents solutions.
[0271] MODE FOR CARRYING OUT THE INVENTION
[0272] This invention automatically converts old programming languages and systems to new languages and environments, and also introduces an emotion engine that recognizes user emotions. This system comprehensively covers everything from source code analysis and conversion to data format conversion, project progress visualization, and user emotion monitoring and feedback.
[0273] Parsing and Transformation
[0274] A user inputs source code written in an older programming language into the system. The server then tokenizes the input source code and constructs a syntax tree through syntactic analysis. This analysis is performed using a syntactic analysis tool such as ANTLR. The server then performs structural analysis to understand the relationships between each part of the code. Based on the analysis results, the server uses a generative AI model (for example, OpenAI's GPT-3) to convert the code into a new programming language based on the input prompt. Specifically, a prompt such as "Convert the following Java code to Python:" can be used.
[0275] Optimization and testing
[0276] The server optimizes the transformed code. This optimization process uses a compiler infrastructure such as LLVM to remove unnecessary instructions and optimize loops to improve code performance. The server then automatically generates test cases for the optimized code. Testing frameworks such as JUnit and PyTest are used to generate the test cases. The generated test cases are executed and the results are analyzed. Any detected bugs are fixed if necessary, and the tests are run again.
[0277] Data Conversion
[0278] The server converts the data format of the old system to that of the new system, using a character code conversion library such as iconv to convert the old character code to UTF-8 format, and also performs data integrity checks to ensure a flawless data migration.
[0279] Project progress support
[0280] The terminal displays the project progress to the user in a dashboard format. Data visualization tools such as Grafana are used to update the progress in real time. This allows users to easily check the progress, making project management easier. It also suggests solutions to problems in the project progress and allows users to select the appropriate one.
[0281] Introducing the Emotion Engine
[0282] The device is equipped with an emotion engine that analyzes the user's voice, facial expressions, and input patterns. This is done using image and audio analysis tools such as OpenCV and TensorFlow. The analysis results are fed back to each function of the system, and if the user feels stressed, the device will display a message encouraging them to take a break. In addition, the device will provide more support depending on the difficulties the user is experiencing during the project.
[0283] Training and real-time support
[0284] The terminal provides training materials on new systems and processes, using online education platforms like Khan Academy and Coursera as references, helping users quickly adapt to the new environment. It also utilizes real-time support, providing AI-powered answers to user questions instantly, helping to quickly resolve user concerns and worries.
[0285] In this way, the present invention comprehensively supports the entire system replacement process and takes into consideration the feelings of users, thereby improving the efficiency and success rate of replacement work.
[0286] The flow of the identification process in the second embodiment will be described with reference to FIG.
[0287] Step 1:
[0288] The user inputs source code written in an older programming language into the system. This input includes, for example, a COBOL source file. The server receives this source code and first tokenizes it. Specific tokenization operations involve using a syntax analysis tool such as ANTLR to split the source code into characters and symbols and identify each element. The source code received as input is then output as a set of tokenized elements.
[0289] Step 2:
[0290] The server performs syntactic analysis based on the tokenized source code. The specific operation of syntactic analysis is to analyze the tokenized elements according to grammatical rules and build a syntax tree. This syntax tree is a data structure that shows the relationships between each element in the code. The tokenized source code is used as input, and a syntax tree is generated as output.
[0291] Step 3:
[0292] The server performs structural analysis based on the parsed source code. The specific operation of structural analysis is to analyze the syntax tree in detail and understand the relationship between each part of the code. This makes the data flow and control flow clear. The syntax tree is used as input, and the structural analysis results are obtained as output.
[0293] Step 4:
[0294] The server uses a generative AI model to convert the code into a new programming language. This conversion process takes a prompt, such as "Convert the following COBOL code into Python," as input and converts the COBOL source code into new Python code. Specifically, the prompt and source code are input into an AI model such as OpenAI's GPT-3, and the converted code in the new programming language is obtained as output.
[0295] Step 5:
[0296] The server optimizes the translated code in the new programming language by using a compiler infrastructure like LLVM to remove unnecessary instructions and optimize loops. This process takes the translated code as input and produces optimized code as output.
[0297] Step 6:
[0298] The server automatically generates test cases for the optimized code. The specific operation of test case generation is to use a testing framework such as JUnit or PyTest to create input and output patterns for each function. The optimized code is used as input, and the generated test cases are obtained as output.
[0299] Step 7:
[0300] The server executes the generated test cases and analyzes the results. Specifically, it runs the automatically generated test cases against the code and compares the obtained output with the expected output. This process uses the generated test cases as input and obtains the test results as output.
[0301] Step 8:
[0302] The server fixes the bug based on the test results. The specific process of fixing the bug involves re-analyzing the code where the test failed, identifying the problem area, and fixing it. The failed test case results are used as input, and the corrected code is obtained as output. The test is then run again to confirm whether the fix was appropriate.
[0303] Step 9:
[0304] The server converts the data format of the old system to the format of the new system. Specifically, it uses a character code conversion library such as iconv to convert the old character code to UTF-8 format. This process takes data in the old format as input and produces data in the new format as output.
[0305] Step 10:
[0306] The terminal displays the project progress to the user in the form of a dashboard. Specifically, it uses a data visualization tool such as Grafana to display the progress in real time as graphs and charts. This process takes project progress data as input and produces a visualized dashboard as output.
[0307] Step 11:
[0308] The device is equipped with an emotion engine that analyzes the user's voice, facial expressions, and input patterns. Specifically, it uses image and voice analysis tools such as OpenCV and TensorFlow to evaluate the user's emotions. This process uses the user's voice and facial expression data as input and obtains an emotion evaluation result as output. If the user feels stressed, the device will display a message encouraging them to take a break.
[0309] Step 12:
[0310] The device provides training materials for new systems and processes. Specifically, it retrieves and displays educational materials from online education platforms such as Khan Academy and Coursera. This process takes the new system or process materials as input and displays the training materials as output. It also includes a real-time support function that allows AI to instantly answer user questions.
[0311] (Application example 2)
[0312] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0313] Migrating from an old programming language or system to a new language or environment is a time-consuming and laborious task. It is also necessary to manage the project's progress during the migration process and consider the user's feelings and burden. However, this is difficult to do efficiently with the current system. This can increase project complexity and user stress during the system migration process, potentially resulting in a decrease in efficiency.
[0314] The specific processing by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for analyzing source code written in an old programming language, means for converting the source code into a new programming language based on the analysis results, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old system into the format of the new system, means for displaying the project progress, means for monitoring the user's emotions, means for providing feedback based on the user's emotional data, means for displaying notifications encouraging relaxation, means for providing training materials, and means for providing real-time support. This not only efficiently supports the entire system migration process, but also takes into account the user's emotions and promotes rapid adaptation to a new environment while reducing stress.
[0315] definition statement
[0316] An "old programming language" is a programming language that was used in legacy systems and applications, but is no longer mainstream.
[0317] "Source code" means code containing textual instructions written to define the behavior of a program.
[0318] "Analysis" refers to the process of tokenizing input source code and understanding its structure and behavior through syntactic analysis.
[0319] A "new programming language" refers to a programming language that is compatible with the latest technologies and development environments.
[0320] "Conversion" is the process of replacing code written in an old programming language with code written in a new programming language.
[0321] "Optimization" refers to adjustments or modifications made to the transformed code to improve its performance or efficiency.
[0322] A "test case" refers to a configuration containing a set of input data and expected output results used to verify the behavior of a program.
[0323] "Automatic generation" refers to the mechanical creation of programs and data without the need for manual input or editing.
[0324] "Execution" refers to running program code on a computer or server.
[0325] "Data format" refers to the state in which data is organized and arranged according to a specific structure or format.
[0326] "Project progress" is information that indicates the progress and achievement status of a system migration or development project.
[0327] "Emotion monitoring" refers to the process of monitoring and recognizing a user's emotional state in real time.
[0328] "Feedback" refers to information and assistance provided based on the user's emotional data.
[0329] "Relaxation notifications" are messages displayed to help users reduce stress and fatigue.
[0330] "Training Materials" refers to educational and learning content provided to help users quickly adapt to new systems and processes.
[0331] "Real-time support" is a support service that provides immediate solutions and answers to users' questions and problems.
[0332] This invention combines an AI system for automatically converting old programming languages and systems to new languages and environments with an emotion engine that recognizes user emotions. This system aims to streamline system migration and improve user experience, especially in electronic payment services.
[0333] Parsing and Transformation
[0334] The server receives source code written in the old programming language as input. First, it tokenizes the input source code and builds a syntax tree through syntactic analysis. Then it performs structural analysis to understand the relationships between each part of the code. Based on the results of this analysis, the server converts the code into the new programming language and then optimizes it.
[0335] Optimization and testing
[0336] The server automatically generates test cases for the optimized new programming language code and executes them to ensure quality. Based on the test results, any necessary bug fixes are made and the test is then carried out again. This ensures the quality of the new system.
[0337] Data Conversion
[0338] The data formats used in the old system are also converted to the new system format. The server performs this data conversion and performs data integrity checks, including converting old character encodings to the new UTF-8 format.
[0339] Project progress support
[0340] The terminal displays the project progress to the user in a dashboard format, allowing the user to check the progress in real time, making project management easier. It also proposes solutions to problems that arise during the project and allows the user to select them.
[0341] Introducing the Emotion Engine
[0342] The device is equipped with an emotion engine that recognizes the user's current emotions by analyzing their voice, facial expressions, input patterns, etc. This emotion data is fed back to each function of the system. For example, if the user is feeling stressed, the device will display a message encouraging them to relax. Furthermore, the support provided will be strengthened depending on the difficulties the user is experiencing as the project progresses. When a specific problem occurs, the device will reduce the burden on the user by suggesting solutions more frequently and providing detailed help.
[0343] Training and real-time support
[0344] The terminals provide training materials on new systems and processes to help users quickly adapt to the new environment, and utilize real-time support functions to instantly answer user questions using AI, quickly resolving any concerns or doubts users may have.
[0345] Hardware and software used
[0346] AI Emotion Recognition Library: A library that includes conversational emotion recognition (e.g., Affectiva, Microsoft Azure Emotion API)
[0347] Code analysis and transformation libraries: Libraries for converting old code to new languages (e.g., Roslyn, ANTLR)
[0348] Data conversion libraries: for data format conversion (e.g., Apache Nifi, Babel)
[0349] Dashboard libraries: UI components for displaying progress in real time (e.g., Dash, Grafana)
[0350] Real-time support libraries: AI libraries for user assistance (e.g., OpenAI GPT, Dialogflow)
[0351] Specific examples
[0352] For example, consider a company using this system to replace an old electronic payment system written in C++ with Java. Users input the old code into the system, and the server parses and converts it to the new language. After conversion, the optimized code is tested, and the old data is converted to the new format. Project progress is displayed on the device in real time, and an emotion engine monitors the user's stress level and displays notifications encouraging relaxation as needed. Additionally, training materials and real-time support help users quickly learn the new system.
[0353] Prompt Sentence Examples
[0354] "Please convert the source code of an electronic payment system written in old C++ to Java, optimize it, and generate test cases. Also, please include a function to recognize user sentiment in real time and provide feedback."
[0355] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[0356] Step 1:
[0357] The user inputs source code written in an old programming language. The old source code is provided as input in the form of a file. The source code is sent to the server.
[0358] Step 2:
[0359] The server tokenizes and parses the input source code. Here, it uses a code parsing library (e.g., Roslyn, ANTLR) to analyze the source code and build a syntax tree. It parses the source code it receives as input and generates a syntax tree as output.
[0360] Step 3:
[0361] The server performs structural analysis based on syntax analysis to understand the relationships between each part of the code. Based on the analysis results, it applies a code transformation algorithm to generate code transformed into a new programming language. It takes the syntax tree as input and generates the transformed code in the new programming language as output.
[0362] Step 4:
[0363] The server optimizes the generated code in the new programming language. It uses a code optimization library to perform optimizations for performance and efficiency. It takes the code in the new programming language as input and generates optimized code as output.
[0364] Step 5:
[0365] The server automatically generates test cases for the optimized code and executes them. It uses a test case generation library to create input and output patterns for each function and performs the test. It receives the optimized code as input and generates test results as output.
[0366] Step 6:
[0367] The server converts the data format of the old system to the format of the new system. It uses a data conversion library (e.g., Apache Nifi, Babel) to convert data formats and perform data integrity checks. It takes the old data format as input and produces the new data format as output.
[0368] Step 7:
[0369] The terminal displays project progress in the form of a dashboard. It uses a dashboard library (e.g., Dash, Grafana) to allow you to check progress in real time. It receives project progress data as input and displays it on the dashboard as output.
[0370] Step 8:
[0371] The device monitors the user's emotions using an emotion engine. It uses emotion recognition libraries (e.g., Affectiva, Microsoft Azure Emotion API) to analyze the user's voice, facial expressions, and input patterns. It receives the user's voice and facial expression data as input and generates the user's emotional state as output.
[0372] Step 9:
[0373] The device provides feedback based on the user's emotional data and displays a notification encouraging relaxation as needed. It also generates a relaxation notification or support message based on the emotional data. It receives the user's emotional state as input and displays a feedback message as output.
[0374] Step 10:
[0375] The terminal provides training materials for new systems and processes, prepares training materials to help users quickly adapt to new environments, receives training material data as input, and provides it to users as output.
[0376] Step 11:
[0377] The device provides real-time support and instant AI answers to user questions. It uses real-time support libraries (e.g., OpenAI GPT, Dialogflow) to provide answers to user questions. It takes the user's question as input and generates an answer as output.
[0378] The specific processing unit 290 transmits the result of the specific processing to the smart device 14. In the smart device 14, the control unit 46A causes the output device 40 to output the result of the specific processing. The microphone 38B acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0379] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0380] In the above embodiment, an example in which the specific process is performed by the data processing device 12 has been given, but the technology of the present disclosure is not limited to this, and the specific process may be performed by the smart device 14.
[0381] [Second embodiment]
[0382] FIG. 3 shows an example of the configuration of a data processing system 210 according to the second embodiment.
[0383] 3, the data processing system 210 includes the data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.
[0384] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0385] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication I / F 44. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, and the camera 42 are also connected to the bus 52.
[0386] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.
[0387] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[0388] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 are responsible for the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.
[0389] Fig. 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Fig. 4, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.
[0390] The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0391] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0392] In the smart glasses 214, the reception output process is performed by the processor 46. A reception output program 60 is stored in the storage 50. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[0393] Next, a description will be given of the identification process performed by the identification processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal."
[0394] This invention is an AI system that automatically converts old programming languages and systems to new languages and environments. The system analyzes the old programming language code entered by the user and generates new programming language code based on the analysis results. Furthermore, it optimizes the generated code and automatically generates and executes test cases to ensure the quality of the entire system. It also has the function of converting data formats used in the old system to new formats and visualizing the progress of the project.
[0395] (Analysis and Transformation)
[0396] The user inputs source code written in an older programming language into the system. The server then analyzes the source code by tokenizing, parsing, and structurally analyzing the code. This extracts the relationships between each part of the code (functions, classes, loops, etc.). Based on the analysis results, the server generates code in a new programming language. For example, it can parse code written in COBOL and generate code with the same functionality in Python.
[0397] (Optimization and testing)
[0398] The server further optimizes the generated code in the new programming language. This optimization includes removing unnecessary code and replacing it with faster algorithms. For the optimized code, the server automatically generates test cases, runs them, and analyzes the results. Based on the test results, it automatically generates fixes for detected bugs and incorporates them into the code.
[0399] (Data conversion)
[0400] The server also plays a vital role in the process of converting data formats used in the old system to the format of the new system. It receives the old data and converts its character encoding and structure to the appropriate format. For example, it converts the character encoding from EBCDIC to UTF-8. It also performs data integrity checks on the converted data to ensure that it has been loaded correctly.
[0401] (Project progress support)
[0402] To ensure the project runs smoothly, the device displays the project's progress in a dashboard format, allowing users to check the current progress in real time and make any necessary adjustments immediately. The device also suggests solutions to ongoing problems, allowing users to select the optimal solution from a selection of options.
[0403] (Training and real-time support)
[0404] Training on new systems and processes is also important, so the terminals provide users with training materials. Through video tutorials and documentation, users can quickly become familiar with their new environment. Furthermore, the terminals are equipped with a real-time Q&A function, allowing users to input questions about the system and instantly provide answers using AI.
[0405] (Example)
[0406] For example, consider the case where a company is replacing its old COBOL system with a Python system. First, the user inputs the COBOL code into the system. The server analyzes the code and converts it into Python code. The server then optimizes the converted code and automatically generates and runs test cases. The server then converts the data used in the COBOL system into UTF-8 format data and loads it into the new system. The project's progress is displayed in real time on a terminal, allowing users to check the progress and resolve any issues. Training and support for the new system are also provided, ensuring a smooth overall replacement process.
[0407] In this way, the present invention provides an efficient replacement for older programming languages and systems, saving time and money.
[0408] The processing flow will be explained below.
[0409] Step 1:
[0410] Users input source code written in an old programming language into the system.
[0411] Step 2:
[0412] The server tokenizes the input source code. At this stage, the source code is broken down into the smallest unit of tokens.
[0413] Step 3:
[0414] The server parses the tokenized code and builds a syntax tree, which gives it an understanding of the grammatical structure of the code.
[0415] Step 4:
[0416] Based on the syntax tree, the server analyzes the structure of the code and extracts the relationships between each part of the program (functions, classes, loops, etc.).
[0417] Step 5:
[0418] The server generates code for a new programming language based on the analysis results, for example, converting COBOL grammar into Python grammar.
[0419] Step 6:
[0420] The server optimizes the generated code in the new programming language by removing unnecessary code and applying efficient algorithms.
[0421] Step 7:
[0422] The server performs a syntax check on the optimized code and automatically runs basic tests to detect basic errors and warnings.
[0423] Step 8:
[0424] The server automatically generates test cases for the optimized code, for example, creating input and output patterns for each function.
[0425] Step 9:
[0426] The server executes the generated test cases and collects and analyzes the test results, thereby verifying the quality of the code.
[0427] Step 10:
[0428] Based on the test results, the server automatically generates fixes for detected bugs and applies them to the code, thereby improving the stability of the code.
[0429] Step 11:
[0430] The server converts the data format used by the old system to the format used by the new system, for example by converting the character encoding from EBCDIC to UTF-8.
[0431] Step 12:
[0432] The server loads the converted data into the new system and performs a data integrity check to ensure the data has been converted correctly.
[0433] Step 13:
[0434] The terminal displays the project progress to the user in a dashboard format, allowing the user to check the current progress in real time.
[0435] Step 14:
[0436] The device uses AI to detect solutions to problems that arise during the project and suggests them to the user, allowing them to select the optimal solution.
[0437] Step 15:
[0438] The terminal provides users with training materials (videos, documentation, etc.) on new systems and processes, allowing them to quickly adapt to the new environment.
[0439] Step 16:
[0440] The terminal provides a chat function where users can input questions about the system and AI will provide answers in real time, quickly resolving any doubts or concerns users may have.
[0441] Example 1
[0442] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0443] With the previous system, converting source code written in an older programming language into a newer one required a lot of manual work, which was time-consuming and costly. There was also a need for efficiency improvements in many aspects, such as quality assurance of the converted code, data format conversion, and visualization of project progress. Furthermore, there was a lack of functionality to provide user training and real-time support, making it difficult to adapt to the new environment.
[0444] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[0445] In this invention, the server includes means for analyzing source code written in an old programming language, means for converting the source code into a new programming language based on the analysis results, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old system into the format of the new system, means for displaying the project progress, means for presenting solutions to ongoing problems in real time, means for providing training materials to users, and means for providing answers to user questions in real time, thereby enabling efficient replacement of old systems and reducing time and costs.
[0446] An "old programming language" is a programming language that was widely used in the past but has now been superseded by newer languages or technologies.
[0447] "New programming languages" refer to programming languages that are currently widely used or are expected to become mainstream in the future.
[0448] "Source code" refers to a set of instructions or logic written in a programming language.
[0449] "Analysis" refers to the process of breaking down source code to make its structure and meaning easier to understand.
[0450] "Conversion" refers to the process of converting data or code from one format into another.
[0451] "Optimization" refers to the process of improving code or algorithms to make them run more efficiently or faster.
[0452] A "test case" defines the expected output for a specific input in order to verify the behavior of a program.
[0453] "Data format" refers to the form or structure in which data is stored.
[0454] "Project progress" refers to the progress of each phase and task of the project.
[0455] "Real-time" refers to the instant a response is returned the moment a user performs an operation or asks a question.
[0456] A "solution" refers to a means or method for solving a particular problem.
[0457] "Training Materials" refers to educational content provided to users to familiarize them with new systems or processes.
[0458] "AI-based model" refers to a mathematical or algorithmic model that is trained to perform a specific task using artificial intelligence.
[0459] "Input and output patterns for each function" refers to the combination of input values and corresponding output values for a specific function.
[0460] A "server" refers to a computer system that provides services to clients over a network.
[0461] "Terminal" refers to a computer or device that can be directly operated by a user.
[0462] "Automatic generation" refers to the system automatically generating data, code, and test cases without human intervention.
[0463] The present invention is an AI system that automatically converts old programming languages and systems to new languages and environments, and is implemented in the following manner.
[0464] First, users upload source code written in an older programming language into the system's designated input form, where they are also given the option to select the target programming language.
[0465] Next, the server performs a tokenization process to analyze the received source code. This tokenization process means dividing the source code into units that are easy to analyze. For example, a COBOL variable declaration is tokenized as "85 FIELD-NAME PIC X(10)".
[0466] The server then performs syntax analysis based on the tokenized code. This analysis understands the grammatical structure of the code and represents it as tree-structured data. The server then performs structural analysis to extract relationships between functions, classes, loops, and other elements within the code.
[0467] Once the structural analysis is complete, the server automatically generates code in a new programming language based on the analysis results. During this phase, for example, COBOL code can be converted to Python. The converted code is then adapted to run in the new environment.
[0468] The server then optimizes the new code, removing unnecessary variables and redundant loops and replacing them with more efficient algorithms. For example, nested loops may be converted into a single loop. The server then automatically generates test cases for the optimized code, runs them, and analyzes the results. This process ensures the quality of the code.
[0469] Additionally, the server automatically generates and presents fixes to the discovered bugs to the user, and if the user approves the fixes, they are applied to the code.
[0470] The server also converts data formats used in the old system to the new format, for example, converting character codes from EBCDIC to UTF-8, and then performs consistency checks on the converted data.
[0471] The device displays the project progress in real time on a dashboard, allowing users to grasp the progress at a glance and make any necessary adjustments quickly. In addition, the device can suggest solutions to ongoing problems in real time, providing users with options.
[0472] The device also provides users with training materials on new systems and processes, helping them quickly familiarize themselves with new environments through video tutorials and documentation. Users can also input questions about the system and the device instantly provides answers using AI.
[0473] Specific examples
[0474] For example, consider a company replacing its old COBOL system with a Python system. First, the user inputs COBOL code into the system. The server analyzes this code and converts it into Python code. The server then optimizes the converted Python code and automatically generates and runs test cases. The server then automatically generates fixes for any bugs discovered and implements them after obtaining the user's approval. The server also converts data from the old COBOL system into UTF-8 format and loads it into the new system. The project progress is displayed in real time on the terminal, allowing the user to efficiently resolve issues. The terminal provides training materials for the new system, allowing the user to quickly become familiar with the new environment. If the user has any questions, the terminal uses AI to provide answers in real time.
[0475] An example of a prompt statement is "Please parse the following COBOL code and convert it into Python code with the same functionality."
[0476] In this way, the present invention provides an efficient replacement for older programming languages and systems, saving time and money.
[0477] The flow of the identification process in the first embodiment will be described with reference to FIG.
[0478] Step 1:
[0479] Users input source code written in an older programming language into the system. Specifically, they upload the source code file into the system's designated input form. At this time, they are also given the option to select the target programming language. The input source code is then passed directly to the server.
[0480] Step 2:
[0481] The server tokenizes the source code it receives. First, it reads the source code line by line and divides each part into units (tokens) that are easy to parse. In this tokenization process, for example, a COBOL variable declaration statement is divided into individual tokens, such as "85 FIELD-NAME PIC X(10)". The input is the source code from the user, and the output is a list of tokens.
[0482] Step 3:
[0483] The server performs syntax analysis based on the tokenized code. In syntax analysis, the list of tokens is analyzed and the grammatical structure of the code is expressed as tree-structured data. For example, the block structure of functions, classes, and loops is clarified. The input is a list of tokens, and the output is a syntax tree.
[0484] Step 4:
[0485] The server performs structural analysis to extract relationships between functions, classes, loops, etc. in the code. Here, it analyzes the logical structure and data flow of the program based on the syntax tree. The input is the syntax tree, and the output is a data model that represents the structure of the entire program.
[0486] Step 5:
[0487] The server generates code in a new programming language based on the analysis results. Specifically, it reconstructs the code to conform to the grammar of the new language while preserving the functionality of the original program. For example, it converts COBOL code into Python code. The input is a structural data model of the program, and the output is source code in the new programming language.
[0488] Step 6:
[0489] The server optimizes the new code it generates by removing unnecessary variables and redundant loops and replacing them with more efficient algorithms, for example by changing nested loops into a single loop. The input is the generated source code, and the output is the optimized source code.
[0490] Step 7:
[0491] The server automatically generates test cases for the optimized code. Here, it creates input and output patterns for each function and generates test cases based on them. It then executes the generated test cases and analyzes the results. The input is the optimized source code, and the output is the test results and their analysis data.
[0492] Step 8:
[0493] The server automatically generates proposed fixes for detected bugs based on the test results. The proposed fixes are presented to the user, and if the user approves them, the fixes are applied to the code. The input is the test analysis data, and the output is the corrected source code.
[0494] Step 9:
[0495] The server converts the data format of the old system to the new format, for example converting character encoding from EBCDIC to UTF-8, and performs data integrity checks. The input is the old data format and the output is the new data format.
[0496] Step 10:
[0497] The terminal displays the project progress in real time on a dashboard, which visually displays the progress of each processing step, any problems that arise, and proposed solutions. The input is progress data from the server, and the output is a dashboard that can be viewed by the user.
[0498] Step 11:
[0499] The terminal provides training materials to the user, such as video tutorials and documentation, to help the user quickly familiarize themselves with the new system. The input is the training materials, and the output is the training content provided to the user.
[0500] Step 12:
[0501] The terminal provides real-time answers to user questions. When a user inputs a question about the system, the terminal immediately uses AI to provide an appropriate answer. The input is the user's question, and the output is the answer.
[0502] The above are the specific processing steps of this system.
[0503] (Application example 1)
[0504] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0505] Maintaining and updating source code written in old programming languages for control systems such as factory robots is complex, time-consuming, and costly. In particular, manually converting old code to new programming languages is inefficient and error-prone. Furthermore, the lack of a way to convert data formats and keep track of project progress in real time reduces the overall efficiency of the work.
[0506] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[0507] In this invention, the server includes means for analyzing source code written in an old programming language, means for converting the source code to a new programming language based on the analysis results, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old system to the format of the new system, means for displaying the project progress, means for automatically converting and optimizing the factory robot control program to a new language or environment, means for displaying the progress in real time and supporting problem solving, and means for providing training materials and real-time support functions. This enables efficient conversion from old programs to new programs in factory robot control systems, enabling high-quality system operation with fewer errors.
[0508]
[0509] An "old programming language" is a programming language that was used in the past but is no longer in widespread use.
[0510] An "analyzing means" is a method or device for understanding the syntax and semantics of source code and analyzing its structure.
[0511] A "means for converting to a new programming language" is a method or device for converting code written in an older programming language into a modern programming language based on the analysis results.
[0512] An "optimization means" is a method or apparatus for improving the performance or efficiency of generated code.
[0513] A "means for automatically generating and executing test cases" is a method or apparatus for automatically creating and executing test cases to verify whether the generated code operates correctly.
[0514] A "means for converting data formats" is a method or device for converting data between different data formats.
[0515] A "means for displaying project progress" is a method or device for visually displaying the current progress of a project.
[0516] A "factory robot control program" is a program for controlling the operation of automated equipment and robots in a factory.
[0517] "Means for automatic conversion and optimization to a new language or environment" refers to a method or device for analyzing an old control program, converting it to a new language, and optimizing the code.
[0518] "Means for displaying progress in real time and supporting problem solving" refers to a method or device for displaying the progress of a project in real time and providing immediate solutions to any problems that arise.
[0519] "Means for providing training materials and real-time support" means a method or device for providing training materials to help users quickly become familiar with new systems or processes, and for providing real-time support as needed.
[0520]
[0521] This invention provides a system that automatically converts and optimizes factory robot control programs for new languages and environments. The entire system is mainly composed of a server and terminals, and includes the following means:
[0522] First, the server uses an analysis tool to analyze source code written in the old programming language. This analysis tool tokenizes, parses, and analyzes the source code. The analysis results reveal the relationships between parts of the code (functions, classes, loops, etc.). Based on the analysis results, the server uses a generative AI model to convert the code to the new programming language. For example, when converting old Assembly code to Python, the server processes the analysis results using a generative AI model to generate code in the new language.
[0523] Next, the server uses an optimization tool to optimize the generated code in the new programming language. This tool improves the performance of the code by removing unnecessary code and replacing it with efficient algorithms. The server then automatically generates and runs test cases for the optimized code. A test case generation tool is used to generate test cases, creating input and output patterns for each function. This automatic testing verifies that the converted code operates correctly.
[0524] The server also includes a means to convert data formats from the old system to the new system format. A data format conversion tool is used to convert old data (e.g., EBCDIC) to the new data format (e.g., UTF-8). After conversion, a data integrity check is performed to ensure that the data is loaded correctly.
[0525] Project progress is displayed in real time on the terminal. The terminal displays progress in a dashboard format, allowing users to understand the progress at a glance. The terminal also suggests solutions to ongoing problems, allowing users to take optimal action based on these. Training materials for new systems and processes are also provided. The training materials include video tutorials and documentation, allowing users to quickly become familiar with the new environment. The system also has a real-time support function, allowing users to input questions about the system and receive instant answers using AI.
[0526] As a concrete example, consider the case of converting old assembly code used in a factory to Python. First, the user inputs the old assembly code into the system. The server analyzes the code and generates Python code. The generated code is then optimized and automatically generated test cases are executed. After verifying that the optimized code works correctly, the data is converted to the new format using a data format conversion tool. The project progress is displayed in real time on the terminal, and the user works while taking advantage of training materials and real-time support.
[0527] Examples of prompts for a generative AI model might include:
[0528] "Convert the following Assembly code to Python. The code snippet is below: MOV AX, BX; INC AX; ADD AX, 10"
[0529] In this way, the present invention realizes an efficient replacement of old programming languages and systems in factory robot control systems, resulting in improved work efficiency and reduced errors.
[0530] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[0531]
[0532] Step 1:
[0533] The user inputs source code written in an old programming language. For example, the user provides old Assembly code to the system. The input data is source code in the old programming language.
[0534] Step 2:
[0535] The server tokenizes, parses, and analyzes the input source code. It first breaks it down into tokens, then uses a parser to analyze the semantic structure of the code, and finally understands the overall structure of the source code based on the analysis results. The output of this process is the analyzed coding structure.
[0536] Step 3:
[0537] Based on the analysis results, the server uses a generative AI model to generate code for a new programming language. A prompt is given to the generative AI model to create new code based on the analysis results. For example, the following prompt is input to the generative AI model: "Convert the following Assembly code into Python. The code fragment is shown below: MOV AX, BX; INC AX; ADD AX, 10." The output is the source code for the new programming language.
[0538] Step 4:
[0539] The server optimizes the generated code in the new programming language. It uses optimization tools to remove unnecessary code and replace it with more efficient algorithms. This optimized code has improved performance and efficiency. The output is the optimized code.
[0540] Step 5:
[0541] The server automatically generates and executes test cases for the optimized code. It uses a test case generation tool to create input and output patterns for each function and automatically executes the tests. The test results verify whether the code works correctly. The output is the test results.
[0542] Step 6:
[0543] The server converts the data format of the old system to the format of the new system. For example, it uses a data format conversion tool to convert data in EBCDIC format to UTF-8. The data output by this process is the data converted to the new format.
[0544] Step 7:
[0545] The terminal displays the progress of the project in real time on a dashboard, visually displaying the progress, any issues that have arisen, and the progress status, allowing the user to check at a glance. The output is visualized data of the progress.
[0546] Step 8:
[0547] Users can constantly check the progress of the project through the dashboard displayed on their device, and select and apply the proposed solutions. Specific operations involve implementing the solutions using the support provided by the real-time support function. The output is the applied solution and its results.
[0548] Step 9:
[0549] The terminal provides training materials and real-time support functions. It provides video tutorials, documentation, and answers real-time questions to help users quickly become familiar with new systems and processes. The output is training materials and real-time support information.
[0550] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.
[0551] This invention combines an AI system for automatically converting old programming languages and systems to new languages and environments with an emotion engine that recognizes user emotions. As shown below, this system comprehensively covers everything from source code analysis and conversion to data format conversion, project progress visualization, and user emotion monitoring and feedback.
[0552] (Analysis and Transformation)
[0553] The user inputs source code written in an older programming language into the system. The server then tokenizes the input source code and constructs a syntax tree through syntactic analysis. It then uses structural analysis to understand the relationships between each part of the code. Based on the analysis results, the server converts the code into a new programming language and then optimizes it.
[0554] (Optimization and testing)
[0555] The server automatically generates test cases for the optimized new programming language code and executes them to ensure quality. Based on the test results, any necessary bug fixes are made and the code is tested again.
[0556] (Data conversion)
[0557] The data formats used in the old system are also converted to the new system format. The server performs this data conversion and performs data integrity checks, including converting old character encodings to the new UTF-8 format.
[0558] (Project progress support)
[0559] The terminal displays the project progress to the user in a dashboard format, allowing the user to check the progress in real time, making project management easier. It also proposes solutions to problems that arise during the project and allows the user to select them.
[0560] (Introduction of emotion engine)
[0561] The device is equipped with an emotion engine that recognizes the user's current emotions by analyzing the user's voice, facial expressions, input patterns, etc. This emotion data is fed back to each function of the system.
[0562] For example, if a user is feeling stressed, the device will display a message encouraging them to take a break. Furthermore, support will be enhanced depending on the difficulties the user is experiencing during the project. For example, when a specific problem occurs, the device will reduce the user's burden by providing more frequent solution suggestions and detailed help.
[0563] (Training and real-time support)
[0564] The terminals provide training materials on new systems and processes to help users quickly adapt to the new environment, and utilize real-time support functions to instantly answer user questions using AI, quickly resolving any concerns or doubts users may have.
[0565] (Example)
[0566] For example, consider a company using this system to replace an old COBOL system with a Python system. Users input COBOL code into the system, and the server parses and converts it into Python code. After conversion, the optimized code is tested, and the data used in COBOL is converted to the new format. Project progress is displayed on the terminal in real time, and an emotion engine monitors the user's stress level and prompts them to take a break when necessary. Furthermore, training materials and real-time support help users quickly learn the new system.
[0567] In this way, the present invention can efficiently and effectively support the entire system replacement process, while also taking into consideration the feelings of users, thereby improving the success rate of the project and reducing time and costs.
[0568] The processing flow will be explained below.
[0569] Step 1:
[0570] Users input source code written in an old programming language into the system.
[0571] Step 2:
[0572] The server tokenizes the input source code. Tokenization is the process of breaking down the source code into the smallest unit, tokens.
[0573] Step 3:
[0574] The server parses the tokenized code and builds a syntax tree, which gives it an understanding of the grammatical structure of the code.
[0575] Step 4:
[0576] The server analyzes the code structure based on the syntax tree, specifically extracting relationships between functions, classes, loops, etc.
[0577] Step 5:
[0578] The server converts the results of the analysis into code in a new programming language, for example, analyzing COBOL code and generating Python code.
[0579] Step 6:
[0580] The server optimizes the new code it generates by removing unnecessary code and applying efficient algorithms.
[0581] Step 7:
[0582] The server performs a syntax check on the optimized code, which detects and corrects basic errors.
[0583] Step 8:
[0584] The server automatically generates test cases for the optimized code, based on the input and output patterns for each function.
[0585] Step 9:
[0586] The server executes the generated test cases, collects the results, and analyzes them to detect defects.
[0587] Step 10:
[0588] Based on the test results, the server automatically generates suggested fixes for detected defects and incorporates them into the code.
[0589] Step 11:
[0590] The server converts the data format used by the old system to the format used by the new system, for example by converting the character encoding from EBCDIC to UTF-8.
[0591] Step 12:
[0592] The server loads the converted data into the new system and checks the data integrity to ensure that the data has been converted correctly.
[0593] Step 13:
[0594] The device displays the project progress to the user in a dashboard format, allowing the user to check progress in real time.
[0595] Step 14:
[0596] The device uses AI to propose solutions to problems that arise during the project, and users can select the most appropriate solution from the suggestions.
[0597] Step 15:
[0598] The device uses an emotion engine to analyze the user's facial expressions, voice, and input patterns to recognize the user's emotions.
[0599] Step 16:
[0600] The device will provide appropriate support based on the user's emotional data. For example, if the user is feeling stressed, it will display a message encouraging them to take a break.
[0601] Step 17:
[0602] The terminal provides training materials on new systems and processes, including videos and documentation.
[0603] Step 18:
[0604] The device runs a chat function where users can enter questions about the system and AI will provide answers in real time.
[0605] As a concrete example, if a company is replacing an old COBOL system with a Python system, the system replacement work can proceed smoothly by sequentially executing the processes from Step 1 to Step 18. Users can check the project progress on the dashboard and receive support from the emotion engine.
[0606] Example 2
[0607] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0608] When migrating source code written in an old programming language to a new programming language or environment, it is necessary to solve the problem of manual conversion work, testing, and data format conversion, which takes a lot of time and effort.In addition, there is a lack of visualization of project progress, monitoring of user emotions, and adaptation support, which can cause users to feel stressed and make project management difficult.
[0609] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means. In this invention, the server includes means for analyzing source code written in an old programming language, means for converting it into a new programming language, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old information processing system into the format of the new information processing system, means for displaying the project progress status, means for recognizing and feedbacking the user's emotions, and means for providing educational materials and real-time support to the user. This makes it possible to efficiently perform the replacement work, reduce the burden on the user, and improve the success rate of the project.
[0610] "Old programming languages" are programming languages such as COBOL and FORTRAN that were widely used in the past but are now less frequently used.
[0611] "New programming languages" are programming languages that are widely used today, such as Python, Java, and JavaScript.
[0612] "Source code analysis" is the process of breaking down input program code into tokens and performing syntactic analysis to understand its logical structure.
[0613] "Tokenization" is the process of dividing source code into characters or symbols and identifying each element.
[0614] "Syntax parsing" is the process of analyzing tokenized source code based on grammatical rules and constructing a syntax tree.
[0615] "Structural analysis" is the process of using data obtained from syntactic analysis to analyze in detail the relationships and functions of each element in the code.
[0616] "Converting to code in a new programming language" means rewriting source code written in an old programming language in accordance with the grammar and rules of a specified new programming language.
[0617] "Optimization" is the process of removing unnecessary instructions and improving the structure of the converted source code to improve its performance.
[0618] "Automatic generation of test cases" means automatically creating input patterns and expected outputs to check the behavior of the converted source code.
[0619] "Data format conversion" is the process of converting the data format used in an old information processing system into the format of a new information processing system.
[0620] "Visualization of project progress" means displaying the project's progress and achievement status in graphs and charts so that it can be checked in real time.
[0621] The "emotion engine" is an engine that analyzes the user's current emotions from their voice, facial expressions, and input patterns, and feeds the results back to the system.
[0622] "Providing educational materials" means providing educational materials and information to help users learn new systems and processes.
[0623] "Real-time support" is a support function that responds immediately to user questions and problems and quickly presents solutions.
[0624] MODE FOR CARRYING OUT THE INVENTION
[0625] This invention automatically converts old programming languages and systems to new languages and environments, and also introduces an emotion engine that recognizes user emotions. This system comprehensively covers everything from source code analysis and conversion to data format conversion, project progress visualization, and user emotion monitoring and feedback.
[0626] Parsing and Transformation
[0627] A user inputs source code written in an older programming language into the system. The server then tokenizes the input source code and constructs a syntax tree through syntactic analysis. This analysis is performed using a syntactic analysis tool such as ANTLR. The server then performs structural analysis to understand the relationships between each part of the code. Based on the analysis results, the server uses a generative AI model (for example, OpenAI's GPT-3) to convert the code into a new programming language based on the input prompt. Specifically, a prompt such as "Convert the following Java code to Python:" can be used.
[0628] Optimization and testing
[0629] The server optimizes the transformed code. This optimization process uses a compiler infrastructure such as LLVM to remove unnecessary instructions and optimize loops to improve code performance. The server then automatically generates test cases for the optimized code. Testing frameworks such as JUnit and PyTest are used to generate the test cases. The generated test cases are executed and the results are analyzed. Any detected bugs are fixed if necessary, and the tests are run again.
[0630] Data Conversion
[0631] The server converts the data format of the old system to that of the new system, using a character code conversion library such as iconv to convert the old character code to UTF-8 format, and also performs data integrity checks to ensure a flawless data migration.
[0632] Project progress support
[0633] The terminal displays the project progress to the user in a dashboard format. Data visualization tools such as Grafana are used to update the progress in real time. This allows users to easily check the progress, making project management easier. It also suggests solutions to problems in the project progress and allows users to select the appropriate one.
[0634] Introducing the Emotion Engine
[0635] The device is equipped with an emotion engine that analyzes the user's voice, facial expressions, and input patterns. This is done using image and audio analysis tools such as OpenCV and TensorFlow. The analysis results are fed back to each function of the system, and if the user feels stressed, the device will display a message encouraging them to take a break. In addition, the device will provide more support depending on the difficulties the user is experiencing during the project.
[0636] Training and real-time support
[0637] The terminal provides training materials on new systems and processes, using online education platforms like Khan Academy and Coursera as references, helping users quickly adapt to the new environment. It also utilizes real-time support, providing AI-powered answers to user questions instantly, helping to quickly resolve user concerns and worries.
[0638] In this way, the present invention comprehensively supports the entire system replacement process and takes into consideration the feelings of users, thereby improving the efficiency and success rate of replacement work.
[0639] The flow of the identification process in the second embodiment will be described with reference to FIG.
[0640] Step 1:
[0641] The user inputs source code written in an older programming language into the system. This input includes, for example, a COBOL source file. The server receives this source code and first tokenizes it. Specific tokenization operations involve using a syntax analysis tool such as ANTLR to split the source code into characters and symbols and identify each element. The source code received as input is then output as a set of tokenized elements.
[0642] Step 2:
[0643] The server performs syntactic analysis based on the tokenized source code. The specific operation of syntactic analysis is to analyze the tokenized elements according to grammatical rules and build a syntax tree. This syntax tree is a data structure that shows the relationships between each element in the code. The tokenized source code is used as input, and a syntax tree is generated as output.
[0644] Step 3:
[0645] The server performs structural analysis based on the parsed source code. The specific operation of structural analysis is to analyze the syntax tree in detail and understand the relationship between each part of the code. This makes the data flow and control flow clear. The syntax tree is used as input, and the structural analysis results are obtained as output.
[0646] Step 4:
[0647] The server uses a generative AI model to convert the code into a new programming language. This conversion process takes a prompt, such as "Convert the following COBOL code into Python," as input and converts the COBOL source code into new Python code. Specifically, the prompt and source code are input into an AI model such as OpenAI's GPT-3, and the converted code in the new programming language is obtained as output.
[0648] Step 5:
[0649] The server optimizes the translated code in the new programming language by using a compiler infrastructure like LLVM to remove unnecessary instructions and optimize loops. This process takes the translated code as input and produces optimized code as output.
[0650] Step 6:
[0651] The server automatically generates test cases for the optimized code. The specific operation of test case generation is to use a testing framework such as JUnit or PyTest to create input and output patterns for each function. The optimized code is used as input, and the generated test cases are obtained as output.
[0652] Step 7:
[0653] The server executes the generated test cases and analyzes the results. Specifically, it runs the automatically generated test cases against the code and compares the obtained output with the expected output. This process uses the generated test cases as input and obtains the test results as output.
[0654] Step 8:
[0655] The server fixes the bug based on the test results. The specific process of fixing the bug involves re-analyzing the code where the test failed, identifying the problem area, and fixing it. The failed test case results are used as input, and the corrected code is obtained as output. The test is then run again to confirm whether the fix was appropriate.
[0656] Step 9:
[0657] The server converts the data format of the old system to the format of the new system. Specifically, it uses a character code conversion library such as iconv to convert the old character code to UTF-8 format. This process takes data in the old format as input and produces data in the new format as output.
[0658] Step 10:
[0659] The terminal displays the project progress to the user in the form of a dashboard. Specifically, it uses a data visualization tool such as Grafana to display the progress in real time as graphs and charts. This process takes project progress data as input and produces a visualized dashboard as output.
[0660] Step 11:
[0661] The device is equipped with an emotion engine that analyzes the user's voice, facial expressions, and input patterns. Specifically, it uses image and voice analysis tools such as OpenCV and TensorFlow to evaluate the user's emotions. This process uses the user's voice and facial expression data as input and obtains an emotion evaluation result as output. If the user feels stressed, the device will display a message encouraging them to take a break.
[0662] Step 12:
[0663] The device provides training materials for new systems and processes. Specifically, it retrieves and displays educational materials from online education platforms such as Khan Academy and Coursera. This process takes the new system or process materials as input and displays the training materials as output. It also includes a real-time support function that allows AI to instantly answer user questions.
[0664] (Application example 2)
[0665] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0666] Migrating from an old programming language or system to a new language or environment is a time-consuming and laborious task. It is also necessary to manage the project's progress during the migration process and consider the user's feelings and burden. However, this is difficult to do efficiently with the current system. This can increase project complexity and user stress during the system migration process, potentially resulting in a decrease in efficiency.
[0667] The specific processing by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for analyzing source code written in an old programming language, means for converting the source code into a new programming language based on the analysis results, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old system into the format of the new system, means for displaying the project progress, means for monitoring the user's emotions, means for providing feedback based on the user's emotional data, means for displaying notifications encouraging relaxation, means for providing training materials, and means for providing real-time support. This not only efficiently supports the entire system migration process, but also takes into account the user's emotions and promotes rapid adaptation to a new environment while reducing stress.
[0668] definition statement
[0669] An "old programming language" is a programming language that was used in legacy systems and applications, but is no longer mainstream.
[0670] "Source code" means code containing textual instructions written to define the behavior of a program.
[0671] "Analysis" refers to the process of tokenizing input source code and understanding its structure and behavior through syntactic analysis.
[0672] A "new programming language" refers to a programming language that is compatible with the latest technologies and development environments.
[0673] "Conversion" is the process of replacing code written in an old programming language with code written in a new programming language.
[0674] "Optimization" refers to adjustments or modifications made to the transformed code to improve its performance or efficiency.
[0675] A "test case" refers to a configuration containing a set of input data and expected output results used to verify the behavior of a program.
[0676] "Automatic generation" refers to the mechanical creation of programs and data without the need for manual input or editing.
[0677] "Execution" refers to running program code on a computer or server.
[0678] "Data format" refers to the state in which data is organized and arranged according to a specific structure or format.
[0679] "Project progress" is information that indicates the progress and achievement status of a system migration or development project.
[0680] "Emotion monitoring" refers to the process of monitoring and recognizing a user's emotional state in real time.
[0681] "Feedback" refers to information and assistance provided based on the user's emotional data.
[0682] "Relaxation notifications" are messages displayed to help users reduce stress and fatigue.
[0683] "Training Materials" refers to educational and learning content provided to help users quickly adapt to new systems and processes.
[0684] "Real-time support" is a support service that provides immediate solutions and answers to users' questions and problems.
[0685] This invention combines an AI system for automatically converting old programming languages and systems to new languages and environments with an emotion engine that recognizes user emotions. This system aims to streamline system migration and improve user experience, especially in electronic payment services.
[0686] Parsing and Transformation
[0687] The server receives source code written in the old programming language as input. First, it tokenizes the input source code and builds a syntax tree through syntactic analysis. Then it performs structural analysis to understand the relationships between each part of the code. Based on the results of this analysis, the server converts the code into the new programming language and then optimizes it.
[0688] Optimization and testing
[0689] The server automatically generates test cases for the optimized new programming language code and executes them to ensure quality. Based on the test results, any necessary bug fixes are made and the test is then carried out again. This ensures the quality of the new system.
[0690] Data Conversion
[0691] The data formats used in the old system are also converted to the new system format. The server performs this data conversion and performs data integrity checks, including converting old character encodings to the new UTF-8 format.
[0692] Project progress support
[0693] The terminal displays the project progress to the user in a dashboard format, allowing the user to check the progress in real time, making project management easier. It also proposes solutions to problems that arise during the project and allows the user to select them.
[0694] Introducing the Emotion Engine
[0695] The device is equipped with an emotion engine that recognizes the user's current emotions by analyzing their voice, facial expressions, input patterns, etc. This emotion data is fed back to each function of the system. For example, if the user is feeling stressed, the device will display a message encouraging them to relax. Furthermore, the support provided will be strengthened depending on the difficulties the user is experiencing as the project progresses. When a specific problem occurs, the device will reduce the burden on the user by suggesting solutions more frequently and providing detailed help.
[0696] Training and real-time support
[0697] The terminals provide training materials on new systems and processes to help users quickly adapt to the new environment, and utilize real-time support functions to instantly answer user questions using AI, quickly resolving any concerns or doubts users may have.
[0698] Hardware and software used
[0699] AI Emotion Recognition Library: A library that includes conversational emotion recognition (e.g., Affectiva, Microsoft Azure Emotion API)
[0700] Code analysis and transformation libraries: Libraries for converting old code to new languages (e.g., Roslyn, ANTLR)
[0701] Data conversion libraries: for data format conversion (e.g., Apache Nifi, Babel)
[0702] Dashboard libraries: UI components for displaying progress in real time (e.g., Dash, Grafana)
[0703] Real-time support libraries: AI libraries for user assistance (e.g., OpenAI GPT, Dialogflow)
[0704] Specific examples
[0705] For example, consider a company using this system to replace an old electronic payment system written in C++ with Java. Users input the old code into the system, and the server parses and converts it to the new language. After conversion, the optimized code is tested, and the old data is converted to the new format. Project progress is displayed on the device in real time, and an emotion engine monitors the user's stress level and displays notifications encouraging relaxation as needed. Additionally, training materials and real-time support help users quickly learn the new system.
[0706] Prompt Sentence Examples
[0707] "Please convert the source code of an electronic payment system written in old C++ to Java, optimize it, and generate test cases. Also, please include a function to recognize user sentiment in real time and provide feedback."
[0708] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[0709] Step 1:
[0710] The user inputs source code written in an old programming language. The old source code is provided as input in the form of a file. The source code is sent to the server.
[0711] Step 2:
[0712] The server tokenizes and parses the input source code. Here, it uses a code parsing library (e.g., Roslyn, ANTLR) to analyze the source code and build a syntax tree. It parses the source code it receives as input and generates a syntax tree as output.
[0713] Step 3:
[0714] The server performs structural analysis based on syntax analysis to understand the relationships between each part of the code. Based on the analysis results, it applies a code transformation algorithm to generate code transformed into a new programming language. It takes the syntax tree as input and generates the transformed code in the new programming language as output.
[0715] Step 4:
[0716] The server optimizes the generated code in the new programming language. It uses a code optimization library to perform optimizations for performance and efficiency. It takes the code in the new programming language as input and generates optimized code as output.
[0717] Step 5:
[0718] The server automatically generates test cases for the optimized code and executes them. It uses a test case generation library to create input and output patterns for each function and performs the test. It receives the optimized code as input and generates test results as output.
[0719] Step 6:
[0720] The server converts the data format of the old system to the format of the new system. It uses a data conversion library (e.g., Apache Nifi, Babel) to convert data formats and perform data integrity checks. It takes the old data format as input and produces the new data format as output.
[0721] Step 7:
[0722] The terminal displays project progress in the form of a dashboard. It uses a dashboard library (e.g., Dash, Grafana) to allow you to check progress in real time. It receives project progress data as input and displays it on the dashboard as output.
[0723] Step 8:
[0724] The device monitors the user's emotions using an emotion engine. It uses emotion recognition libraries (e.g., Affectiva, Microsoft Azure Emotion API) to analyze the user's voice, facial expressions, and input patterns. It receives the user's voice and facial expression data as input and generates the user's emotional state as output.
[0725] Step 9:
[0726] The device provides feedback based on the user's emotional data and displays a notification encouraging relaxation as needed. It also generates a relaxation notification or support message based on the emotional data. It receives the user's emotional state as input and displays a feedback message as output.
[0727] Step 10:
[0728] The terminal provides training materials for new systems and processes, prepares training materials to help users quickly adapt to new environments, receives training material data as input, and provides it to users as output.
[0729] Step 11:
[0730] The device provides real-time support and instant AI answers to user questions. It uses real-time support libraries (e.g., OpenAI GPT, Dialogflow) to provide answers to user questions. It takes the user's question as input and generates an answer as output.
[0731] The specific processing unit 290 transmits the result of the specific processing to the smart glasses 214. In the smart glasses 214, the control unit 46A causes the speaker 240 to output the result of the specific processing. The microphone 238 acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0732] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0733] In the above embodiment, an example in which the specific processing is performed by the data processing device 12 has been given, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the smart glasses 214.
[0734] [Third embodiment]
[0735] FIG. 5 shows an example of the configuration of a data processing system 310 according to the third embodiment.
[0736] 5, the data processing system 310 includes the data processing device 12 and a headset terminal 314. An example of the data processing device 12 is a server.
[0737] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0738] The headset type terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication I / F 44, and a display 343. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, the camera 42, and the display 343 are also connected to the bus 52.
[0739] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.
[0740] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[0741] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 are responsible for the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.
[0742] Fig. 6 shows an example of the main functions of the data processing device 12 and the headset type terminal 314. As shown in Fig. 6, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.
[0743] The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0744] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0745] In the headset type terminal 314, a reception output process is performed by the processor 46. A reception output program 60 is stored in the storage 50. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[0746] Next, a description will be given of the identification process performed by the identification processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as the "server" and the headset type terminal 314 will be referred to as the "terminal."
[0747] This invention is an AI system that automatically converts old programming languages and systems to new languages and environments. The system analyzes the old programming language code entered by the user and generates new programming language code based on the analysis results. Furthermore, it optimizes the generated code and automatically generates and executes test cases to ensure the quality of the entire system. It also has the function of converting data formats used in the old system to new formats and visualizing the progress of the project.
[0748] (Analysis and Transformation)
[0749] The user inputs source code written in an older programming language into the system. The server then analyzes the source code by tokenizing, parsing, and structurally analyzing the code. This extracts the relationships between each part of the code (functions, classes, loops, etc.). Based on the analysis results, the server generates code in a new programming language. For example, it can parse code written in COBOL and generate code with the same functionality in Python.
[0750] (Optimization and testing)
[0751] The server further optimizes the generated code in the new programming language. This optimization includes removing unnecessary code and replacing it with faster algorithms. For the optimized code, the server automatically generates test cases, runs them, and analyzes the results. Based on the test results, it automatically generates fixes for detected bugs and incorporates them into the code.
[0752] (Data conversion)
[0753] The server also plays a vital role in the process of converting data formats used in the old system to the format of the new system. It receives the old data and converts its character encoding and structure to the appropriate format. For example, it converts the character encoding from EBCDIC to UTF-8. It also performs data integrity checks on the converted data to ensure that it has been loaded correctly.
[0754] (Project progress support)
[0755] To ensure the project runs smoothly, the device displays the project's progress in a dashboard format, allowing users to check the current progress in real time and make any necessary adjustments immediately. The device also suggests solutions to ongoing problems, allowing users to select the optimal solution from a selection of options.
[0756] (Training and real-time support)
[0757] Training on new systems and processes is also important, so the terminals provide users with training materials. Through video tutorials and documentation, users can quickly become familiar with their new environment. Furthermore, the terminals are equipped with a real-time Q&A function, allowing users to input questions about the system and instantly provide answers using AI.
[0758] (Example)
[0759] For example, consider the case where a company is replacing its old COBOL system with a Python system. First, the user inputs the COBOL code into the system. The server analyzes the code and converts it into Python code. The server then optimizes the converted code and automatically generates and runs test cases. The server then converts the data used in the COBOL system into UTF-8 format data and loads it into the new system. The project's progress is displayed in real time on a terminal, allowing users to check the progress and resolve any issues. Training and support for the new system are also provided, ensuring a smooth overall replacement process.
[0760] In this way, the present invention provides an efficient replacement for older programming languages and systems, saving time and money.
[0761] The processing flow will be explained below.
[0762] Step 1:
[0763] Users input source code written in an old programming language into the system.
[0764] Step 2:
[0765] The server tokenizes the input source code. At this stage, the source code is broken down into the smallest unit of tokens.
[0766] Step 3:
[0767] The server parses the tokenized code and builds a syntax tree, which gives it an understanding of the grammatical structure of the code.
[0768] Step 4:
[0769] Based on the syntax tree, the server analyzes the structure of the code and extracts the relationships between each part of the program (functions, classes, loops, etc.).
[0770] Step 5:
[0771] The server generates code for a new programming language based on the analysis results, for example, converting COBOL grammar into Python grammar.
[0772] Step 6:
[0773] The server optimizes the generated code in the new programming language by removing unnecessary code and applying efficient algorithms.
[0774] Step 7:
[0775] The server performs a syntax check on the optimized code and automatically runs basic tests to detect basic errors and warnings.
[0776] Step 8:
[0777] The server automatically generates test cases for the optimized code, for example, creating input and output patterns for each function.
[0778] Step 9:
[0779] The server executes the generated test cases and collects and analyzes the test results, thereby verifying the quality of the code.
[0780] Step 10:
[0781] Based on the test results, the server automatically generates fixes for detected bugs and applies them to the code, thereby improving the stability of the code.
[0782] Step 11:
[0783] The server converts the data format used by the old system to the format used by the new system, for example by converting the character encoding from EBCDIC to UTF-8.
[0784] Step 12:
[0785] The server loads the converted data into the new system and performs a data integrity check to ensure the data has been converted correctly.
[0786] Step 13:
[0787] The terminal displays the project progress to the user in a dashboard format, allowing the user to check the current progress in real time.
[0788] Step 14:
[0789] The device uses AI to detect solutions to problems that arise during the project and suggests them to the user, allowing them to select the optimal solution.
[0790] Step 15:
[0791] The terminal provides users with training materials (videos, documentation, etc.) on new systems and processes, allowing them to quickly adapt to the new environment.
[0792] Step 16:
[0793] The terminal provides a chat function where users can input questions about the system and AI will provide answers in real time, quickly resolving any doubts or concerns users may have.
[0794] Example 1
[0795] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[0796] With the previous system, converting source code written in an older programming language into a newer one required a lot of manual work, which was time-consuming and costly. There was also a need for efficiency improvements in many aspects, such as quality assurance of the converted code, data format conversion, and visualization of project progress. Furthermore, there was a lack of functionality to provide user training and real-time support, making it difficult to adapt to the new environment.
[0797] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[0798] In this invention, the server includes means for analyzing source code written in an old programming language, means for converting the source code into a new programming language based on the analysis results, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old system into the format of the new system, means for displaying the project progress, means for presenting solutions to ongoing problems in real time, means for providing training materials to users, and means for providing answers to user questions in real time, thereby enabling efficient replacement of old systems and reducing time and costs.
[0799] An "old programming language" is a programming language that was widely used in the past but has now been superseded by newer languages or technologies.
[0800] "New programming languages" refer to programming languages that are currently widely used or are expected to become mainstream in the future.
[0801] "Source code" refers to a set of instructions or logic written in a programming language.
[0802] "Analysis" refers to the process of breaking down source code to make its structure and meaning easier to understand.
[0803] "Conversion" refers to the process of converting data or code from one format into another.
[0804] "Optimization" refers to the process of improving code or algorithms to make them run more efficiently or faster.
[0805] A "test case" defines the expected output for a specific input in order to verify the behavior of a program.
[0806] "Data format" refers to the form or structure in which data is stored.
[0807] "Project progress" refers to the progress of each phase and task of the project.
[0808] "Real-time" refers to the instant a response is returned the moment a user performs an operation or asks a question.
[0809] A "solution" refers to a means or method for solving a particular problem.
[0810] "Training Materials" refers to educational content provided to users to familiarize them with new systems or processes.
[0811] "AI-based model" refers to a mathematical or algorithmic model that is trained to perform a specific task using artificial intelligence.
[0812] "Input and output patterns for each function" refers to the combination of input values and corresponding output values for a specific function.
[0813] A "server" refers to a computer system that provides services to clients over a network.
[0814] "Terminal" refers to a computer or device that can be directly operated by a user.
[0815] "Automatic generation" refers to the system automatically generating data, code, and test cases without human intervention.
[0816] The present invention is an AI system that automatically converts old programming languages and systems to new languages and environments, and is implemented in the following manner.
[0817] First, users upload source code written in an older programming language into the system's designated input form, where they are also given the option to select the target programming language.
[0818] Next, the server performs a tokenization process to analyze the received source code. This tokenization process means dividing the source code into units that are easy to analyze. For example, a COBOL variable declaration is tokenized as "85 FIELD-NAME PIC X(10)".
[0819] The server then performs syntax analysis based on the tokenized code. This analysis understands the grammatical structure of the code and represents it as tree-structured data. The server then performs structural analysis to extract relationships between functions, classes, loops, and other elements within the code.
[0820] Once the structural analysis is complete, the server automatically generates code in a new programming language based on the analysis results. During this phase, for example, COBOL code can be converted to Python. The converted code is then adapted to run in the new environment.
[0821] The server then optimizes the new code, removing unnecessary variables and redundant loops and replacing them with more efficient algorithms. For example, nested loops may be converted into a single loop. The server then automatically generates test cases for the optimized code, runs them, and analyzes the results. This process ensures the quality of the code.
[0822] Additionally, the server automatically generates and presents fixes to the discovered bugs to the user, and if the user approves the fixes, they are applied to the code.
[0823] The server also converts data formats used in the old system to the new format, for example, converting character codes from EBCDIC to UTF-8, and then performs consistency checks on the converted data.
[0824] The device displays the project progress in real time on a dashboard, allowing users to grasp the progress at a glance and make any necessary adjustments quickly. In addition, the device can suggest solutions to ongoing problems in real time, providing users with options.
[0825] The device also provides users with training materials on new systems and processes, helping them quickly familiarize themselves with new environments through video tutorials and documentation. Users can also input questions about the system and the device instantly provides answers using AI.
[0826] Specific examples
[0827] For example, consider a company replacing its old COBOL system with a Python system. First, the user inputs COBOL code into the system. The server analyzes this code and converts it into Python code. The server then optimizes the converted Python code and automatically generates and runs test cases. The server then automatically generates fixes for any bugs discovered and implements them after obtaining the user's approval. The server also converts data from the old COBOL system into UTF-8 format and loads it into the new system. The project progress is displayed in real time on the terminal, allowing the user to efficiently resolve issues. The terminal provides training materials for the new system, allowing the user to quickly become familiar with the new environment. If the user has any questions, the terminal uses AI to provide answers in real time.
[0828] An example of a prompt statement is "Please parse the following COBOL code and convert it into Python code with the same functionality."
[0829] In this way, the present invention provides an efficient replacement for older programming languages and systems, saving time and money.
[0830] The flow of the identification process in the first embodiment will be described with reference to FIG.
[0831] Step 1:
[0832] Users input source code written in an older programming language into the system. Specifically, they upload the source code file into the system's designated input form. At this time, they are also given the option to select the target programming language. The input source code is then passed directly to the server.
[0833] Step 2:
[0834] The server tokenizes the source code it receives. First, it reads the source code line by line and divides each part into units (tokens) that are easy to parse. In this tokenization process, for example, a COBOL variable declaration statement is divided into individual tokens, such as "85 FIELD-NAME PIC X(10)". The input is the source code from the user, and the output is a list of tokens.
[0835] Step 3:
[0836] The server performs syntax analysis based on the tokenized code. In syntax analysis, the list of tokens is analyzed and the grammatical structure of the code is expressed as tree-structured data. For example, the block structure of functions, classes, and loops is clarified. The input is a list of tokens, and the output is a syntax tree.
[0837] Step 4:
[0838] The server performs structural analysis to extract relationships between functions, classes, loops, etc. in the code. Here, it analyzes the logical structure and data flow of the program based on the syntax tree. The input is the syntax tree, and the output is a data model that represents the structure of the entire program.
[0839] Step 5:
[0840] The server generates code in a new programming language based on the analysis results. Specifically, it reconstructs the code to conform to the grammar of the new language while preserving the functionality of the original program. For example, it converts COBOL code into Python code. The input is a structural data model of the program, and the output is source code in the new programming language.
[0841] Step 6:
[0842] The server optimizes the new code it generates by removing unnecessary variables and redundant loops and replacing them with more efficient algorithms, for example by changing nested loops into a single loop. The input is the generated source code, and the output is the optimized source code.
[0843] Step 7:
[0844] The server automatically generates test cases for the optimized code. Here, it creates input and output patterns for each function and generates test cases based on them. It then executes the generated test cases and analyzes the results. The input is the optimized source code, and the output is the test results and their analysis data.
[0845] Step 8:
[0846] The server automatically generates proposed fixes for detected bugs based on the test results. The proposed fixes are presented to the user, and if the user approves them, the fixes are applied to the code. The input is the test analysis data, and the output is the corrected source code.
[0847] Step 9:
[0848] The server converts the data format of the old system to the new format, for example converting character encoding from EBCDIC to UTF-8, and performs data integrity checks. The input is the old data format and the output is the new data format.
[0849] Step 10:
[0850] The terminal displays the project progress in real time on a dashboard, which visually displays the progress of each processing step, any problems that arise, and proposed solutions. The input is progress data from the server, and the output is a dashboard that can be viewed by the user.
[0851] Step 11:
[0852] The terminal provides training materials to the user, such as video tutorials and documentation, to help the user quickly familiarize themselves with the new system. The input is the training materials, and the output is the training content provided to the user.
[0853] Step 12:
[0854] The terminal provides real-time answers to user questions. When a user inputs a question about the system, the terminal immediately uses AI to provide an appropriate answer. The input is the user's question, and the output is the answer.
[0855] The above are the specific processing steps of this system.
[0856] (Application example 1)
[0857] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[0858] Maintaining and updating source code written in old programming languages for control systems such as factory robots is complex, time-consuming, and costly. In particular, manually converting old code to new programming languages is inefficient and error-prone. Furthermore, the lack of a way to convert data formats and keep track of project progress in real time reduces the overall efficiency of the work.
[0859] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[0860] In this invention, the server includes means for analyzing source code written in an old programming language, means for converting the source code to a new programming language based on the analysis results, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old system to the format of the new system, means for displaying the project progress, means for automatically converting and optimizing the factory robot control program to a new language or environment, means for displaying the progress in real time and supporting problem solving, and means for providing training materials and real-time support functions. This enables efficient conversion from old programs to new programs in factory robot control systems, enabling high-quality system operation with fewer errors.
[0861]
[0862] An "old programming language" is a programming language that was used in the past but is no longer in widespread use.
[0863] An "analyzing means" is a method or device for understanding the syntax and semantics of source code and analyzing its structure.
[0864] A "means for converting to a new programming language" is a method or device for converting code written in an older programming language into a modern programming language based on the analysis results.
[0865] An "optimization means" is a method or apparatus for improving the performance or efficiency of generated code.
[0866] A "means for automatically generating and executing test cases" is a method or apparatus for automatically creating and executing test cases to verify whether the generated code operates correctly.
[0867] A "means for converting data formats" is a method or device for converting data between different data formats.
[0868] A "means for displaying project progress" is a method or device for visually displaying the current progress of a project.
[0869] A "factory robot control program" is a program for controlling the operation of automated equipment and robots in a factory.
[0870] "Means for automatic conversion and optimization to a new language or environment" refers to a method or device for analyzing an old control program, converting it to a new language, and optimizing the code.
[0871] "Means for displaying progress in real time and supporting problem solving" refers to a method or device for displaying the progress of a project in real time and providing immediate solutions to any problems that arise.
[0872] "Means for providing training materials and real-time support" means a method or device for providing training materials to help users quickly become familiar with new systems or processes, and for providing real-time support as needed.
[0873]
[0874] This invention provides a system that automatically converts and optimizes factory robot control programs for new languages and environments. The entire system is mainly composed of a server and terminals, and includes the following means:
[0875] First, the server uses an analysis tool to analyze source code written in the old programming language. This analysis tool tokenizes, parses, and analyzes the source code. The analysis results reveal the relationships between parts of the code (functions, classes, loops, etc.). Based on the analysis results, the server uses a generative AI model to convert the code to the new programming language. For example, when converting old Assembly code to Python, the server processes the analysis results using a generative AI model to generate code in the new language.
[0876] Next, the server uses an optimization tool to optimize the generated code in the new programming language. This tool improves the performance of the code by removing unnecessary code and replacing it with efficient algorithms. The server then automatically generates and runs test cases for the optimized code. A test case generation tool is used to generate test cases, creating input and output patterns for each function. This automatic testing verifies that the converted code operates correctly.
[0877] The server also includes a means to convert data formats from the old system to the new system format. A data format conversion tool is used to convert old data (e.g., EBCDIC) to the new data format (e.g., UTF-8). After conversion, a data integrity check is performed to ensure that the data is loaded correctly.
[0878] Project progress is displayed in real time on the terminal. The terminal displays progress in a dashboard format, allowing users to understand the progress at a glance. The terminal also suggests solutions to ongoing problems, allowing users to take optimal action based on these. Training materials for new systems and processes are also provided. The training materials include video tutorials and documentation, allowing users to quickly become familiar with the new environment. The system also has a real-time support function, allowing users to input questions about the system and receive instant answers using AI.
[0879] As a concrete example, consider the case of converting old assembly code used in a factory to Python. First, the user inputs the old assembly code into the system. The server analyzes the code and generates Python code. The generated code is then optimized and automatically generated test cases are executed. After verifying that the optimized code works correctly, the data is converted to the new format using a data format conversion tool. The project progress is displayed in real time on the terminal, and the user works while taking advantage of training materials and real-time support.
[0880] Examples of prompts for a generative AI model might include:
[0881] "Convert the following Assembly code to Python. The code snippet is below: MOV AX, BX; INC AX; ADD AX, 10"
[0882] In this way, the present invention realizes an efficient replacement of old programming languages and systems in factory robot control systems, resulting in improved work efficiency and reduced errors.
[0883] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[0884]
[0885] Step 1:
[0886] The user inputs source code written in an old programming language. For example, the user provides old Assembly code to the system. The input data is source code in the old programming language.
[0887] Step 2:
[0888] The server tokenizes, parses, and analyzes the input source code. It first breaks it down into tokens, then uses a parser to analyze the semantic structure of the code, and finally understands the overall structure of the source code based on the analysis results. The output of this process is the analyzed coding structure.
[0889] Step 3:
[0890] Based on the analysis results, the server uses a generative AI model to generate code for a new programming language. A prompt is given to the generative AI model to create new code based on the analysis results. For example, the following prompt is input to the generative AI model: "Convert the following Assembly code into Python. The code fragment is shown below: MOV AX, BX; INC AX; ADD AX, 10." The output is the source code for the new programming language.
[0891] Step 4:
[0892] The server optimizes the generated code in the new programming language. It uses optimization tools to remove unnecessary code and replace it with more efficient algorithms. This optimized code has improved performance and efficiency. The output is the optimized code.
[0893] Step 5:
[0894] The server automatically generates and executes test cases for the optimized code. It uses a test case generation tool to create input and output patterns for each function and automatically executes the tests. The test results verify whether the code works correctly. The output is the test results.
[0895] Step 6:
[0896] The server converts the data format of the old system to the format of the new system. For example, it uses a data format conversion tool to convert data in EBCDIC format to UTF-8. The data output by this process is the data converted to the new format.
[0897] Step 7:
[0898] The terminal displays the progress of the project in real time on a dashboard, visually displaying the progress, any issues that have arisen, and the progress status, allowing the user to check at a glance. The output is visualized data of the progress.
[0899] Step 8:
[0900] Users can constantly check the progress of the project through the dashboard displayed on their device, and select and apply the proposed solutions. Specific operations involve implementing the solutions using the support provided by the real-time support function. The output is the applied solution and its results.
[0901] Step 9:
[0902] The terminal provides training materials and real-time support functions. It provides video tutorials, documentation, and answers real-time questions to help users quickly become familiar with new systems and processes. The output is training materials and real-time support information.
[0903] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.
[0904] This invention combines an AI system for automatically converting old programming languages and systems to new languages and environments with an emotion engine that recognizes user emotions. As shown below, this system comprehensively covers everything from source code analysis and conversion to data format conversion, project progress visualization, and user emotion monitoring and feedback.
[0905] (Analysis and Transformation)
[0906] The user inputs source code written in an older programming language into the system. The server then tokenizes the input source code and constructs a syntax tree through syntactic analysis. It then uses structural analysis to understand the relationships between each part of the code. Based on the analysis results, the server converts the code into a new programming language and then optimizes it.
[0907] (Optimization and testing)
[0908] The server automatically generates test cases for the optimized new programming language code and executes them to ensure quality. Based on the test results, any necessary bug fixes are made and the code is tested again.
[0909] (Data conversion)
[0910] The data formats used in the old system are also converted to the new system format. The server performs this data conversion and performs data integrity checks, including converting old character encodings to the new UTF-8 format.
[0911] (Project progress support)
[0912] The terminal displays the project progress to the user in a dashboard format, allowing the user to check the progress in real time, making project management easier. It also proposes solutions to problems that arise during the project and allows the user to select them.
[0913] (Introduction of emotion engine)
[0914] The device is equipped with an emotion engine that recognizes the user's current emotions by analyzing the user's voice, facial expressions, input patterns, etc. This emotion data is fed back to each function of the system.
[0915] For example, if a user is feeling stressed, the device will display a message encouraging them to take a break. Furthermore, support will be enhanced depending on the difficulties the user is experiencing during the project. For example, when a specific problem occurs, the device will reduce the user's burden by providing more frequent solution suggestions and detailed help.
[0916] (Training and real-time support)
[0917] The terminals provide training materials on new systems and processes to help users quickly adapt to the new environment, and utilize real-time support functions to instantly answer user questions using AI, quickly resolving any concerns or doubts users may have.
[0918] (Example)
[0919] For example, consider a company using this system to replace an old COBOL system with a Python system. Users input COBOL code into the system, and the server parses and converts it into Python code. After conversion, the optimized code is tested, and the data used in COBOL is converted to the new format. Project progress is displayed on the terminal in real time, and an emotion engine monitors the user's stress level and prompts them to take a break when necessary. Furthermore, training materials and real-time support help users quickly learn the new system.
[0920] In this way, the present invention can efficiently and effectively support the entire system replacement process, while also taking into consideration the feelings of users, thereby improving the success rate of the project and reducing time and costs.
[0921] The processing flow will be explained below.
[0922] Step 1:
[0923] Users input source code written in an old programming language into the system.
[0924] Step 2:
[0925] The server tokenizes the input source code. Tokenization is the process of breaking down the source code into the smallest unit, tokens.
[0926] Step 3:
[0927] The server parses the tokenized code and builds a syntax tree, which gives it an understanding of the grammatical structure of the code.
[0928] Step 4:
[0929] The server analyzes the code structure based on the syntax tree, specifically extracting relationships between functions, classes, loops, etc.
[0930] Step 5:
[0931] The server converts the results of the analysis into code in a new programming language, for example, analyzing COBOL code and generating Python code.
[0932] Step 6:
[0933] The server optimizes the new code it generates by removing unnecessary code and applying efficient algorithms.
[0934] Step 7:
[0935] The server performs a syntax check on the optimized code, which detects and corrects basic errors.
[0936] Step 8:
[0937] The server automatically generates test cases for the optimized code, based on the input and output patterns for each function.
[0938] Step 9:
[0939] The server executes the generated test cases, collects the results, and analyzes them to detect defects.
[0940] Step 10:
[0941] Based on the test results, the server automatically generates suggested fixes for detected defects and incorporates them into the code.
[0942] Step 11:
[0943] The server converts the data format used by the old system to the format used by the new system, for example by converting the character encoding from EBCDIC to UTF-8.
[0944] Step 12:
[0945] The server loads the converted data into the new system and checks the data integrity to ensure that the data has been converted correctly.
[0946] Step 13:
[0947] The device displays the project progress to the user in a dashboard format, allowing the user to check progress in real time.
[0948] Step 14:
[0949] The device uses AI to propose solutions to problems that arise during the project, and users can select the most appropriate solution from the suggestions.
[0950] Step 15:
[0951] The device uses an emotion engine to analyze the user's facial expressions, voice, and input patterns to recognize the user's emotions.
[0952] Step 16:
[0953] The device will provide appropriate support based on the user's emotional data. For example, if the user is feeling stressed, it will display a message encouraging them to take a break.
[0954] Step 17:
[0955] The terminal provides training materials on new systems and processes, including videos and documentation.
[0956] Step 18:
[0957] The device runs a chat function where users can enter questions about the system and AI will provide answers in real time.
[0958] As a concrete example, if a company is replacing an old COBOL system with a Python system, the system replacement work can proceed smoothly by sequentially executing the processes from Step 1 to Step 18. Users can check the project progress on the dashboard and receive support from the emotion engine.
[0959] Example 2
[0960] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[0961] When migrating source code written in an old programming language to a new programming language or environment, it is necessary to solve the problem of manual conversion work, testing, and data format conversion, which takes a lot of time and effort.In addition, there is a lack of visualization of project progress, monitoring of user emotions, and adaptation support, which can cause users to feel stressed and make project management difficult.
[0962] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means. In this invention, the server includes means for analyzing source code written in an old programming language, means for converting it into a new programming language, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old information processing system into the format of the new information processing system, means for displaying the project progress status, means for recognizing and feedbacking the user's emotions, and means for providing educational materials and real-time support to the user. This makes it possible to efficiently perform the replacement work, reduce the burden on the user, and improve the success rate of the project.
[0963] "Old programming languages" are programming languages such as COBOL and FORTRAN that were widely used in the past but are now less frequently used.
[0964] "New programming languages" are programming languages that are widely used today, such as Python, Java, and JavaScript.
[0965] "Source code analysis" is the process of breaking down input program code into tokens and performing syntactic analysis to understand its logical structure.
[0966] "Tokenization" is the process of dividing source code into characters or symbols and identifying each element.
[0967] "Syntax parsing" is the process of analyzing tokenized source code based on grammatical rules and constructing a syntax tree.
[0968] "Structural analysis" is the process of using data obtained from syntactic analysis to analyze in detail the relationships and functions of each element in the code.
[0969] "Converting to code in a new programming language" means rewriting source code written in an old programming language in accordance with the grammar and rules of a specified new programming language.
[0970] "Optimization" is the process of removing unnecessary instructions and improving the structure of the converted source code to improve its performance.
[0971] "Automatic generation of test cases" means automatically creating input patterns and expected outputs to check the behavior of the converted source code.
[0972] "Data format conversion" is the process of converting the data format used in an old information processing system into the format of a new information processing system.
[0973] "Visualization of project progress" means displaying the project's progress and achievement status in graphs and charts so that it can be checked in real time.
[0974] The "emotion engine" is an engine that analyzes the user's current emotions from their voice, facial expressions, and input patterns, and feeds the results back to the system.
[0975] "Providing educational materials" means providing educational materials and information to help users learn new systems and processes.
[0976] "Real-time support" is a support function that responds immediately to user questions and problems and quickly presents solutions.
[0977] MODE FOR CARRYING OUT THE INVENTION
[0978] This invention automatically converts old programming languages and systems to new languages and environments, and also introduces an emotion engine that recognizes user emotions. This system comprehensively covers everything from source code analysis and conversion to data format conversion, project progress visualization, and user emotion monitoring and feedback.
[0979] Parsing and Transformation
[0980] A user inputs source code written in an older programming language into the system. The server then tokenizes the input source code and constructs a syntax tree through syntactic analysis. This analysis is performed using a syntactic analysis tool such as ANTLR. The server then performs structural analysis to understand the relationships between each part of the code. Based on the analysis results, the server uses a generative AI model (for example, OpenAI's GPT-3) to convert the code into a new programming language based on the input prompt. Specifically, a prompt such as "Convert the following Java code to Python:" can be used.
[0981] Optimization and testing
[0982] The server optimizes the transformed code. This optimization process uses a compiler infrastructure such as LLVM to remove unnecessary instructions and optimize loops to improve code performance. The server then automatically generates test cases for the optimized code. Testing frameworks such as JUnit and PyTest are used to generate the test cases. The generated test cases are executed and the results are analyzed. Any detected bugs are fixed if necessary, and the tests are run again.
[0983] Data Conversion
[0984] The server converts the data format of the old system to that of the new system, using a character code conversion library such as iconv to convert the old character code to UTF-8 format, and also performs data integrity checks to ensure a flawless data migration.
[0985] Project progress support
[0986] The terminal displays the project progress to the user in a dashboard format. Data visualization tools such as Grafana are used to update the progress in real time. This allows users to easily check the progress, making project management easier. It also suggests solutions to problems in the project progress and allows users to select the appropriate one.
[0987] Introducing the Emotion Engine
[0988] The device is equipped with an emotion engine that analyzes the user's voice, facial expressions, and input patterns. This is done using image and audio analysis tools such as OpenCV and TensorFlow. The analysis results are fed back to each function of the system, and if the user feels stressed, the device will display a message encouraging them to take a break. In addition, the device will provide more support depending on the difficulties the user is experiencing during the project.
[0989] Training and real-time support
[0990] The terminal provides training materials on new systems and processes, using online education platforms like Khan Academy and Coursera as references, helping users quickly adapt to the new environment. It also utilizes real-time support, providing AI-powered answers to user questions instantly, helping to quickly resolve user concerns and worries.
[0991] In this way, the present invention comprehensively supports the entire system replacement process and takes into consideration the feelings of users, thereby improving the efficiency and success rate of replacement work.
[0992] The flow of the identification process in the second embodiment will be described with reference to FIG.
[0993] Step 1:
[0994] The user inputs source code written in an older programming language into the system. This input includes, for example, a COBOL source file. The server receives this source code and first tokenizes it. Specific tokenization operations involve using a syntax analysis tool such as ANTLR to split the source code into characters and symbols and identify each element. The source code received as input is then output as a set of tokenized elements.
[0995] Step 2:
[0996] The server performs syntactic analysis based on the tokenized source code. The specific operation of syntactic analysis is to analyze the tokenized elements according to grammatical rules and build a syntax tree. This syntax tree is a data structure that shows the relationships between each element in the code. The tokenized source code is used as input, and a syntax tree is generated as output.
[0997] Step 3:
[0998] The server performs structural analysis based on the parsed source code. The specific operation of structural analysis is to analyze the syntax tree in detail and understand the relationship between each part of the code. This makes the data flow and control flow clear. The syntax tree is used as input, and the structural analysis results are obtained as output.
[0999] Step 4:
[1000] The server uses a generative AI model to convert the code into a new programming language. This conversion process takes a prompt, such as "Convert the following COBOL code into Python," as input and converts the COBOL source code into new Python code. Specifically, the prompt and source code are input into an AI model such as OpenAI's GPT-3, and the converted code in the new programming language is obtained as output.
[1001] Step 5:
[1002] The server optimizes the translated code in the new programming language by using a compiler infrastructure like LLVM to remove unnecessary instructions and optimize loops. This process takes the translated code as input and produces optimized code as output.
[1003] Step 6:
[1004] The server automatically generates test cases for the optimized code. The specific operation of test case generation is to use a testing framework such as JUnit or PyTest to create input and output patterns for each function. The optimized code is used as input, and the generated test cases are obtained as output.
[1005] Step 7:
[1006] The server executes the generated test cases and analyzes the results. Specifically, it runs the automatically generated test cases against the code and compares the obtained output with the expected output. This process uses the generated test cases as input and obtains the test results as output.
[1007] Step 8:
[1008] The server fixes the bug based on the test results. The specific process of fixing the bug involves re-analyzing the code where the test failed, identifying the problem area, and fixing it. The failed test case results are used as input, and the corrected code is obtained as output. The test is then run again to confirm whether the fix was appropriate.
[1009] Step 9:
[1010] The server converts the data format of the old system to the format of the new system. Specifically, it uses a character code conversion library such as iconv to convert the old character code to UTF-8 format. This process takes data in the old format as input and produces data in the new format as output.
[1011] Step 10:
[1012] The terminal displays the project progress to the user in the form of a dashboard. Specifically, it uses a data visualization tool such as Grafana to display the progress in real time as graphs and charts. This process takes project progress data as input and produces a visualized dashboard as output.
[1013] Step 11:
[1014] The device is equipped with an emotion engine that analyzes the user's voice, facial expressions, and input patterns. Specifically, it uses image and voice analysis tools such as OpenCV and TensorFlow to evaluate the user's emotions. This process uses the user's voice and facial expression data as input and obtains an emotion evaluation result as output. If the user feels stressed, the device will display a message encouraging them to take a break.
[1015] Step 12:
[1016] The device provides training materials for new systems and processes. Specifically, it retrieves and displays educational materials from online education platforms such as Khan Academy and Coursera. This process takes the new system or process materials as input and displays the training materials as output. It also includes a real-time support function that allows AI to instantly answer user questions.
[1017] (Application example 2)
[1018] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[1019] Migrating from an old programming language or system to a new language or environment is a time-consuming and laborious task. It is also necessary to manage the project's progress during the migration process and consider the user's feelings and burden. However, this is difficult to do efficiently with the current system. This can increase project complexity and user stress during the system migration process, potentially resulting in a decrease in efficiency.
[1020] The specific processing by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for analyzing source code written in an old programming language, means for converting the source code into a new programming language based on the analysis results, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old system into the format of the new system, means for displaying the project progress, means for monitoring the user's emotions, means for providing feedback based on the user's emotional data, means for displaying notifications encouraging relaxation, means for providing training materials, and means for providing real-time support. This not only efficiently supports the entire system migration process, but also takes into account the user's emotions and promotes rapid adaptation to a new environment while reducing stress.
[1021] definition statement
[1022] An "old programming language" is a programming language that was used in legacy systems and applications, but is no longer mainstream.
[1023] "Source code" means code containing textual instructions written to define the behavior of a program.
[1024] "Analysis" refers to the process of tokenizing input source code and understanding its structure and behavior through syntactic analysis.
[1025] A "new programming language" refers to a programming language that is compatible with the latest technologies and development environments.
[1026] "Conversion" is the process of replacing code written in an old programming language with code written in a new programming language.
[1027] "Optimization" refers to adjustments or modifications made to the transformed code to improve its performance or efficiency.
[1028] A "test case" refers to a configuration containing a set of input data and expected output results used to verify the behavior of a program.
[1029] "Automatic generation" refers to the mechanical creation of programs and data without the need for manual input or editing.
[1030] "Execution" refers to running program code on a computer or server.
[1031] "Data format" refers to the state in which data is organized and arranged according to a specific structure or format.
[1032] "Project progress" is information that indicates the progress and achievement status of a system migration or development project.
[1033] "Emotion monitoring" refers to the process of monitoring and recognizing a user's emotional state in real time.
[1034] "Feedback" refers to information and assistance provided based on the user's emotional data.
[1035] "Relaxation notifications" are messages displayed to help users reduce stress and fatigue.
[1036] "Training Materials" refers to educational and learning content provided to help users quickly adapt to new systems and processes.
[1037] "Real-time support" is a support service that provides immediate solutions and answers to users' questions and problems.
[1038] This invention combines an AI system for automatically converting old programming languages and systems to new languages and environments with an emotion engine that recognizes user emotions. This system aims to streamline system migration and improve user experience, especially in electronic payment services.
[1039] Parsing and Transformation
[1040] The server receives source code written in the old programming language as input. First, it tokenizes the input source code and builds a syntax tree through syntactic analysis. Then it performs structural analysis to understand the relationships between each part of the code. Based on the results of this analysis, the server converts the code into the new programming language and then optimizes it.
[1041] Optimization and testing
[1042] The server automatically generates test cases for the optimized new programming language code and executes them to ensure quality. Based on the test results, any necessary bug fixes are made and the test is then carried out again. This ensures the quality of the new system.
[1043] Data Conversion
[1044] The data formats used in the old system are also converted to the new system format. The server performs this data conversion and performs data integrity checks, including converting old character encodings to the new UTF-8 format.
[1045] Project progress support
[1046] The terminal displays the project progress to the user in a dashboard format, allowing the user to check the progress in real time, making project management easier. It also proposes solutions to problems that arise during the project and allows the user to select them.
[1047] Introducing the Emotion Engine
[1048] The device is equipped with an emotion engine that recognizes the user's current emotions by analyzing their voice, facial expressions, input patterns, etc. This emotion data is fed back to each function of the system. For example, if the user is feeling stressed, the device will display a message encouraging them to relax. Furthermore, the support provided will be strengthened depending on the difficulties the user is experiencing as the project progresses. When a specific problem occurs, the device will reduce the burden on the user by suggesting solutions more frequently and providing detailed help.
[1049] Training and real-time support
[1050] The terminals provide training materials on new systems and processes to help users quickly adapt to the new environment, and utilize real-time support functions to instantly answer user questions using AI, quickly resolving any concerns or doubts users may have.
[1051] Hardware and software used
[1052] AI Emotion Recognition Library: A library that includes conversational emotion recognition (e.g., Affectiva, Microsoft Azure Emotion API)
[1053] Code analysis and transformation libraries: Libraries for converting old code to new languages (e.g., Roslyn, ANTLR)
[1054] Data conversion libraries: for data format conversion (e.g., Apache Nifi, Babel)
[1055] Dashboard libraries: UI components for displaying progress in real time (e.g., Dash, Grafana)
[1056] Real-time support libraries: AI libraries for user assistance (e.g., OpenAI GPT, Dialogflow)
[1057] Specific examples
[1058] For example, consider a company using this system to replace an old electronic payment system written in C++ with Java. Users input the old code into the system, and the server parses and converts it to the new language. After conversion, the optimized code is tested, and the old data is converted to the new format. Project progress is displayed on the device in real time, and an emotion engine monitors the user's stress level and displays notifications encouraging relaxation as needed. Additionally, training materials and real-time support help users quickly learn the new system.
[1059] Prompt Sentence Examples
[1060] "Please convert the source code of an electronic payment system written in old C++ to Java, optimize it, and generate test cases. Also, please include a function to recognize user sentiment in real time and provide feedback."
[1061] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[1062] Step 1:
[1063] The user inputs source code written in an old programming language. The old source code is provided as input in the form of a file. The source code is sent to the server.
[1064] Step 2:
[1065] The server tokenizes and parses the input source code. Here, it uses a code parsing library (e.g., Roslyn, ANTLR) to analyze the source code and build a syntax tree. It parses the source code it receives as input and generates a syntax tree as output.
[1066] Step 3:
[1067] The server performs structural analysis based on syntax analysis to understand the relationships between each part of the code. Based on the analysis results, it applies a code transformation algorithm to generate code transformed into a new programming language. It takes the syntax tree as input and generates the transformed code in the new programming language as output.
[1068] Step 4:
[1069] The server optimizes the generated code in the new programming language. It uses a code optimization library to perform optimizations for performance and efficiency. It takes the code in the new programming language as input and generates optimized code as output.
[1070] Step 5:
[1071] The server automatically generates test cases for the optimized code and executes them. It uses a test case generation library to create input and output patterns for each function and performs the test. It receives the optimized code as input and generates test results as output.
[1072] Step 6:
[1073] The server converts the data format of the old system to the format of the new system. It uses a data conversion library (e.g., Apache Nifi, Babel) to convert data formats and perform data integrity checks. It takes the old data format as input and produces the new data format as output.
[1074] Step 7:
[1075] The terminal displays project progress in the form of a dashboard. It uses a dashboard library (e.g., Dash, Grafana) to allow you to check progress in real time. It receives project progress data as input and displays it on the dashboard as output.
[1076] Step 8:
[1077] The device monitors the user's emotions using an emotion engine. It uses emotion recognition libraries (e.g., Affectiva, Microsoft Azure Emotion API) to analyze the user's voice, facial expressions, and input patterns. It receives the user's voice and facial expression data as input and generates the user's emotional state as output.
[1078] Step 9:
[1079] The device provides feedback based on the user's emotional data and displays a notification encouraging relaxation as needed. It also generates a relaxation notification or support message based on the emotional data. It receives the user's emotional state as input and displays a feedback message as output.
[1080] Step 10:
[1081] The terminal provides training materials for new systems and processes, prepares training materials to help users quickly adapt to new environments, receives training material data as input, and provides it to users as output.
[1082] Step 11:
[1083] The device provides real-time support and instant AI answers to user questions. It uses real-time support libraries (e.g., OpenAI GPT, Dialogflow) to provide answers to user questions. It takes the user's question as input and generates an answer as output.
[1084] The specific processing unit 290 transmits the result of the specific processing to the headset type terminal 314. In the headset type terminal 314, the control unit 46A causes the speaker 240 and the display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[1085] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[1086] In the above embodiment, an example was given in which the specific processing is performed by the data processing device 12, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the headset type terminal 314.
[1087] [Fourth embodiment]
[1088] FIG. 7 shows an example of the configuration of a data processing system 410 according to the fourth embodiment.
[1089] 7, a data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.
[1090] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[1091] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication I / F 44, and a control target 443. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, the camera 42, and the control target 443 are also connected to the bus 52.
[1092] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.
[1093] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[1094] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 are responsible for the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.
[1095] The control object 443 includes a display device, LEDs in the eyes, and motors for driving the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the emotions of the robot 414 can be expressed by controlling these motors. In addition, the facial expressions of the robot 414 can also be expressed by controlling the light emission state of the LEDs in the eyes of the robot 414.
[1096] Fig. 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Fig. 8, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.
[1097] The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[1098] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[1099] In the robot 414, the processor 46 performs the reception output process. A reception output program 60 is stored in the storage 50. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[1100] Next, a description will be given of the specific processing performed by the specific processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1101] This invention is an AI system that automatically converts old programming languages and systems to new languages and environments. The system analyzes the old programming language code entered by the user and generates new programming language code based on the analysis results. Furthermore, it optimizes the generated code and automatically generates and executes test cases to ensure the quality of the entire system. It also has the function of converting data formats used in the old system to new formats and visualizing the progress of the project.
[1102] (Analysis and Transformation)
[1103] The user inputs source code written in an older programming language into the system. The server then analyzes the source code by tokenizing, parsing, and structurally analyzing the code. This extracts the relationships between each part of the code (functions, classes, loops, etc.). Based on the analysis results, the server generates code in a new programming language. For example, it can parse code written in COBOL and generate code with the same functionality in Python.
[1104] (Optimization and testing)
[1105] The server further optimizes the generated code in the new programming language. This optimization includes removing unnecessary code and replacing it with faster algorithms. For the optimized code, the server automatically generates test cases, runs them, and analyzes the results. Based on the test results, it automatically generates fixes for detected bugs and incorporates them into the code.
[1106] (Data conversion)
[1107] The server also plays a vital role in the process of converting data formats used in the old system to the format of the new system. It receives the old data and converts its character encoding and structure to the appropriate format. For example, it converts the character encoding from EBCDIC to UTF-8. It also performs data integrity checks on the converted data to ensure that it has been loaded correctly.
[1108] (Project progress support)
[1109] To ensure the project runs smoothly, the device displays the project's progress in a dashboard format, allowing users to check the current progress in real time and make any necessary adjustments immediately. The device also suggests solutions to ongoing problems, allowing users to select the optimal solution from a selection of options.
[1110] (Training and real-time support)
[1111] Training on new systems and processes is also important, so the terminals provide users with training materials. Through video tutorials and documentation, users can quickly become familiar with their new environment. Furthermore, the terminals are equipped with a real-time Q&A function, allowing users to input questions about the system and instantly provide answers using AI.
[1112] (Example)
[1113] For example, consider the case where a company is replacing its old COBOL system with a Python system. First, the user inputs the COBOL code into the system. The server analyzes the code and converts it into Python code. The server then optimizes the converted code and automatically generates and runs test cases. The server then converts the data used in the COBOL system into UTF-8 format data and loads it into the new system. The project's progress is displayed in real time on a terminal, allowing users to check the progress and resolve any issues. Training and support for the new system are also provided, ensuring a smooth overall replacement process.
[1114] In this way, the present invention provides an efficient replacement for older programming languages and systems, saving time and money.
[1115] The processing flow will be explained below.
[1116] Step 1:
[1117] Users input source code written in an old programming language into the system.
[1118] Step 2:
[1119] The server tokenizes the input source code. At this stage, the source code is broken down into the smallest unit of tokens.
[1120] Step 3:
[1121] The server parses the tokenized code and builds a syntax tree, which gives it an understanding of the grammatical structure of the code.
[1122] Step 4:
[1123] Based on the syntax tree, the server analyzes the structure of the code and extracts the relationships between each part of the program (functions, classes, loops, etc.).
[1124] Step 5:
[1125] The server generates code for a new programming language based on the analysis results, for example, converting COBOL grammar into Python grammar.
[1126] Step 6:
[1127] The server optimizes the generated code in the new programming language by removing unnecessary code and applying efficient algorithms.
[1128] Step 7:
[1129] The server performs a syntax check on the optimized code and automatically runs basic tests to detect basic errors and warnings.
[1130] Step 8:
[1131] The server automatically generates test cases for the optimized code, for example, creating input and output patterns for each function.
[1132] Step 9:
[1133] The server executes the generated test cases and collects and analyzes the test results, thereby verifying the quality of the code.
[1134] Step 10:
[1135] Based on the test results, the server automatically generates fixes for detected bugs and applies them to the code, thereby improving the stability of the code.
[1136] Step 11:
[1137] The server converts the data format used by the old system to the format used by the new system, for example by converting the character encoding from EBCDIC to UTF-8.
[1138] Step 12:
[1139] The server loads the converted data into the new system and performs a data integrity check to ensure the data has been converted correctly.
[1140] Step 13:
[1141] The terminal displays the project progress to the user in a dashboard format, allowing the user to check the current progress in real time.
[1142] Step 14:
[1143] The device uses AI to detect solutions to problems that arise during the project and suggests them to the user, allowing them to select the optimal solution.
[1144] Step 15:
[1145] The terminal provides users with training materials (videos, documentation, etc.) on new systems and processes, allowing them to quickly adapt to the new environment.
[1146] Step 16:
[1147] The terminal provides a chat function where users can input questions about the system and AI will provide answers in real time, quickly resolving any doubts or concerns users may have.
[1148] Example 1
[1149] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1150] With the previous system, converting source code written in an older programming language into a newer one required a lot of manual work, which was time-consuming and costly. There was also a need for efficiency improvements in many aspects, such as quality assurance of the converted code, data format conversion, and visualization of project progress. Furthermore, there was a lack of functionality to provide user training and real-time support, making it difficult to adapt to the new environment.
[1151] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[1152] In this invention, the server includes means for analyzing source code written in an old programming language, means for converting the source code into a new programming language based on the analysis results, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old system into the format of the new system, means for displaying the project progress, means for presenting solutions to ongoing problems in real time, means for providing training materials to users, and means for providing answers to user questions in real time, thereby enabling efficient replacement of old systems and reducing time and costs.
[1153] An "old programming language" is a programming language that was widely used in the past but has now been superseded by newer languages or technologies.
[1154] "New programming languages" refer to programming languages that are currently widely used or are expected to become mainstream in the future.
[1155] "Source code" refers to a set of instructions or logic written in a programming language.
[1156] "Analysis" refers to the process of breaking down source code to make its structure and meaning easier to understand.
[1157] "Conversion" refers to the process of converting data or code from one format into another.
[1158] "Optimization" refers to the process of improving code or algorithms to make them run more efficiently or faster.
[1159] A "test case" defines the expected output for a specific input in order to verify the behavior of a program.
[1160] "Data format" refers to the form or structure in which data is stored.
[1161] "Project progress" refers to the progress of each phase and task of the project.
[1162] "Real-time" refers to the instant a response is returned the moment a user performs an operation or asks a question.
[1163] A "solution" refers to a means or method for solving a particular problem.
[1164] "Training Materials" refers to educational content provided to users to familiarize them with new systems or processes.
[1165] "AI-based model" refers to a mathematical or algorithmic model that is trained to perform a specific task using artificial intelligence.
[1166] "Input and output patterns for each function" refers to the combination of input values and corresponding output values for a specific function.
[1167] A "server" refers to a computer system that provides services to clients over a network.
[1168] "Terminal" refers to a computer or device that can be directly operated by a user.
[1169] "Automatic generation" refers to the system automatically generating data, code, and test cases without human intervention.
[1170] The present invention is an AI system that automatically converts old programming languages and systems to new languages and environments, and is implemented in the following manner.
[1171] First, users upload source code written in an older programming language into the system's designated input form, where they are also given the option to select the target programming language.
[1172] Next, the server performs a tokenization process to analyze the received source code. This tokenization process means dividing the source code into units that are easy to analyze. For example, a COBOL variable declaration is tokenized as "85 FIELD-NAME PIC X(10)".
[1173] The server then performs syntax analysis based on the tokenized code. This analysis understands the grammatical structure of the code and represents it as tree-structured data. The server then performs structural analysis to extract relationships between functions, classes, loops, and other elements within the code.
[1174] Once the structural analysis is complete, the server automatically generates code in a new programming language based on the analysis results. During this phase, for example, COBOL code can be converted to Python. The converted code is then adapted to run in the new environment.
[1175] The server then optimizes the new code, removing unnecessary variables and redundant loops and replacing them with more efficient algorithms. For example, nested loops may be converted into a single loop. The server then automatically generates test cases for the optimized code, runs them, and analyzes the results. This process ensures the quality of the code.
[1176] Additionally, the server automatically generates and presents fixes to the discovered bugs to the user, and if the user approves the fixes, they are applied to the code.
[1177] The server also converts data formats used in the old system to the new format, for example, converting character codes from EBCDIC to UTF-8, and then performs consistency checks on the converted data.
[1178] The device displays the project progress in real time on a dashboard, allowing users to grasp the progress at a glance and make any necessary adjustments quickly. In addition, the device can suggest solutions to ongoing problems in real time, providing users with options.
[1179] The device also provides users with training materials on new systems and processes, helping them quickly familiarize themselves with new environments through video tutorials and documentation. Users can also input questions about the system and the device instantly provides answers using AI.
[1180] Specific examples
[1181] For example, consider a company replacing its old COBOL system with a Python system. First, the user inputs COBOL code into the system. The server analyzes this code and converts it into Python code. The server then optimizes the converted Python code and automatically generates and runs test cases. The server then automatically generates fixes for any bugs discovered and implements them after obtaining the user's approval. The server also converts data from the old COBOL system into UTF-8 format and loads it into the new system. The project progress is displayed in real time on the terminal, allowing the user to efficiently resolve issues. The terminal provides training materials for the new system, allowing the user to quickly become familiar with the new environment. If the user has any questions, the terminal uses AI to provide answers in real time.
[1182] An example of a prompt statement is "Please parse the following COBOL code and convert it into Python code with the same functionality."
[1183] In this way, the present invention provides an efficient replacement for older programming languages and systems, saving time and money.
[1184] The flow of the identification process in the first embodiment will be described with reference to FIG.
[1185] Step 1:
[1186] Users input source code written in an older programming language into the system. Specifically, they upload the source code file into the system's designated input form. At this time, they are also given the option to select the target programming language. The input source code is then passed directly to the server.
[1187] Step 2:
[1188] The server tokenizes the source code it receives. First, it reads the source code line by line and divides each part into units (tokens) that are easy to parse. In this tokenization process, for example, a COBOL variable declaration statement is divided into individual tokens, such as "85 FIELD-NAME PIC X(10)". The input is the source code from the user, and the output is a list of tokens.
[1189] Step 3:
[1190] The server performs syntax analysis based on the tokenized code. In syntax analysis, the list of tokens is analyzed and the grammatical structure of the code is expressed as tree-structured data. For example, the block structure of functions, classes, and loops is clarified. The input is a list of tokens, and the output is a syntax tree.
[1191] Step 4:
[1192] The server performs structural analysis to extract relationships between functions, classes, loops, etc. in the code. Here, it analyzes the logical structure and data flow of the program based on the syntax tree. The input is the syntax tree, and the output is a data model that represents the structure of the entire program.
[1193] Step 5:
[1194] The server generates code in a new programming language based on the analysis results. Specifically, it reconstructs the code to conform to the grammar of the new language while preserving the functionality of the original program. For example, it converts COBOL code into Python code. The input is a structural data model of the program, and the output is source code in the new programming language.
[1195] Step 6:
[1196] The server optimizes the new code it generates by removing unnecessary variables and redundant loops and replacing them with more efficient algorithms, for example by changing nested loops into a single loop. The input is the generated source code, and the output is the optimized source code.
[1197] Step 7:
[1198] The server automatically generates test cases for the optimized code. Here, it creates input and output patterns for each function and generates test cases based on them. It then executes the generated test cases and analyzes the results. The input is the optimized source code, and the output is the test results and their analysis data.
[1199] Step 8:
[1200] The server automatically generates proposed fixes for detected bugs based on the test results. The proposed fixes are presented to the user, and if the user approves them, the fixes are applied to the code. The input is the test analysis data, and the output is the corrected source code.
[1201] Step 9:
[1202] The server converts the data format of the old system to the new format, for example converting character encoding from EBCDIC to UTF-8, and performs data integrity checks. The input is the old data format and the output is the new data format.
[1203] Step 10:
[1204] The terminal displays the project progress in real time on a dashboard, which visually displays the progress of each processing step, any problems that arise, and proposed solutions. The input is progress data from the server, and the output is a dashboard that can be viewed by the user.
[1205] Step 11:
[1206] The terminal provides training materials to the user, such as video tutorials and documentation, to help the user quickly familiarize themselves with the new system. The input is the training materials, and the output is the training content provided to the user.
[1207] Step 12:
[1208] The terminal provides real-time answers to user questions. When a user inputs a question about the system, the terminal immediately uses AI to provide an appropriate answer. The input is the user's question, and the output is the answer.
[1209] The above are the specific processing steps of this system.
[1210] (Application example 1)
[1211] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1212] Maintaining and updating source code written in old programming languages for control systems such as factory robots is complex, time-consuming, and costly. In particular, manually converting old code to new programming languages is inefficient and error-prone. Furthermore, the lack of a way to convert data formats and keep track of project progress in real time reduces the overall efficiency of the work.
[1213] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[1214] In this invention, the server includes means for analyzing source code written in an old programming language, means for converting the source code to a new programming language based on the analysis results, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old system to the format of the new system, means for displaying the project progress, means for automatically converting and optimizing the factory robot control program to a new language or environment, means for displaying the progress in real time and supporting problem solving, and means for providing training materials and real-time support functions. This enables efficient conversion from old programs to new programs in factory robot control systems, enabling high-quality system operation with fewer errors.
[1215]
[1216] An "old programming language" is a programming language that was used in the past but is no longer in widespread use.
[1217] An "analyzing means" is a method or device for understanding the syntax and semantics of source code and analyzing its structure.
[1218] A "means for converting to a new programming language" is a method or device for converting code written in an older programming language into a modern programming language based on the analysis results.
[1219] An "optimization means" is a method or apparatus for improving the performance or efficiency of generated code.
[1220] A "means for automatically generating and executing test cases" is a method or apparatus for automatically creating and executing test cases to verify whether the generated code operates correctly.
[1221] A "means for converting data formats" is a method or device for converting data between different data formats.
[1222] A "means for displaying project progress" is a method or device for visually displaying the current progress of a project.
[1223] A "factory robot control program" is a program for controlling the operation of automated equipment and robots in a factory.
[1224] "Means for automatic conversion and optimization to a new language or environment" refers to a method or device for analyzing an old control program, converting it to a new language, and optimizing the code.
[1225] "Means for displaying progress in real time and supporting problem solving" refers to a method or device for displaying the progress of a project in real time and providing immediate solutions to any problems that arise.
[1226] "Means for providing training materials and real-time support" means a method or device for providing training materials to help users quickly become familiar with new systems or processes, and for providing real-time support as needed.
[1227]
[1228] This invention provides a system that automatically converts and optimizes factory robot control programs for new languages and environments. The entire system is mainly composed of a server and terminals, and includes the following means:
[1229] First, the server uses an analysis tool to analyze source code written in the old programming language. This analysis tool tokenizes, parses, and analyzes the source code. The analysis results reveal the relationships between parts of the code (functions, classes, loops, etc.). Based on the analysis results, the server uses a generative AI model to convert the code to the new programming language. For example, when converting old Assembly code to Python, the server processes the analysis results using a generative AI model to generate code in the new language.
[1230] Next, the server uses an optimization tool to optimize the generated code in the new programming language. This tool improves the performance of the code by removing unnecessary code and replacing it with efficient algorithms. The server then automatically generates and runs test cases for the optimized code. A test case generation tool is used to generate test cases, creating input and output patterns for each function. This automatic testing verifies that the converted code operates correctly.
[1231] The server also includes a means to convert data formats from the old system to the new system format. A data format conversion tool is used to convert old data (e.g., EBCDIC) to the new data format (e.g., UTF-8). After conversion, a data integrity check is performed to ensure that the data is loaded correctly.
[1232] Project progress is displayed in real time on the terminal. The terminal displays progress in a dashboard format, allowing users to understand the progress at a glance. The terminal also suggests solutions to ongoing problems, allowing users to take optimal action based on these. Training materials for new systems and processes are also provided. The training materials include video tutorials and documentation, allowing users to quickly become familiar with the new environment. The system also has a real-time support function, allowing users to input questions about the system and receive instant answers using AI.
[1233] As a concrete example, consider the case of converting old assembly code used in a factory to Python. First, the user inputs the old assembly code into the system. The server analyzes the code and generates Python code. The generated code is then optimized and automatically generated test cases are executed. After verifying that the optimized code works correctly, the data is converted to the new format using a data format conversion tool. The project progress is displayed in real time on the terminal, and the user works while taking advantage of training materials and real-time support.
[1234] Examples of prompts for a generative AI model might include:
[1235] "Convert the following Assembly code to Python. The code snippet is below: MOV AX, BX; INC AX; ADD AX, 10"
[1236] In this way, the present invention realizes an efficient replacement of old programming languages and systems in factory robot control systems, resulting in improved work efficiency and reduced errors.
[1237] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[1238]
[1239] Step 1:
[1240] The user inputs source code written in an old programming language. For example, the user provides old Assembly code to the system. The input data is source code in the old programming language.
[1241] Step 2:
[1242] The server tokenizes, parses, and analyzes the input source code. It first breaks it down into tokens, then uses a parser to analyze the semantic structure of the code, and finally understands the overall structure of the source code based on the analysis results. The output of this process is the analyzed coding structure.
[1243] Step 3:
[1244] Based on the analysis results, the server uses a generative AI model to generate code for a new programming language. A prompt is given to the generative AI model to create new code based on the analysis results. For example, the following prompt is input to the generative AI model: "Convert the following Assembly code into Python. The code fragment is shown below: MOV AX, BX; INC AX; ADD AX, 10." The output is the source code for the new programming language.
[1245] Step 4:
[1246] The server optimizes the generated code in the new programming language. It uses optimization tools to remove unnecessary code and replace it with more efficient algorithms. This optimized code has improved performance and efficiency. The output is the optimized code.
[1247] Step 5:
[1248] The server automatically generates and executes test cases for the optimized code. It uses a test case generation tool to create input and output patterns for each function and automatically executes the tests. The test results verify whether the code works correctly. The output is the test results.
[1249] Step 6:
[1250] The server converts the data format of the old system to the format of the new system. For example, it uses a data format conversion tool to convert data in EBCDIC format to UTF-8. The data output by this process is the data converted to the new format.
[1251] Step 7:
[1252] The terminal displays the progress of the project in real time on a dashboard, visually displaying the progress, any issues that have arisen, and the progress status, allowing the user to check at a glance. The output is visualized data of the progress.
[1253] Step 8:
[1254] Users can constantly check the progress of the project through the dashboard displayed on their device, and select and apply the proposed solutions. Specific operations involve implementing the solutions using the support provided by the real-time support function. The output is the applied solution and its results.
[1255] Step 9:
[1256] The terminal provides training materials and real-time support functions. It provides video tutorials, documentation, and answers real-time questions to help users quickly become familiar with new systems and processes. The output is training materials and real-time support information.
[1257] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.
[1258] This invention combines an AI system for automatically converting old programming languages and systems to new languages and environments with an emotion engine that recognizes user emotions. As shown below, this system comprehensively covers everything from source code analysis and conversion to data format conversion, project progress visualization, and user emotion monitoring and feedback.
[1259] (Analysis and Transformation)
[1260] The user inputs source code written in an older programming language into the system. The server then tokenizes the input source code and constructs a syntax tree through syntactic analysis. It then uses structural analysis to understand the relationships between each part of the code. Based on the analysis results, the server converts the code into a new programming language and then optimizes it.
[1261] (Optimization and testing)
[1262] The server automatically generates test cases for the optimized new programming language code and executes them to ensure quality. Based on the test results, any necessary bug fixes are made and the code is tested again.
[1263] (Data conversion)
[1264] The data formats used in the old system are also converted to the new system format. The server performs this data conversion and performs data integrity checks, including converting old character encodings to the new UTF-8 format.
[1265] (Project progress support)
[1266] The terminal displays the project progress to the user in a dashboard format, allowing the user to check the progress in real time, making project management easier. It also proposes solutions to problems that arise during the project and allows the user to select them.
[1267] (Introduction of emotion engine)
[1268] The device is equipped with an emotion engine that recognizes the user's current emotions by analyzing the user's voice, facial expressions, input patterns, etc. This emotion data is fed back to each function of the system.
[1269] For example, if a user is feeling stressed, the device will display a message encouraging them to take a break. Furthermore, support will be enhanced depending on the difficulties the user is experiencing during the project. For example, when a specific problem occurs, the device will reduce the user's burden by providing more frequent solution suggestions and detailed help.
[1270] (Training and real-time support)
[1271] The terminals provide training materials on new systems and processes to help users quickly adapt to the new environment, and utilize real-time support functions to instantly answer user questions using AI, quickly resolving any concerns or doubts users may have.
[1272] (Example)
[1273] For example, consider a company using this system to replace an old COBOL system with a Python system. Users input COBOL code into the system, and the server parses and converts it into Python code. After conversion, the optimized code is tested, and the data used in COBOL is converted to the new format. Project progress is displayed on the terminal in real time, and an emotion engine monitors the user's stress level and prompts them to take a break when necessary. Furthermore, training materials and real-time support help users quickly learn the new system.
[1274] In this way, the present invention can efficiently and effectively support the entire system replacement process, while also taking into consideration the feelings of users, thereby improving the success rate of the project and reducing time and costs.
[1275] The processing flow will be explained below.
[1276] Step 1:
[1277] Users input source code written in an old programming language into the system.
[1278] Step 2:
[1279] The server tokenizes the input source code. Tokenization is the process of breaking down the source code into the smallest unit, tokens.
[1280] Step 3:
[1281] The server parses the tokenized code and builds a syntax tree, which gives it an understanding of the grammatical structure of the code.
[1282] Step 4:
[1283] The server analyzes the code structure based on the syntax tree, specifically extracting relationships between functions, classes, loops, etc.
[1284] Step 5:
[1285] The server converts the results of the analysis into code in a new programming language, for example, analyzing COBOL code and generating Python code.
[1286] Step 6:
[1287] The server optimizes the new code it generates by removing unnecessary code and applying efficient algorithms.
[1288] Step 7:
[1289] The server performs a syntax check on the optimized code, which detects and corrects basic errors.
[1290] Step 8:
[1291] The server automatically generates test cases for the optimized code, based on the input and output patterns for each function.
[1292] Step 9:
[1293] The server executes the generated test cases, collects the results, and analyzes them to detect defects.
[1294] Step 10:
[1295] Based on the test results, the server automatically generates suggested fixes for detected defects and incorporates them into the code.
[1296] Step 11:
[1297] The server converts the data format used by the old system to the format used by the new system, for example by converting the character encoding from EBCDIC to UTF-8.
[1298] Step 12:
[1299] The server loads the converted data into the new system and checks the data integrity to ensure that the data has been converted correctly.
[1300] Step 13:
[1301] The device displays the project progress to the user in a dashboard format, allowing the user to check progress in real time.
[1302] Step 14:
[1303] The device uses AI to propose solutions to problems that arise during the project, and users can select the most appropriate solution from the suggestions.
[1304] Step 15:
[1305] The device uses an emotion engine to analyze the user's facial expressions, voice, and input patterns to recognize the user's emotions.
[1306] Step 16:
[1307] The device will provide appropriate support based on the user's emotional data. For example, if the user is feeling stressed, it will display a message encouraging them to take a break.
[1308] Step 17:
[1309] The terminal provides training materials on new systems and processes, including videos and documentation.
[1310] Step 18:
[1311] The device runs a chat function where users can enter questions about the system and AI will provide answers in real time.
[1312] As a concrete example, if a company is replacing an old COBOL system with a Python system, the system replacement work can proceed smoothly by sequentially executing the processes from Step 1 to Step 18. Users can check the project progress on the dashboard and receive support from the emotion engine.
[1313] Example 2
[1314] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1315] When migrating source code written in an old programming language to a new programming language or environment, it is necessary to solve the problem of manual conversion work, testing, and data format conversion, which takes a lot of time and effort.In addition, there is a lack of visualization of project progress, monitoring of user emotions, and adaptation support, which can cause users to feel stressed and make project management difficult.
[1316] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means. In this invention, the server includes means for analyzing source code written in an old programming language, means for converting it into a new programming language, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old information processing system into the format of the new information processing system, means for displaying the project progress status, means for recognizing and feedbacking the user's emotions, and means for providing educational materials and real-time support to the user. This makes it possible to efficiently perform the replacement work, reduce the burden on the user, and improve the success rate of the project.
[1317] "Old programming languages" are programming languages such as COBOL and FORTRAN that were widely used in the past but are now less frequently used.
[1318] "New programming languages" are programming languages that are widely used today, such as Python, Java, and JavaScript.
[1319] "Source code analysis" is the process of breaking down input program code into tokens and performing syntactic analysis to understand its logical structure.
[1320] "Tokenization" is the process of dividing source code into characters or symbols and identifying each element.
[1321] "Syntax parsing" is the process of analyzing tokenized source code based on grammatical rules and constructing a syntax tree.
[1322] "Structural analysis" is the process of using data obtained from syntactic analysis to analyze in detail the relationships and functions of each element in the code.
[1323] "Converting to code in a new programming language" means rewriting source code written in an old programming language in accordance with the grammar and rules of a specified new programming language.
[1324] "Optimization" is the process of removing unnecessary instructions and improving the structure of the converted source code to improve its performance.
[1325] "Automatic generation of test cases" means automatically creating input patterns and expected outputs to check the behavior of the converted source code.
[1326] "Data format conversion" is the process of converting the data format used in an old information processing system into the format of a new information processing system.
[1327] "Visualization of project progress" means displaying the project's progress and achievement status in graphs and charts so that it can be checked in real time.
[1328] The "emotion engine" is an engine that analyzes the user's current emotions from their voice, facial expressions, and input patterns, and feeds the results back to the system.
[1329] "Providing educational materials" means providing educational materials and information to help users learn new systems and processes.
[1330] "Real-time support" is a support function that responds immediately to user questions and problems and quickly presents solutions.
[1331] MODE FOR CARRYING OUT THE INVENTION
[1332] This invention automatically converts old programming languages and systems to new languages and environments, and also introduces an emotion engine that recognizes user emotions. This system comprehensively covers everything from source code analysis and conversion to data format conversion, project progress visualization, and user emotion monitoring and feedback.
[1333] Parsing and Transformation
[1334] A user inputs source code written in an older programming language into the system. The server then tokenizes the input source code and constructs a syntax tree through syntactic analysis. This analysis is performed using a syntactic analysis tool such as ANTLR. The server then performs structural analysis to understand the relationships between each part of the code. Based on the analysis results, the server uses a generative AI model (for example, OpenAI's GPT-3) to convert the code into a new programming language based on the input prompt. Specifically, a prompt such as "Convert the following Java code to Python:" can be used.
[1335] Optimization and testing
[1336] The server optimizes the transformed code. This optimization process uses a compiler infrastructure such as LLVM to remove unnecessary instructions and optimize loops to improve code performance. The server then automatically generates test cases for the optimized code. Testing frameworks such as JUnit and PyTest are used to generate the test cases. The generated test cases are executed and the results are analyzed. Any detected bugs are fixed if necessary, and the tests are run again.
[1337] Data Conversion
[1338] The server converts the data format of the old system to that of the new system, using a character code conversion library such as iconv to convert the old character code to UTF-8 format, and also performs data integrity checks to ensure a flawless data migration.
[1339] Project progress support
[1340] The terminal displays the project progress to the user in a dashboard format. Data visualization tools such as Grafana are used to update the progress in real time. This allows users to easily check the progress, making project management easier. It also suggests solutions to problems in the project progress and allows users to select the appropriate one.
[1341] Introducing the Emotion Engine
[1342] The device is equipped with an emotion engine that analyzes the user's voice, facial expressions, and input patterns. This is done using image and audio analysis tools such as OpenCV and TensorFlow. The analysis results are fed back to each function of the system, and if the user feels stressed, the device will display a message encouraging them to take a break. In addition, the device will provide more support depending on the difficulties the user is experiencing during the project.
[1343] Training and real-time support
[1344] The terminal provides training materials on new systems and processes, using online education platforms like Khan Academy and Coursera as references, helping users quickly adapt to the new environment. It also utilizes real-time support, providing AI-powered answers to user questions instantly, helping to quickly resolve user concerns and worries.
[1345] In this way, the present invention comprehensively supports the entire system replacement process and takes into consideration the feelings of users, thereby improving the efficiency and success rate of replacement work.
[1346] The flow of the identification process in the second embodiment will be described with reference to FIG.
[1347] Step 1:
[1348] The user inputs source code written in an older programming language into the system. This input includes, for example, a COBOL source file. The server receives this source code and first tokenizes it. Specific tokenization operations involve using a syntax analysis tool such as ANTLR to split the source code into characters and symbols and identify each element. The source code received as input is then output as a set of tokenized elements.
[1349] Step 2:
[1350] The server performs syntactic analysis based on the tokenized source code. The specific operation of syntactic analysis is to analyze the tokenized elements according to grammatical rules and build a syntax tree. This syntax tree is a data structure that shows the relationships between each element in the code. The tokenized source code is used as input, and a syntax tree is generated as output.
[1351] Step 3:
[1352] The server performs structural analysis based on the parsed source code. The specific operation of structural analysis is to analyze the syntax tree in detail and understand the relationship between each part of the code. This makes the data flow and control flow clear. The syntax tree is used as input, and the structural analysis results are obtained as output.
[1353] Step 4:
[1354] The server uses a generative AI model to convert the code into a new programming language. This conversion process takes a prompt, such as "Convert the following COBOL code into Python," as input and converts the COBOL source code into new Python code. Specifically, the prompt and source code are input into an AI model such as OpenAI's GPT-3, and the converted code in the new programming language is obtained as output.
[1355] Step 5:
[1356] The server optimizes the translated code in the new programming language by using a compiler infrastructure like LLVM to remove unnecessary instructions and optimize loops. This process takes the translated code as input and produces optimized code as output.
[1357] Step 6:
[1358] The server automatically generates test cases for the optimized code. The specific operation of test case generation is to use a testing framework such as JUnit or PyTest to create input and output patterns for each function. The optimized code is used as input, and the generated test cases are obtained as output.
[1359] Step 7:
[1360] The server executes the generated test cases and analyzes the results. Specifically, it runs the automatically generated test cases against the code and compares the obtained output with the expected output. This process uses the generated test cases as input and obtains the test results as output.
[1361] Step 8:
[1362] The server fixes the bug based on the test results. The specific process of fixing the bug involves re-analyzing the code where the test failed, identifying the problem area, and fixing it. The failed test case results are used as input, and the corrected code is obtained as output. The test is then run again to confirm whether the fix was appropriate.
[1363] Step 9:
[1364] The server converts the data format of the old system to the format of the new system. Specifically, it uses a character code conversion library such as iconv to convert the old character code to UTF-8 format. This process takes data in the old format as input and produces data in the new format as output.
[1365] Step 10:
[1366] The terminal displays the project progress to the user in the form of a dashboard. Specifically, it uses a data visualization tool such as Grafana to display the progress in real time as graphs and charts. This process takes project progress data as input and produces a visualized dashboard as output.
[1367] Step 11:
[1368] The device is equipped with an emotion engine that analyzes the user's voice, facial expressions, and input patterns. Specifically, it uses image and voice analysis tools such as OpenCV and TensorFlow to evaluate the user's emotions. This process uses the user's voice and facial expression data as input and obtains an emotion evaluation result as output. If the user feels stressed, the device will display a message encouraging them to take a break.
[1369] Step 12:
[1370] The device provides training materials for new systems and processes. Specifically, it retrieves and displays educational materials from online education platforms such as Khan Academy and Coursera. This process takes the new system or process materials as input and displays the training materials as output. It also includes a real-time support function that allows AI to instantly answer user questions.
[1371] (Application example 2)
[1372] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1373] Migrating from an old programming language or system to a new language or environment is a time-consuming and laborious task. It is also necessary to manage the project's progress during the migration process and consider the user's feelings and burden. However, this is difficult to do efficiently with the current system. This can increase project complexity and user stress during the system migration process, potentially resulting in a decrease in efficiency.
[1374] The specific processing by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for analyzing source code written in an old programming language, means for converting the source code into a new programming language based on the analysis results, means for optimizing the converted code, means for automatically generating and executing test cases for the optimized code, means for converting the data format of the old system into the format of the new system, means for displaying the project progress, means for monitoring the user's emotions, means for providing feedback based on the user's emotional data, means for displaying notifications encouraging relaxation, means for providing training materials, and means for providing real-time support. This not only efficiently supports the entire system migration process, but also takes into account the user's emotions and promotes rapid adaptation to a new environment while reducing stress.
[1375] definition statement
[1376] An "old programming language" is a programming language that was used in legacy systems and applications, but is no longer mainstream.
[1377] "Source code" means code containing textual instructions written to define the behavior of a program.
[1378] "Analysis" refers to the process of tokenizing input source code and understanding its structure and behavior through syntactic analysis.
[1379] A "new programming language" refers to a programming language that is compatible with the latest technologies and development environments.
[1380] "Conversion" is the process of replacing code written in an old programming language with code written in a new programming language.
[1381] "Optimization" refers to adjustments or modifications made to the transformed code to improve its performance or efficiency.
[1382] A "test case" refers to a configuration containing a set of input data and expected output results used to verify the behavior of a program.
[1383] "Automatic generation" refers to the mechanical creation of programs and data without the need for manual input or editing.
[1384] "Execution" refers to running program code on a computer or server.
[1385] "Data format" refers to the state in which data is organized and arranged according to a specific structure or format.
[1386] "Project progress" is information that indicates the progress and achievement status of a system migration or development project.
[1387] "Emotion monitoring" refers to the process of monitoring and recognizing a user's emotional state in real time.
[1388] "Feedback" refers to information and assistance provided based on the user's emotional data.
[1389] "Relaxation notifications" are messages displayed to help users reduce stress and fatigue.
[1390] "Training Materials" refers to educational and learning content provided to help users quickly adapt to new systems and processes.
[1391] "Real-time support" is a support service that provides immediate solutions and answers to users' questions and problems.
[1392] This invention combines an AI system for automatically converting old programming languages and systems to new languages and environments with an emotion engine that recognizes user emotions. This system aims to streamline system migration and improve user experience, especially in electronic payment services.
[1393] Parsing and Transformation
[1394] The server receives source code written in the old programming language as input. First, it tokenizes the input source code and builds a syntax tree through syntactic analysis. Then it performs structural analysis to understand the relationships between each part of the code. Based on the results of this analysis, the server converts the code into the new programming language and then optimizes it.
[1395] Optimization and testing
[1396] The server automatically generates test cases for the optimized new programming language code and executes them to ensure quality. Based on the test results, any necessary bug fixes are made and the test is then carried out again. This ensures the quality of the new system.
[1397] Data Conversion
[1398] The data formats used in the old system are also converted to the new system format. The server performs this data conversion and performs data integrity checks, including converting old character encodings to the new UTF-8 format.
[1399] Project progress support
[1400] The terminal displays the project progress to the user in a dashboard format, allowing the user to check the progress in real time, making project management easier. It also proposes solutions to problems that arise during the project and allows the user to select them.
[1401] Introducing the Emotion Engine
[1402] The device is equipped with an emotion engine that recognizes the user's current emotions by analyzing their voice, facial expressions, input patterns, etc. This emotion data is fed back to each function of the system. For example, if the user is feeling stressed, the device will display a message encouraging them to relax. Furthermore, the support provided will be strengthened depending on the difficulties the user is experiencing as the project progresses. When a specific problem occurs, the device will reduce the burden on the user by suggesting solutions more frequently and providing detailed help.
[1403] Training and real-time support
[1404] The terminals provide training materials on new systems and processes to help users quickly adapt to the new environment, and utilize real-time support functions to instantly answer user questions using AI, quickly resolving any concerns or doubts users may have.
[1405] Hardware and software used
[1406] AI Emotion Recognition Library: A library that includes conversational emotion recognition (e.g., Affectiva, Microsoft Azure Emotion API)
[1407] Code analysis and transformation libraries: Libraries for converting old code to new languages (e.g., Roslyn, ANTLR)
[1408] Data conversion libraries: for data format conversion (e.g., Apache Nifi, Babel)
[1409] Dashboard libraries: UI components for displaying progress in real time (e.g., Dash, Grafana)
[1410] Real-time support libraries: AI libraries for user assistance (e.g., OpenAI GPT, Dialogflow)
[1411] Specific examples
[1412] For example, consider a company using this system to replace an old electronic payment system written in C++ with Java. Users input the old code into the system, and the server parses and converts it to the new language. After conversion, the optimized code is tested, and the old data is converted to the new format. Project progress is displayed on the device in real time, and an emotion engine monitors the user's stress level and displays notifications encouraging relaxation as needed. Additionally, training materials and real-time support help users quickly learn the new system.
[1413] Prompt Sentence Examples
[1414] "Please convert the source code of an electronic payment system written in old C++ to Java, optimize it, and generate test cases. Also, please include a function to recognize user sentiment in real time and provide feedback."
[1415] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[1416] Step 1:
[1417] The user inputs source code written in an old programming language. The old source code is provided as input in the form of a file. The source code is sent to the server.
[1418] Step 2:
[1419] The server tokenizes and parses the input source code. Here, it uses a code parsing library (e.g., Roslyn, ANTLR) to analyze the source code and build a syntax tree. It parses the source code it receives as input and generates a syntax tree as output.
[1420] Step 3:
[1421] The server performs structural analysis based on syntax analysis to understand the relationships between each part of the code. Based on the analysis results, it applies a code transformation algorithm to generate code transformed into a new programming language. It takes the syntax tree as input and generates the transformed code in the new programming language as output.
[1422] Step 4:
[1423] The server optimizes the generated code in the new programming language. It uses a code optimization library to perform optimizations for performance and efficiency. It takes the code in the new programming language as input and generates optimized code as output.
[1424] Step 5:
[1425] The server automatically generates test cases for the optimized code and executes them. It uses a test case generation library to create input and output patterns for each function and performs the test. It receives the optimized code as input and generates test results as output.
[1426] Step 6:
[1427] The server converts the data format of the old system to the format of the new system. It uses a data conversion library (e.g., Apache Nifi, Babel) to convert data formats and perform data integrity checks. It takes the old data format as input and produces the new data format as output.
[1428] Step 7:
[1429] The terminal displays project progress in the form of a dashboard. It uses a dashboard library (e.g., Dash, Grafana) to allow you to check progress in real time. It receives project progress data as input and displays it on the dashboard as output.
[1430] Step 8:
[1431] The device monitors the user's emotions using an emotion engine. It uses emotion recognition libraries (e.g., Affectiva, Microsoft Azure Emotion API) to analyze the user's voice, facial expressions, and input patterns. It receives the user's voice and facial expression data as input and generates the user's emotional state as output.
[1432] Step 9:
[1433] The device provides feedback based on the user's emotional data and displays a notification encouraging relaxation as needed. It also generates a relaxation notification or support message based on the emotional data. It receives the user's emotional state as input and displays a feedback message as output.
[1434] Step 10:
[1435] The terminal provides training materials for new systems and processes, prepares training materials to help users quickly adapt to new environments, receives training material data as input, and provides it to users as output.
[1436] Step 11:
[1437] The device provides real-time support and instant AI answers to user questions. It uses real-time support libraries (e.g., OpenAI GPT, Dialogflow) to provide answers to user questions. It takes the user's question as input and generates an answer as output.
[1438] The specific processing unit 290 transmits the result of the specific processing to the robot 414. In the robot 414, the control unit 46A causes the speaker 240 and the control target 443 to output the result of the specific processing. The microphone 238 acquires voice indicating a user input regarding the result of the specific processing. The control unit 46A transmits voice data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the voice data.
[1439] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[1440] In the above embodiment, an example was given in which the specific processing is performed by the data processing device 12, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the robot 414.
[1441] The emotion identification model 59 as an emotion engine may determine the user's emotion according to a specific mapping. Specifically, the emotion identification model 59 may determine the user's emotion according to an emotion map (see FIG. 9), which is a specific mapping. Similarly, the emotion identification model 59 may determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.
[1442] FIG. 9 is a diagram illustrating an emotion map 400 on which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. Emotions closer to the center of the concentric circles are more primitive. Emotions representing states and actions arising from a state of mind are arranged on the outer edges of the concentric circles. The concept of emotion includes both affect and mental states. Emotions generally generated from reactions occurring in the brain are arranged on the left side of the concentric circles. Emotions generally induced by situational judgment are arranged on the right side of the concentric circles. Emotions generally generated from reactions occurring in the brain and induced by situational judgment are arranged on the upper and lower sides of the concentric circles. Furthermore, the emotion of "pleasure" is arranged on the upper side of the concentric circles, and the emotion of "discomfort" is arranged on the lower side. In this way, in the emotion map 400, multiple emotions are mapped based on the structure by which emotions are generated, and emotions that tend to occur simultaneously are mapped close to each other.
[1443] These emotions are distributed in the 3 o'clock direction on emotion map 400, and typically fluctuate between relief and anxiety. In the right half of emotion map 400, situational awareness dominates over internal sensations, resulting in a sense of calm.
[1444] The inside of emotion map 400 represents what is going on in the mind, and the outside of emotion map 400 represents behavior, so the further you go outside emotion map 400, the more visible the emotions become (the more they are expressed in behavior).
[1445] Human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, a state of discomfort is indicated, and when they approach the ideal, a state of pleasure is indicated. Emotions can also be created for robots, automobiles, and motorcycles, based on various balances, such as posture and remaining battery life. When these balances deviate from the ideal, a state of discomfort is indicated, and when they approach the ideal, a state of pleasure is indicated. An emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on Voice Emotion Recognition and Emotional Brain Physiological Signal Analysis Systems, Tokushima University, Doctoral Dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map lists emotions belonging to the "reaction" domain, where sensation is dominant. The right half of the emotion map lists emotions belonging to the "situation" domain, where situational awareness is dominant.
[1446] The emotion map defines two emotions that promote learning. One is a negative emotion on the situation side, around the middle of "repentance" or "reflection." In other words, this occurs when the robot experiences negative emotions such as "I never want to feel this way again" or "I don't want to be scolded again." The other is a positive emotion on the response side, around "desire." In other words, this occurs when the robot experiences positive feelings such as "I want more" or "I want to know more."
[1447] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values indicating each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple pieces of training data that are combinations of user input and emotion values indicating each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions that are located close to each other have similar values, as in the emotion map 900 shown in FIG. 10. FIG. 10 shows an example in which multiple emotions, "relieved," "calm," and "reassuring," have similar emotion values.
[1448] The system according to the present disclosure has been described above mainly with respect to the functions of the data processing device 12, but the system according to the present disclosure is not necessarily implemented on a server. The system according to the present disclosure may be implemented as a general information processing system. The present disclosure may be implemented, for example, as a software program running on a personal computer or an application running on a smartphone, etc. The method according to the present disclosure may be provided to users in the form of SaaS (Software as a Service).
[1449] In the above embodiment, an example was given in which the specific processing is performed by one computer 22, but the technology of the present disclosure is not limited to this, and the specific processing may be distributed and performed by a plurality of computers including the computer 22. For example, the data generation model 58 may be provided in an external device of the data processing device 12, and data may be generated in the external device in accordance with input data.
[1450] In the above embodiment, an example in which the specific processing program 56 is stored in the storage 32 has been described, but the technology of the present disclosure is not limited to this. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-transitory storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-transitory storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes the specific processing in accordance with the specific processing program 56.
[1451] Alternatively, the specific processing program 56 may be stored in a storage device such as a server connected to the data processing device 12 via the network 54, and the specific processing program 56 may be downloaded and installed on the computer 22 in response to a request from the data processing device 12.
[1452] It is not necessary to store all of the specific processing program 56 in a storage device such as a server connected to the data processing device 12 via the network 54, or to store all of the specific processing program 56 in the storage 32; only a portion of the specific processing program 56 may be stored.
[1453] The hardware resource for executing a specific process can be any of the following processors: An example of a processor is a CPU, which is a general-purpose processor that functions as a hardware resource for executing a specific process by executing software, i.e., a program. Another example of a processor is a dedicated electrical circuit, such as an FPGA (Field-Programmable Gate Array), a PLD (Programmable Logic Device), or an ASIC (Application Specific Integrated Circuit), which is a processor with a circuit configuration designed specifically for executing a specific process. Each processor has built-in or connected memory, and each processor uses the memory to execute the specific process.
[1454] The hardware resource that executes the specific processing may be configured with one of these various processors, or may be configured with a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Also, the hardware resource that executes the specific processing may be a single processor.
[1455] As an example of a system configured with a single processor, first, one processor is configured by combining one or more CPUs and software, and this processor functions as a hardware resource that executes a specific process. Second, there is a system that uses a processor that realizes the functions of an entire system including multiple hardware resources that execute a specific process on a single IC chip, as typified by SoC (System-on-a-chip). In this way, a specific process is realized using one or more of the above-mentioned various processors as hardware resources.
[1456] Furthermore, the hardware structure of these various processors can be, more specifically, an electric circuit that combines circuit elements such as semiconductor devices. The specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps may be deleted, new steps may be added, or the processing order may be rearranged, without departing from the spirit of the invention.
[1457] The above-described description and illustrations are a detailed explanation of the parts related to the technology of the present disclosure and are merely an example of the technology of the present disclosure. For example, the above description of the configuration, functions, actions, and effects is an explanation of an example of the configuration, functions, actions, and effects of the parts related to the technology of the present disclosure. Therefore, it goes without saying that unnecessary parts may be deleted, new elements may be added, or replacements may be made to the above-described description and illustrations within the scope of the gist of the technology of the present disclosure. Furthermore, to avoid confusion and facilitate understanding of the parts related to the technology of the present disclosure, the above-described description and illustrations omit explanations of common technical knowledge that do not require particular explanation to enable the implementation of the technology of the present disclosure.
[1458] All publications, patent applications, and technical standards mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent application, or technical standard was specifically and individually indicated to be incorporated by reference.
[1459] The following is further disclosed regarding the above embodiment.
[1460] (Claim 1)
[1461] A means of analyzing source code written in older programming languages,
[1462] A means of converting the analysis results into a new programming language,
[1463] a means for optimizing the transformed code;
[1464] a means for automatically generating and executing test cases for the optimized code;
[1465] A means of converting data formats from the old system to the new system format;
[1466] A system including a means for displaying project progress.
[1467] (Claim 2)
[1468] 10. The system of claim 1, further comprising means for using an AI-based model in converting source code written in an older programming language to a newer programming language.
[1469] (Claim 3)
[1470] 10. The system of claim 1, further comprising: means for creating input and output patterns for each function when automatically generating test cases for the optimized code.
[1471] (Claim 4)
[1472] 2. The system of claim 1, further comprising a data integrity check means for verifying that the converted data has been correctly converted to the new format and loaded without issue.
[1473] (Claim 5)
[1474] 10. The system of claim 1, further comprising: means for providing training materials to users regarding new systems or processes; and means for providing a chat function for AI-enabled questions to be answered in real time.
[1475] "Example 1"
[1476] (Claim 1)
[1477] A means of analyzing source code written in older programming languages,
[1478] A means of converting the analysis results into a new programming language,
[1479] a means for optimizing the transformed code;
[1480] a means for automatically generating and executing test cases for the optimized code;
[1481] A means of converting data formats from the old system to the new system format;
[1482] a means of displaying project progress;
[1483] A means of providing solutions to ongoing problems in real time;
[1484] means for providing training materials to users;
[1485] a means for providing real-time answers to user questions;
[1486] A system including:
[1487] (Claim 2)
[1488] 10. The system of claim 1, further comprising means for using an AI-based model in converting source code written in an older programming language to a newer programming language.
[1489] (Claim 3)
[1490] 10. The system of claim 1, further comprising: means for creating input and output patterns for each function when automatically generating test cases for the optimized code.
[1491] "Application Example 1"
[1492] (Claim 1)
[1493] A means of analyzing source code written in older programming languages,
[1494] A means of converting the analysis results into a new programming language,
[1495] a means for optimizing the transformed code;
[1496] a means for automatically generating and executing test cases for the optimized code;
[1497] A means of converting data formats from the old system to the new system format;
[1498] a means of displaying project progress;
[1499] A means to automatically convert and optimize factory robot control programs for new languages and environments,
[1500] A means to view progress in real time and assist in problem solving;
[1501] A system that includes a means of providing training materials and real-time support capabilities.
[1502] (Claim 2)
[1503] 10. The system of claim 1, further comprising means for converting source code written in an older programming language into a newer programming language using an AI-based model.
[1504] (Claim 3)
[1505] 10. The system of claim 1, further comprising: means for creating input and output patterns for each function when automatically generating test cases for the optimized code.
[1506] "Example 2: Combining Emotion Engines"
[1507] (Claim 1)
[1508] A means of analyzing source code written in older programming languages,
[1509] A means of converting the analysis results into a new programming language,
[1510] a means for optimizing the transformed code;
[1511] a means for automatically generating and executing test cases for the optimized code;
[1512] means for converting the data format of the old information processing system into the format of the new information processing system;
[1513] a means of displaying project progress;
[1514] a means for recognizing and providing feedback to the user's emotions;
[1515] A system that includes a means for providing educational materials and real-time support to users.
[1516] (Claim 2)
[1517] 10. The system of claim 1, further comprising means for using a generative AI model when converting source code written in an older programming language into a newer programming language.
[1518] (Claim 3)
[1519] 10. The system of claim 1, further comprising: means for creating input and output patterns for each function when automatically generating test cases for the optimized code.
[1520] "Application example 2 when combining emotion engines"
[1521] (Claim 1)
[1522] A means of analyzing source code written in older programming languages,
[1523] A means of converting the analysis results into a new programming language,
[1524] a means for optimizing the transformed code;
[1525] a means for automatically generating and executing test cases for the optimized code;
[1526] A means of converting data formats from the old system to the new system format;
[1527] a means of displaying project progress;
[1528] A means of monitoring user sentiment;
[1529] a means for providing feedback based on the user's emotional data;
[1530] a means for displaying notifications encouraging relaxation;
[1531] a means of providing training materials;
[1532] a means to provide real-time support;
[1533] A system including:
[1534] (Claim 2)
[1535] 10. The system of claim 1, further comprising means for using an AI-based model in converting source code written in an older programming language to a newer programming language.
[1536] (Claim 3)
[1537] 10. The system of claim 1, further comprising: means for creating input and output patterns for each function when automatically generating test cases for the optimized code. [Explanation of symbols]
[1538] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Device 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robot< / url:> < / url:> < / url:> < / url:>
Claims
1. A means of analyzing source code written in older programming languages, A means of converting the analysis results into a new programming language, a means for optimizing the transformed code; a means for automatically generating and executing test cases for the optimized code; A means of converting data formats from the old system to the new system format; A system including a means for displaying project progress.
2. 10. The system of claim 1, further comprising means for using an AI-based model when converting source code written in an older programming language to a newer programming language.
3. 2. The system of claim 1, further comprising means for creating input and output patterns for each function when automatically generating test cases for the optimized code.
4. 2. The system of claim 1, further comprising a data integrity check means for verifying that the converted data has been correctly converted to the new format and loaded without issue.
5. 10. The system of claim 1, further comprising: means for providing training materials to users regarding new systems and processes; and means for providing a chat function in which AI answers questions in real time.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A