system

A system for analyzing and improving code quality by evaluating variable and function names, generating feedback, and presenting suggestions addresses inefficiencies in software development, enhancing productivity and maintainability.

JP2026105325APending Publication Date: 2026-06-26SOFTBANK GROUP CORP

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
SOFTBANK GROUP CORP
Filing Date
2024-12-16
Publication Date
2026-06-26

AI Technical Summary

Technical Problem

Existing software development methods face challenges in efficiently improving code quality and maintaining code consistency due to the time-consuming identification of improvement points and varying coding styles among team members, leading to issues with code readability and maintainability.

Method used

A system comprising an analysis means for evaluating variable and function names, a feedback means for generating improvement suggestions, and a presentation means for providing feedback to users, enhancing code readability and maintainability.

Benefits of technology

The system significantly improves productivity and code maintainability by quickly analyzing source code and providing actionable feedback, ensuring consistent code quality and efficient development processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026105325000001_ABST
    Figure 2026105325000001_ABST
Patent Text Reader

Abstract

We provide the system. [Solution] An analysis means for analyzing the input computer program, A calculation means for generating improvement suggestions based on the analysis results obtained by the aforementioned analysis means, A presentation means that presents the aforementioned improvement proposal to an information processing device and provides visual feedback to the user, A system that includes this.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The technology of the present disclosure relates to a system.

Background Art

[0002] Patent Document 1 discloses a method for controlling a persona chatbot, which is performed by at least one processor, including steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to an explanation of a 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

Summary of the Invention

Problems to be Solved by the Invention

[0004] In the field of software development, it is important to improve the quality of code while maintaining code consistency among team members. Conventional methods have a problem that it takes a great deal of time and effort to identify points that need improvement from a huge amount of code, resulting in a decrease in the efficiency of the development process. In addition, since individual developers code in different styles, there have also been many problems with code readability and maintainability. In contrast, there is a demand for a system that can automatically analyze code and quickly provide appropriate improvement proposals.

Means for Solving the Problems

[0005] This invention provides a system comprising an analysis means for analyzing input source code, a feedback means for generating feedback based on the analysis results, and a presentation means for presenting the generated feedback to the user. The analysis means evaluates the readability of variable names and function names in the source code and identifies areas that need improvement. Accordingly, the feedback means generates specific improvement suggestions and provides them to the user through the presentation means, thereby efficiently improving the quality and consistency of the code. This system can significantly improve productivity and code maintainability in software development.

[0006] "Input" refers to the act of providing data or instructions to a system or device.

[0007] "Source code" is program text written in a programming language in a human-readable format.

[0008] "Analysis" is the act of examining information in detail to reveal its structure and characteristics.

[0009] "Analysis means" refers to a process or apparatus for analyzing code or data to identify characteristics and areas for improvement.

[0010] "Analysis results" refer to the conclusions and data obtained through the analytical methods.

[0011] "Feedback" refers to the act or message of providing information, including suggestions for improvement and evaluation, based on analysis results.

[0012] A "feedback mechanism" is a process or device that generates and provides useful information to the user based on the analysis results.

[0013] "Presentation" refers to the act of providing information to a user in a visible form.

[0014] The "prompting means" is a process or device for notifying the user of the generated feedback visually or by other means.

[0015] The "system" is an integrated device or network in which mutually related elements and processes are combined.

Brief Description of Drawings

[0016] [Figure 1] It is a conceptual diagram showing an example of the configuration of a data processing system according to the first embodiment. [Figure 2] It is a conceptual diagram showing an example of the main functions of a data processing device and a smart device according to the first embodiment. [Figure 3] It is a conceptual diagram showing an example of the configuration of a data processing system according to the second embodiment. [Figure 4] It is a conceptual diagram showing an example of the main functions of a data processing device and smart glasses according to the second embodiment. [Figure 5] It is a conceptual diagram showing an example of the configuration of a data processing system according to the third embodiment. [Figure 6] It is a conceptual diagram showing an example of the main functions of a data processing device and a headset-type terminal according to the third embodiment. [Figure 7] It is a conceptual diagram showing an example of the configuration of a data processing system according to the fourth embodiment. [Figure 8] It is a conceptual diagram showing an example of the main functions of a data processing device and a robot according to the fourth embodiment. [Figure 9] It shows an emotion map to which multiple emotions are mapped. [Figure 10] It shows an emotion map to which multiple emotions are mapped. [Figure 11] It is a sequence diagram showing the processing flow of the data processing system in Example 1. [Figure 12] It is a sequence diagram showing the processing flow of the data processing system in Application Example 1. [Figure 13]It is a sequence diagram showing the processing flow of the data processing system in Example 2 when the emotion engine is combined. [Figure 14] It is a sequence diagram showing the processing flow of the data processing system in Application Example 2 when the emotion engine is combined.

Embodiments for Carrying Out the Invention

[0017] Hereinafter, an example of an embodiment of the system according to the technology of the present disclosure will be described with reference to the accompanying drawings.

[0018] First, the terms used in the following description will be explained.

[0019] In the following embodiments, the numbered processor (hereinafter simply referred to as "processor") may be one arithmetic unit or a combination of multiple arithmetic units. Also, the processor may be one type of arithmetic unit or a combination of multiple types of arithmetic units. Examples of arithmetic units include CPU (Central Processing Unit), GPU (Graphics Processing Unit), GPGPU (General-Purpose computing on Graphics Processing Units), APU (Accelerated Processing Unit), etc.

[0020] In the following embodiments, the numbered RAM (Random Access Memory) is a memory in which information is temporarily stored and is used as a work memory by the processor.

[0021] In the following embodiments, the numbered storage is one or more nonvolatile storage devices that store various programs and various parameters, etc. Examples of nonvolatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disk (e.g., hard disk), or magnetic tape, etc.

[0022] In the following embodiments, the signed communication interface (I / F) is an interface that includes a communication processor and an antenna, etc. The communication interface manages communication between multiple computers. Examples of communication standards applicable to the communication interface include wireless communication standards such as 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), or Bluetooth (registered trademark).

[0023] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." That is, "A and / or B" means that it may be A alone, or B alone, or a combination of A and B. Furthermore, in this specification, the same concept as "A and / or B" applies when expressing three or more things linked by "and / or."

[0024] [First Embodiment]

[0025] Figure 1 shows an example of the configuration of the data processing system 10 according to the first embodiment.

[0026] As shown in Figure 1, the 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.

[0027] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).

[0028] The smart device 14 comprises a computer 36, a reception device 38, an output device 40, a camera 42, and a communication interface 44. The computer 36 comprises a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The reception device 38, output device 40, and camera 42 are also connected to the bus 52.

[0029] The reception device 38 is equipped with a touch panel 38A and a microphone 38B, etc., and receives user input. The touch panel 38A receives user input by detecting contact with an object (e.g., a pen or finger). The microphone 38B receives user input by detecting the user's voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and 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.

[0030] 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 perceptible to the user 20 (e.g., audio and / or text). The display 40A displays visible information such as text and images according to instructions from the processor 46. The speaker 40B outputs audio according to instructions from the processor 46. The camera 42 is a small digital camera equipped with an optical system such as a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.

[0031] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various types of information between processor 46 and processor 28 via network 54.

[0032] Figure 2 shows an example of the main functions of the data processing device 12 and the smart device 14.

[0033] As shown in Figure 2, in the data processing device 12, a specific processing 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" related to the technology of this 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 according to the specific processing program 56 executed on the RAM 30.

[0034] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.

[0035] In the smart device 14, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The reception output program 60 is used in conjunction with a 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 processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.

[0036] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".

[0037] This invention relates to a system for analyzing source code and suggesting improvements, and a specific embodiment thereof is shown below. This system mainly consists of an analysis means, a feedback means, and a presentation means.

[0038] First, the source code created by the user is entered into the system for analysis. At this time, the user uses a terminal to input the code into a code editor or a dedicated interface.

[0039] Next, the server executes an analysis tool to analyze the received source code. This tool scans the entire code, analyzing variable names, function names, and code structure. The analysis extracts areas that need improvement, such as variable names being too short and unclear, or functions being redundant.

[0040] Subsequently, the server generates detailed improvement suggestions using a feedback mechanism based on the results obtained by the analysis mechanism. This feedback mechanism provides specific correction proposals for the identified problems, such as changing variable names to more meaningful ones.

[0041] Furthermore, the server sends the generated feedback to the terminal and displays it to the user using a presentation tool. Specific problems and suggested improvements are presented in detail, allowing the user to modify the code based on this information.

[0042] By modifying the code based on user feedback, code readability and maintainability are improved, and development work becomes more efficient. This process enables rapid code reviews and improvements while maintaining consistency in code style, even in team development.

[0043] Thus, the system of the present invention makes a significant contribution to improving quality and efficiency in software development by quickly and accurately analyzing source code entered by the user and providing improvement suggestions. Specifically, by combining a code analysis tool with an editor plugin, seamless feedback is possible even in the everyday development environment.

[0044] The following describes the processing flow.

[0045] Step 1:

[0046] The user uses a terminal to input the source code they want to analyze into an input interface. This interface may be configured as a code editor or a web-based application.

[0047] Step 2:

[0048] The terminal sends the entered source code to the server. The server then passes this code to the analysis tool and prepares to begin the analysis process.

[0049] Step 3:

[0050] The server executes the analysis process and begins analyzing the input source code. The server examines variable names, function names, and code structure to identify areas that need improvement. At this stage, it may determine that variable names are too abstract or functions are too long.

[0051] Step 4:

[0052] Based on the analysis results obtained from the analysis tools, the server generates specific improvement suggestions using feedback tools. This process provides the user with specific suggestions such as improving variable names, simplifying code, and eliminating redundant parts.

[0053] Step 5:

[0054] The server sends the generated improvement suggestions to the terminal and prepares them for presentation to the user. Using the appropriate presentation method, the improvement suggestions are displayed in a user-friendly format.

[0055] Step 6:

[0056] The device displays improvement suggestions received from the server to the user. Through this feedback, the user can more easily understand exactly which parts need to be fixed and how.

[0057] Step 7:

[0058] The source code is modified based on the user's feedback. This improves the readability and maintainability of the code, thereby increasing overall productivity.

[0059] (Example 1)

[0060] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."

[0061] Poor readability and maintainability of source code in programming significantly reduce development efficiency. In particular, inappropriate naming conventions for variables and functions, or complex code structures, make code reviews and collaborative development difficult. A system is needed to solve this problem and support efficient software development.

[0062] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.

[0063] In this invention, the server includes a receiving means for receiving source code entered by a user via a terminal, an analysis means for analyzing the entered source code and evaluating variable names, function names, and structure, a feedback generation means for providing improvement suggestions based on the results obtained by the analysis means, and a presentation means for transmitting and presenting the generated improvement suggestions to the terminal. This makes it possible to improve the readability and maintainability of the source code and realize an efficient development process.

[0064] "Receiving means" refers to the function or device that receives source code entered by the user via a terminal.

[0065] "Analysis means" refers to functions or devices for analyzing input source code and evaluating variable names, function names, and structure.

[0066] "Feedback generation means" refers to a function or device that creates and provides improvement suggestions based on the results obtained by the analysis means.

[0067] "Presentation means" refers to a function or device for sending generated improvement suggestions to a terminal and displaying them to the user.

[0068] A "variable name" refers to a name used to identify data in a program.

[0069] A "function name" refers to a name used to identify a specific process within a program.

[0070] "Structure" refers to the arrangement and order of instructions and declarations within source code.

[0071] "Improvement suggestions" refer to specific modification proposals provided based on analysis results to improve the quality of the source code.

[0072] A "generative AI model" refers to a type of artificial intelligence technology that generates new data in response to a specified input, based on training data.

[0073] This system primarily performs source code analysis and generates improvement suggestions. Specifically, it provides functions to automate source code analysis, improvement suggestion generation, and presentation.

[0074] First, the terminal used by the user is equipped with a code editor or a dedicated interface for entering source code. The source code entered by the user is sent from the terminal to the server.

[0075] Next, the server analyzes the source code received from the terminal using specific software (e.g., SonarQube or ESLint). This analysis scans the variable names, function names, and code structure within the code to identify areas for improvement. Specifically, it identifies problems such as unclear variable names or redundant functions.

[0076] Based on the analysis results, the server runs a generative AI model as a feedback generation mechanism to create specific improvement suggestions. For example, the generative AI model might suggest changing the variable name x to a more meaningful name.

[0077] The generated improvement suggestions are sent by the server to the terminal and displayed to the user using the terminal's display mechanism. The user can then modify the code based on this feedback.

[0078] Implementing this process improves the readability and maintainability of the source code, and significantly enhances development efficiency. This, in turn, improves the overall quality of the project and enables rapid software development.

[0079] As a concrete example, a user writes and saves JavaScript® source code using a code editor. The server analyzes the code using ESLint, and based on the analysis results, a generated AI model produces improvement suggestions. The user receives feedback such as, "Please give variable x a more specific name," and modifies the code accordingly.

[0080] An example of a prompt message is as follows:

[0081] "Please analyze this JavaScript code and provide suggestions for improvements to enhance its readability. For example, I'd like advice on variable names and function structure."

[0082] The flow of the specific processing in Example 1 will be explained using Figure 11.

[0083] Step 1:

[0084] The user enters source code into a code editor via the terminal and presses the save or submit button. The input data is the source code of the program the user is developing. At this stage, the user writes the intended functions and logic as code. The output is the source code stored on the terminal, which will be analyzed in subsequent processing.

[0085] Step 2:

[0086] The terminal converts the input code data into a packet format, encrypts it, and securely transmits it in order to send source code to the server. The input is the source code created in step 1, and the output is the data packet sent to the server via the communication protocol. Specifically, this is a secure data transfer using the HTTPS protocol.

[0087] Step 3:

[0088] The server receives source code and uses specific software (e.g., SonarQube or ESLint) to perform structural analysis. The input is source code data sent from the terminal, and the analysis checks variable names, function names, structure, syntax errors, etc. The output is an analysis result detailing areas that need improvement.

[0089] Step 4:

[0090] The server uses the analysis results and a generative AI model as a feedback generation tool to create specific improvement suggestions. The input here is the analysis results from step 3, and the AI ​​uses a language model to create suggestions during the data processing process. The output is a feedback statement that includes specific areas for correction and suggestions.

[0091] Step 5:

[0092] The server sends a feedback message to the terminal, allowing the user to review it. The input is the generated improvement suggestions, and the output is the feedback information displayed on the user's terminal. The server packages the feedback data in JSON format or similar and sends it to the terminal.

[0093] Step 6:

[0094] The terminal presents the received feedback to the user, providing it as information for the user to modify the code. The input is feedback data sent from the server, and the output is detailed feedback information displayed on the user's screen. Specific actions include visually displaying warnings and suggestions using an IDE plugin.

[0095] (Application Example 1)

[0096] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."

[0097] In factories, the low readability and maintainability of control programs for automated equipment and machinery can affect operational efficiency and safety, particularly in environments where rapid program improvements are required. Furthermore, a lack of prompt and specific feedback to improve program quality can lead to decreased work efficiency and an increased risk of malfunctions.

[0098] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.

[0099] In this invention, the server includes an analysis means for analyzing an input computer program, a calculation means for generating improvement suggestions based on the analysis results obtained by the analysis means, and a presentation means for presenting the improvement suggestions to an information processing device and providing visual feedback to the user. This makes it possible to provide specific and accurate feedback for rapidly improving the quality of the program.

[0100] A "computer program" is a set of instructions used to control the operation of mechanical devices or information processing devices.

[0101] An "analysis tool" is a device that has the function of structurally analyzing an input computer program and clarifying its constituent elements.

[0102] A "computational tool" is a device that has the function of generating suggestions for improving the program based on the analysis results.

[0103] A "presentation method" is a function that visually displays improvement suggestions to the user and provides feedback in a way that is easy for the user to understand.

[0104] An "information processing device" is a device that inputs, processes, and outputs data, and is used by users to receive feedback.

[0105] The system that realizes this invention is configured to rapidly support the improvement of the quality of computer programs.

[0106] The server first analyzes the input computer program using analytical tools. Specifically, it uses Python and the ast (Abstract Syntax Tree) module to structurally analyze the program's description elements. This identifies problems related to the readability and efficiency of the description elements.

[0107] Next, the server generates specific improvement suggestions using computational methods based on the analysis results. This utilizes natural language processing (NLP) technology to create concrete and actionable modification proposals for the user. By leveraging a generative AI model, the optimal suggestions can be extracted from the analyzed data.

[0108] The user's device visually displays improvement suggestions generated via a presentation system. By using Flask for communication between the server and client, the user receives real-time feedback, enabling quick responses. The suggested corrections include refactoring redundant code and improving the identifier names of descriptive elements.

[0109] As a concrete example, if a control program for a robot arm in a factory contains redundant code, the server will suggest consolidating it into a function. This feedback allows the user to improve the readability and maintainability of the code. An example of a prompt message would be, "Which parts of this code should be refactored to improve its efficiency?"

[0110] The flow of a specific process in Application Example 1 will be explained using Figure 12.

[0111] Step 1:

[0112] The user's terminal inputs the source code. On the terminal, the program is copied or directly entered into a code editor and prepared for transmission to the server. After input, the terminal sends the source code to the analysis server. The input is a text file of a computer program.

[0113] Step 2:

[0114] The server receives the input source code and executes the analysis process. The server uses the Python `ast` module to analyze the source code and construct a syntax tree. The input is the source code text data, and the output is syntax tree data. The analysis process analyzes the structure of the descriptive elements from the syntax tree data and identifies readability and redundancy issues.

[0115] Step 3:

[0116] The server generates improvement suggestions using computational methods based on the analysis results. Specifically, it uses a generative AI model that leverages NLP technology to automatically generate corrective measures for problems identified from the analysis results. The input is the analysis result data, and the output is text containing specific improvement suggestions.

[0117] Step 4:

[0118] The server sends the generated improvement suggestions to the terminal. The terminal uses a presentation device to visually display the improvement suggestions to the user. The input is the text of the improvement suggestions, and the output is the visual display on the user interface.

[0119] Step 5:

[0120] The user modifies the source code based on the suggested improvements. The user uses a code editor to incorporate the suggestions and improve the program's quality. Finally, the modified code is saved to the terminal. The input is the suggested improvements and the source code; the output is the revised source code.

[0121] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.

[0122] This invention combines a system for analyzing source code and suggesting improvements with an emotion engine that recognizes the user's emotional state and appropriately adjusts the content and tone of the feedback. Specific embodiments are shown below.

[0123] First, the user inputs the source code to be analyzed into an input interface using their device. This interface is implemented as a code editor or a form in a web application.

[0124] Next, the server receives the source code sent from the terminal, activates the analysis tool, and begins code analysis. The analysis tool evaluates the readability of variable and function names, the consistency of the code, and identifies items that need improvement.

[0125] Subsequently, the server generates improvement suggestions based on the analysis results via a feedback mechanism. Simultaneously, the emotion engine starts operating to detect the user's emotional state. This emotion engine evaluates emotions through facial expression analysis and the tone of the input natural language message. As a result, if the user is feeling stressed, the feedback can be switched to a gentler, more encouraging tone.

[0126] For example, if a user feels stressed when receiving feedback, the emotion engine can detect this and adjust the feedback message to something more supportive, such as, "This part could be improved even further. Keep up the good work!" This allows the user to approach the improvement process with a positive attitude.

[0127] Ultimately, the server sends organized feedback to the terminal, which then presents it to the user. The user can use this feedback to modify and improve the code, enhancing its quality and consistency. This system improves the overall productivity of the development process by enabling effective code reviews while considering the user's emotional state.

[0128] The following describes the processing flow.

[0129] Step 1:

[0130] The user uses a terminal to write the source code to be analyzed into the input interface. The entered data is then viewed in the code editor.

[0131] Step 2:

[0132] The terminal sends the entered source code to the server. The server prepares to format the received code into the required format.

[0133] Step 3:

[0134] The server activates the analysis tools and begins analyzing the source code. Specifically, it evaluates variable names, function names, and code structure to identify readability and consistency issues.

[0135] Step 4:

[0136] The server receives the results of the analysis and uses the feedback mechanism to generate specific improvement suggestions. At this time, it determines which parts should be improved and how, based on the analyzed data.

[0137] Step 5:

[0138] The server activates the emotion engine and recognizes the user's emotions. The emotion engine analyzes the user's input and facial expression data to evaluate their current emotional state.

[0139] Step 6:

[0140] The server adjusts the content and tone of feedback based on the emotional state obtained from the emotion engine. For example, if the user is in an upset state, it will generate encouraging feedback in a gentle tone.

[0141] Step 7:

[0142] The server sends the generated feedback to the device. The device receives this information, organizes it for the user to understand, and displays it on the screen.

[0143] Step 8:

[0144] The user reviews the feedback provided and makes corrections to the source code. The user aims to improve their coding techniques and overall quality by using the feedback as a reference.

[0145] (Example 2)

[0146] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".

[0147] Conventional source code analysis systems provide feedback without considering the user's emotional state, which can lead to users experiencing unnecessary resistance or stress from the feedback. Furthermore, the feedback users receive is not always optimal from a readability or functionality standpoint, and there may be room for improvement. A system is needed to improve this situation and enable users to work on program improvement more effectively and constructively.

[0148] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.

[0149] In this invention, the server includes an analysis means for analyzing an input computer program, a generation means for generating opinions based on the analysis results obtained by the analysis means, and an emotion evaluation means for detecting the user's emotional state and adjusting the content and tone of the opinions based on the emotional state. This makes it possible to provide appropriate feedback that takes into account the user's emotional state, thereby promoting effective code improvement.

[0150] "Analysis means" refers to a device or program that analyzes an input computer program and evaluates the readability and functionality of the code.

[0151] "Generation means" refers to a function or device that generates opinions regarding code improvement and optimization based on the analysis results obtained by the analysis means.

[0152] "Emotion evaluation means" refers to a device or program that has the function of detecting the user's emotional state and adjusting the content and tone of the opinion generated based on that emotional state.

[0153] "Presentation means" refers to a device or program that presents opinions generated by a generation means to the user visually or audibly.

[0154] This invention is a system for analyzing computer programs and providing feedback, which promotes more effective improvement by evaluating the user's emotional state and adjusting the tone of the feedback accordingly. First, the user inputs the computer program to be analyzed into the system using a terminal. Input is done via a text form in an application running on a web browser or through a dedicated software editor. For example, the user inputs a prompt in the form of "Please check the code of the main function."

[0155] The terminal sends the entered program to the server. The server then begins processing the received program using an analysis tool. The analysis tool utilizes a generative AI model to evaluate the code's structure, name readability, and overall functionality. Based on this analysis, the server generates suggestions for improvement using the generation tool. Specifically, this step involves reviewing variable and function names and identifying redundant code sections.

[0156] Next, the server detects the user's emotional state using emotion assessment tools. This assessment is performed by determining the tone from the text entered by the user, and optionally by using a camera for facial recognition. If the emotional state suggests stress or anxiety, the server adjusts the generated opinions to a more supportive and encouraging tone.

[0157] Ultimately, the server sends this refined feedback to the terminal, which then displays the feedback to the user. The user can then use this feedback to work on actual code improvements. This allows users to improve the quality of their code while receiving guidance that takes their emotional state into account.

[0158] The flow of the specific processing in Example 2 will be explained using Figure 13.

[0159] Step 1:

[0160] The user inputs the computer program to be analyzed using a terminal. The user enters the source code, including prompts, into an editor or web form and clicks a submit button. The entered program data is temporarily saved on the terminal.

[0161] Step 2:

[0162] The terminal sends the entered program data to the server. A data transfer protocol is used to ensure data consistency and security. The server returns a response message to the terminal confirming receipt of the program.

[0163] Step 3:

[0164] The server analyzes the received program using an analysis tool. This analysis utilizes a generative AI model to evaluate the structure, readability, and performance of the program code. Specifically, it checks for variable naming conventions, function dependencies, and detects redundant code, generating the analysis results.

[0165] Step 4:

[0166] The server generates improvement suggestions based on the analysis results. In this process, it proposes solutions to the problems identified in the analysis. For example, it may include specific improvement suggestions such as removing redundant variables or splitting functions to clarify the processing.

[0167] Step 5:

[0168] The server measures the user's emotional state through an emotion assessment tool. At this stage, it analyzes prompt texts and arbitrary facial expression data sent by the user and uses an emotion model to assess the presence of stress or anxiety.

[0169] Step 6:

[0170] Based on the user's emotional state, the server adjusts the tone of suggested improvements. If it detects that the user is stressed, it changes the suggestions to more supportive messages to reassure the user.

[0171] Step 7:

[0172] The server sends the final improvement suggestions to the terminal. The terminal receives this information and presents it visually to the user. Based on this, the user can begin working on improving the program and strive to improve the quality of the code.

[0173] (Application Example 2)

[0174] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as a "server" and the smart device 14 as a "terminal".

[0175] In software development, detailed analysis and improvement suggestions are required to improve the quality of program code, but following these suggestions can be stressful for users. Furthermore, typical analysis systems provide monotonous feedback without considering user emotions, potentially leading to a loss of motivation. This, in turn, reduces the efficiency of the development process, posing a significant challenge.

[0176] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.

[0177] In this invention, the server includes processing means for analyzing input program code, generation means for generating advice based on evaluation results obtained by the processing means, and emotion adjustment means for identifying the user's emotional state and adjusting the content and tone of the advice. This makes it possible to provide excellent improvement suggestions that take the user's emotional state into consideration.

[0178] "Entered program code" refers to the text data of software code that the user sends to the system for analysis.

[0179] A "processing means" is a system component that has the function of analyzing the input program code and evaluating its structure and content.

[0180] "Evaluation results" refer to data generated by the processing device based on the program code it has analyzed, concerning the quality of the code and areas for improvement.

[0181] A "generation means" is a system component that has the function of generating advice and improvement suggestions for the user based on the evaluation results.

[0182] An "emotion adjustment mechanism" is a system component that has the function of identifying the user's emotional state and appropriately adjusting the content and tone of the advice and feedback generated based on that state.

[0183] "Display means" refers to a system component that has the function of presenting feedback created by the generation means and emotion adjustment means to the user in a visual or other format.

[0184] A "data processing system" is a computer system that performs the overall processing of program code analysis, evaluation, feedback generation, and the provision of user-based feedback.

[0185] This invention is a data processing system that analyzes program code entered by a user and provides improvement suggestions based on the evaluation. Furthermore, it identifies the user's emotional state and adjusts the content and tone of the feedback accordingly, thereby providing more effective development support.

[0186] The server first analyzes the received program code using a processing unit. The processing unit evaluates the program's structure and the readability of identifiers, and generates an evaluation result. Next, the generation unit uses the evaluation result to generate improvement suggestions for the user. In this process, a generation AI model is utilized to provide more refined suggestions.

[0187] Simultaneously, the server uses emotion adjustment mechanisms to identify the user's emotional state. This emotional state is extracted from the tone of the messages the user enters and from facial expression analysis via the camera. A common facial expression recognition API can be used for this analysis.

[0188] Ultimately, the generated suggestions are adjusted to suit the user's emotions through emotion adjustment mechanisms and presented to the user through display mechanisms. This system enables gentle, encouraging, and motivating feedback for the user.

[0189] For example, when an engineer inputs program code, if the analysis results suggest improvements for efficiency, feedback such as, "Improving this part will bring you closer to project success. Proceed at your own pace," could be provided. Another example of a prompt message could be, "If the system detects that the user is confused, generate a reassuring feedback message," which could be given to the AI ​​model.

[0190] The flow of a specific process in Application Example 2 will be explained using Figure 14.

[0191] Step 1:

[0192] The user inputs the program code to be analyzed using a terminal. The input code is sent from the terminal to the server. Here, the input is the program code, and the output is the data sent to the server.

[0193] Step 2:

[0194] The server analyzes the received program code using processing equipment. This analysis evaluates the code's structure and the readability of identifiers. The server takes the program code as input and outputs data related to the code's quality as the analysis result.

[0195] Step 3:

[0196] The server generates improvement suggestions based on the analysis results using a generation mechanism. This generation process utilizes a generational AI model, taking the analysis results as input and producing specific advice and suggestions as output. This specific operation helps to refine the instructions provided to the user.

[0197] Step 4:

[0198] The server identifies the user's emotional state using emotion regulation mechanisms. Here, text input from the user and image data from the camera are input into the emotion recognition system, and data indicating the emotional state is output. Specifically, an expression recognition API is used to determine the user's emotional state.

[0199] Step 5:

[0200] The server adjusts the generated advice to match the user's emotional state. This process takes the outputted emotional state data as input and outputs feedback in the most appropriate tone. The feedback is adjusted to be gentle or encouraging depending on the user's emotions.

[0201] Step 6:

[0202] The server sends the refined feedback to the terminal, which then presents it to the user. The input is the refined feedback statement, which is displayed on the user's screen as output. This allows the user to work on modifying the program code based on the feedback received.

[0203] 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 user input for the result of the specific processing. The control unit 46A transmits the audio data indicating 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.

[0204] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). An example of data generation model 58 is ChatGPT (registered trademark) (Internet search).<URL: https: / / openai.com / blog / chatgpt> ), Gemini (registered trademark) (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include those described above. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions shown by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.

[0205] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart device 14.

[0206] [Second Embodiment]

[0207] Figure 3 shows an example of the configuration of the data processing system 210 according to the second embodiment.

[0208] As shown in Figure 3, the data processing system 210 includes a data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.

[0209] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).

[0210] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication interface 44. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, and camera 42 are also connected to the bus 52.

[0211] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.

[0212] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).

[0213] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.

[0214] Figure 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Figure 4, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.

[0215] The specific processing program 56 is an example of a "program" relating to the technology of this 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.

[0216] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.

[0217] In the smart glasses 214, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. 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 processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.

[0218] Next, the identification processing performed by the identification processing unit 290 of the data processing device 12 will be described. 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".

[0219] This invention relates to a system for analyzing source code and suggesting improvements, and a specific embodiment thereof is shown below. This system mainly consists of an analysis means, a feedback means, and a presentation means.

[0220] First, the source code created by the user is entered into the system for analysis. At this time, the user uses a terminal to input the code into a code editor or a dedicated interface.

[0221] Next, the server executes an analysis tool to analyze the received source code. This tool scans the entire code, analyzing variable names, function names, and code structure. The analysis extracts areas that need improvement, such as variable names being too short and unclear, or functions being redundant.

[0222] Subsequently, the server generates detailed improvement suggestions using a feedback mechanism based on the results obtained by the analysis mechanism. This feedback mechanism provides specific correction proposals for the identified problems, such as changing variable names to more meaningful ones.

[0223] Furthermore, the server sends the generated feedback to the terminal and displays it to the user using a presentation tool. Specific problems and suggested improvements are presented in detail, allowing the user to modify the code based on this information.

[0224] By modifying the code based on user feedback, code readability and maintainability are improved, and development work becomes more efficient. This process enables rapid code reviews and improvements while maintaining consistency in code style, even in team development.

[0225] Thus, the system of the present invention makes a significant contribution to improving quality and efficiency in software development by quickly and accurately analyzing source code entered by the user and providing improvement suggestions. Specifically, by combining a code analysis tool with an editor plugin, seamless feedback is possible even in the everyday development environment.

[0226] The following describes the processing flow.

[0227] Step 1:

[0228] The user uses a terminal to input the source code they want to analyze into an input interface. This interface may be configured as a code editor or a web-based application.

[0229] Step 2:

[0230] The terminal sends the entered source code to the server. The server then passes this code to the analysis tool and prepares to begin the analysis process.

[0231] Step 3:

[0232] The server executes the analysis process and begins analyzing the input source code. The server examines variable names, function names, and code structure to identify areas that need improvement. At this stage, it may determine that variable names are too abstract or functions are too long.

[0233] Step 4:

[0234] Based on the analysis results obtained from the analysis tools, the server generates specific improvement suggestions using feedback tools. This process provides the user with specific suggestions such as improving variable names, simplifying code, and eliminating redundant parts.

[0235] Step 5:

[0236] The server sends the generated improvement suggestions to the terminal and prepares them for presentation to the user. Using the appropriate presentation method, the improvement suggestions are displayed in a user-friendly format.

[0237] Step 6:

[0238] The device displays improvement suggestions received from the server to the user. Through this feedback, the user can more easily understand exactly which parts need to be fixed and how.

[0239] Step 7:

[0240] The source code is modified based on the user's feedback. This improves the readability and maintainability of the code, thereby increasing overall productivity.

[0241] (Example 1)

[0242] Next, we will describe Example 1. 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."

[0243] Poor readability and maintainability of source code in programming significantly reduce development efficiency. In particular, inappropriate naming conventions for variables and functions, or complex code structures, make code reviews and collaborative development difficult. A system is needed to solve this problem and support efficient software development.

[0244] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.

[0245] In this invention, the server includes a receiving means for receiving source code entered by a user via a terminal, an analysis means for analyzing the entered source code and evaluating variable names, function names, and structure, a feedback generation means for providing improvement suggestions based on the results obtained by the analysis means, and a presentation means for transmitting and presenting the generated improvement suggestions to the terminal. This makes it possible to improve the readability and maintainability of the source code and realize an efficient development process.

[0246] "Receiving means" refers to the function or device that receives source code entered by the user via a terminal.

[0247] "Analysis means" refers to functions or devices for analyzing input source code and evaluating variable names, function names, and structure.

[0248] "Feedback generation means" refers to a function or device that creates and provides improvement suggestions based on the results obtained by the analysis means.

[0249] "Presentation means" refers to a function or device for sending generated improvement suggestions to a terminal and displaying them to the user.

[0250] A "variable name" refers to a name used to identify data in a program.

[0251] A "function name" refers to a name used to identify a specific process within a program.

[0252] "Structure" refers to the arrangement and order of instructions and declarations within source code.

[0253] "Improvement suggestions" refer to specific modification proposals provided based on analysis results to improve the quality of the source code.

[0254] A "generative AI model" refers to a type of artificial intelligence technology that generates new data in response to a specified input, based on training data.

[0255] This system primarily performs source code analysis and generates improvement suggestions. Specifically, it provides functions to automate source code analysis, improvement suggestion generation, and presentation.

[0256] First, the terminal used by the user is equipped with a code editor or a dedicated interface for entering source code. The source code entered by the user is sent from the terminal to the server.

[0257] Next, the server analyzes the source code received from the terminal using specific software (e.g., SonarQube or ESLint). This analysis scans the variable names, function names, and code structure within the code to identify areas for improvement. Specifically, it identifies problems such as unclear variable names or redundant functions.

[0258] Based on the analysis results, the server runs a generative AI model as a feedback generation mechanism to create specific improvement suggestions. For example, the generative AI model might suggest changing the variable name x to a more meaningful name.

[0259] The generated improvement suggestions are sent by the server to the terminal and displayed to the user using the terminal's display mechanism. The user can then modify the code based on this feedback.

[0260] Implementing this process improves the readability and maintainability of the source code, and significantly enhances development efficiency. This, in turn, improves the overall quality of the project and enables rapid software development.

[0261] As a concrete example, a user writes and saves JavaScript source code using a code editor. The server analyzes the code using ESLint, and based on the analysis results, a generated AI model produces improvement suggestions. The user receives feedback such as, "Please give variable x a more specific name," and modifies the code accordingly.

[0262] An example of a prompt message is as follows:

[0263] "Please analyze this JavaScript code and provide suggestions for improvements to enhance its readability. For example, I'd like advice on variable names and function structure."

[0264] The flow of the specific processing in Example 1 will be explained using Figure 11.

[0265] Step 1:

[0266] The user enters source code into a code editor via the terminal and presses the save or submit button. The input data is the source code of the program the user is developing. At this stage, the user writes the intended functions and logic as code. The output is the source code stored on the terminal, which will be analyzed in subsequent processing.

[0267] Step 2:

[0268] The terminal converts the input code data into a packet format, encrypts it, and securely transmits it in order to send source code to the server. The input is the source code created in step 1, and the output is the data packet sent to the server via the communication protocol. Specifically, this is a secure data transfer using the HTTPS protocol.

[0269] Step 3:

[0270] The server receives source code and uses specific software (e.g., SonarQube or ESLint) to perform structural analysis. The input is source code data sent from the terminal, and the analysis checks variable names, function names, structure, syntax errors, etc. The output is an analysis result detailing areas that need improvement.

[0271] Step 4:

[0272] The server uses the analysis results and a generative AI model as a feedback generation tool to create specific improvement suggestions. The input here is the analysis results from step 3, and the AI ​​uses a language model to create suggestions during the data processing process. The output is a feedback statement that includes specific areas for correction and suggestions.

[0273] Step 5:

[0274] The server sends a feedback message to the terminal, allowing the user to review it. The input is the generated improvement suggestions, and the output is the feedback information displayed on the user's terminal. The server packages the feedback data in JSON format or similar and sends it to the terminal.

[0275] Step 6:

[0276] The terminal presents the received feedback to the user, providing it as information for the user to modify the code. The input is feedback data sent from the server, and the output is detailed feedback information displayed on the user's screen. Specific actions include visually displaying warnings and suggestions using an IDE plugin.

[0277] (Application Example 1)

[0278] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."

[0279] In factories, the low readability and maintainability of control programs for automated equipment and machinery can affect operational efficiency and safety, particularly in environments where rapid program improvements are required. Furthermore, a lack of prompt and specific feedback to improve program quality can lead to decreased work efficiency and an increased risk of malfunctions.

[0280] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.

[0281] In this invention, the server includes an analysis means for analyzing an input computer program, a calculation means for generating improvement suggestions based on the analysis results obtained by the analysis means, and a presentation means for presenting the improvement suggestions to an information processing device and providing visual feedback to the user. This makes it possible to provide specific and accurate feedback for rapidly improving the quality of the program.

[0282] A "computer program" is a set of instructions used to control the operation of a mechanical device or an information processing device.

[0283] "Analysis means" has the function of structurally analyzing an input computer program and clarifying its components.

[0284] "Calculation means" has the function of generating proposals regarding program improvement based on the analysis results.

[0285] "Presentation means" has the function of visually showing improvement proposals to the user and providing feedback in a form that is easy for the user to understand.

[0286] An "information processing device" is a device that performs data input, processing, and output, and is a device used by a user to receive feedback.

[0287] The system for realizing this invention is configured to quickly support the improvement of the quality of computer programs.

[0288] First, the server analyzes the input computer program using analysis means. Specifically, it utilizes the ast (Abstract Syntax Tree) module in Python to structurally analyze the program's description elements. Thereby, problems regarding the readability and efficiency of the description elements are identified.

[0289] Next, the server generates specific improvement proposals using calculation means based on the analysis results. For this, natural language processing (NLP) technology is utilized to create specific and executable amendments for the user. By leveraging a generative AI model, the optimal proposal content can be extracted from the analyzed data.

[0290] The user's device visually displays improvement suggestions generated via a presentation system. By using Flask for communication between the server and client, the user receives real-time feedback, enabling quick responses. The suggested corrections include refactoring redundant code and improving the identifier names of descriptive elements.

[0291] As a concrete example, if a control program for a robot arm in a factory contains redundant code, the server will suggest consolidating it into a function. This feedback allows the user to improve the readability and maintainability of the code. An example of a prompt message would be, "Which parts of this code should be refactored to improve its efficiency?"

[0292] The flow of a specific process in Application Example 1 will be explained using Figure 12.

[0293] Step 1:

[0294] The user's terminal inputs the source code. On the terminal, the program is copied or directly entered into a code editor and prepared for transmission to the server. After input, the terminal sends the source code to the analysis server. The input is a text file of a computer program.

[0295] Step 2:

[0296] The server receives the input source code and executes the analysis process. The server uses the Python `ast` module to analyze the source code and construct a syntax tree. The input is the source code text data, and the output is syntax tree data. The analysis process analyzes the structure of the descriptive elements from the syntax tree data and identifies readability and redundancy issues.

[0297] Step 3:

[0298] The server generates improvement suggestions using computational methods based on the analysis results. Specifically, it uses a generative AI model that leverages NLP technology to automatically generate corrective measures for problems identified from the analysis results. The input is the analysis result data, and the output is text containing specific improvement suggestions.

[0299] Step 4:

[0300] The server sends the generated improvement suggestions to the terminal. The terminal uses a presentation device to visually display the improvement suggestions to the user. The input is the text of the improvement suggestions, and the output is the visual display on the user interface.

[0301] Step 5:

[0302] The user modifies the source code based on the suggested improvements. The user uses a code editor to incorporate the suggestions and improve the program's quality. Finally, the modified code is saved to the terminal. The input is the suggested improvements and the source code; the output is the revised source code.

[0303] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.

[0304] This invention combines a system for analyzing source code and suggesting improvements with an emotion engine that recognizes the user's emotional state and appropriately adjusts the content and tone of the feedback. Specific embodiments are shown below.

[0305] First, the user inputs the source code to be analyzed into an input interface using their device. This interface is implemented as a code editor or a form in a web application.

[0306] Next, the server receives the source code sent from the terminal and starts the analysis means to begin code analysis. The analysis means evaluates the readability of variable names and function names, as well as the code consistency, and identifies items that need improvement.

[0307] After that, the server generates improvement proposals via the feedback means based on the analysis results. At the same time, the emotion engine starts operating to detect the user's emotional state. This emotion engine evaluates emotions through the user's facial expression analysis and the tone of the input natural language message. As a result, when the user is feeling stressed, the feedback can be switched to a friendly and encouraging tone.

[0308] For example, when the user feels stressed upon receiving the feedback, the emotion engine detects this and adjusts the feedback message to supportive content such as "This part will be even better if improved. Keep it up!" This enables the user to proactively engage in the improvement work.

[0309] Finally, the server sends the organized feedback to the terminal, and the terminal presents it to the user. The user can make code corrections and improvements based on this feedback, thereby enhancing the quality and consistency of the code. This system improves the productivity of the entire development process by conducting effective code reviews while considering the user's emotional state.

[0310] The following explains the processing flow.

[0311] Step 1:

[0312] The user uses the terminal to describe the source code to be analyzed in the input interface. The input data is confirmed on the code editor.

[0313] Step 2:

[0314] The terminal sends the entered source code to the server. The server prepares to format the received code into the required format.

[0315] Step 3:

[0316] The server activates the analysis tools and begins analyzing the source code. Specifically, it evaluates variable names, function names, and code structure to identify readability and consistency issues.

[0317] Step 4:

[0318] The server receives the results of the analysis and uses the feedback mechanism to generate specific improvement suggestions. At this time, it determines which parts should be improved and how, based on the analyzed data.

[0319] Step 5:

[0320] The server activates the emotion engine and recognizes the user's emotions. The emotion engine analyzes the user's input and facial expression data to evaluate their current emotional state.

[0321] Step 6:

[0322] The server adjusts the content and tone of feedback based on the emotional state obtained from the emotion engine. For example, if the user is in an upset state, it will generate encouraging feedback in a gentle tone.

[0323] Step 7:

[0324] The server sends the generated feedback to the device. The device receives this information, organizes it for the user to understand, and displays it on the screen.

[0325] Step 8:

[0326] The user reviews the feedback provided and makes corrections to the source code. The user aims to improve their coding techniques and overall quality by using the feedback as a reference.

[0327] (Example 2)

[0328] Next, we will describe Example 2. 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".

[0329] Conventional source code analysis systems provide feedback without considering the user's emotional state, which can lead to users experiencing unnecessary resistance or stress from the feedback. Furthermore, the feedback users receive is not always optimal from a readability or functionality standpoint, and there may be room for improvement. A system is needed to improve this situation and enable users to work on program improvement more effectively and constructively.

[0330] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.

[0331] In this invention, the server includes an analysis means for analyzing an input computer program, a generation means for generating opinions based on the analysis results obtained by the analysis means, and an emotion evaluation means for detecting the user's emotional state and adjusting the content and tone of the opinions based on the emotional state. This makes it possible to provide appropriate feedback that takes into account the user's emotional state, thereby promoting effective code improvement.

[0332] "Analysis means" refers to a device or program that analyzes an input computer program and evaluates the readability and functionality of the code.

[0333] "Generation means" refers to a function or device that generates opinions regarding code improvement and optimization based on the analysis results obtained by the analysis means.

[0334] "Emotion evaluation means" refers to a device or program that has the function of detecting the user's emotional state and adjusting the content and tone of the opinion generated based on that emotional state.

[0335] "Presentation means" refers to a device or program that presents opinions generated by a generation means to the user visually or audibly.

[0336] This invention is a system for analyzing computer programs and providing feedback, which promotes more effective improvement by evaluating the user's emotional state and adjusting the tone of the feedback accordingly. First, the user inputs the computer program to be analyzed into the system using a terminal. Input is done via a text form in an application running on a web browser or through a dedicated software editor. For example, the user inputs a prompt in the form of "Please check the code of the main function."

[0337] The terminal sends the entered program to the server. The server then begins processing the received program using an analysis tool. The analysis tool utilizes a generative AI model to evaluate the code's structure, name readability, and overall functionality. Based on this analysis, the server generates suggestions for improvement using the generation tool. Specifically, this step involves reviewing variable and function names and identifying redundant code sections.

[0338] Next, the server detects the user's emotional state using emotion assessment tools. This assessment is performed by determining the tone from the text entered by the user, and optionally by using a camera for facial recognition. If the emotional state suggests stress or anxiety, the server adjusts the generated opinions to a more supportive and encouraging tone.

[0339] Ultimately, the server sends this refined feedback to the terminal, which then displays the feedback to the user. The user can then use this feedback to work on actual code improvements. This allows users to improve the quality of their code while receiving guidance that takes their emotional state into account.

[0340] The flow of the specific processing in Example 2 will be explained using Figure 13.

[0341] Step 1:

[0342] The user inputs the computer program to be analyzed using a terminal. The user enters the source code, including prompts, into an editor or web form and clicks a submit button. The entered program data is temporarily saved on the terminal.

[0343] Step 2:

[0344] The terminal sends the entered program data to the server. A data transfer protocol is used to ensure data consistency and security. The server returns a response message to the terminal confirming receipt of the program.

[0345] Step 3:

[0346] The server analyzes the received program using an analysis tool. This analysis utilizes a generative AI model to evaluate the structure, readability, and performance of the program code. Specifically, it checks for variable naming conventions, function dependencies, and detects redundant code, generating the analysis results.

[0347] Step 4:

[0348] The server generates improvement suggestions based on the analysis results. In this process, it proposes solutions to the problems identified in the analysis. For example, it may include specific improvement suggestions such as removing redundant variables or splitting functions to clarify the processing.

[0349] Step 5:

[0350] The server measures the user's emotional state through an emotion assessment tool. At this stage, it analyzes prompt texts and arbitrary facial expression data sent by the user and uses an emotion model to assess the presence of stress or anxiety.

[0351] Step 6:

[0352] Based on the user's emotional state, the server adjusts the tone of suggested improvements. If it detects that the user is stressed, it changes the suggestions to more supportive messages to reassure the user.

[0353] Step 7:

[0354] The server sends the final improvement suggestions to the terminal. The terminal receives this information and presents it visually to the user. Based on this, the user can begin working on improving the program and strive to improve the quality of the code.

[0355] (Application Example 2)

[0356] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."

[0357] In software development, detailed analysis and improvement suggestions are required to improve the quality of program code, but following these suggestions can be stressful for users. Furthermore, typical analysis systems provide monotonous feedback without considering user emotions, potentially leading to a loss of motivation. This, in turn, reduces the efficiency of the development process, posing a significant challenge.

[0358] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.

[0359] In this invention, the server includes processing means for analyzing input program code, generation means for generating advice based on evaluation results obtained by the processing means, and emotion adjustment means for identifying the user's emotional state and adjusting the content and tone of the advice. This makes it possible to provide excellent improvement suggestions that take the user's emotional state into consideration.

[0360] "Entered program code" refers to the text data of software code that the user sends to the system for analysis.

[0361] A "processing means" is a system component that has the function of analyzing the input program code and evaluating its structure and content.

[0362] "Evaluation results" refer to data generated by the processing device based on the program code it has analyzed, concerning the quality of the code and areas for improvement.

[0363] A "generation means" is a system component that has the function of generating advice and improvement suggestions for the user based on the evaluation results.

[0364] An "emotion adjustment mechanism" is a system component that has the function of identifying the user's emotional state and appropriately adjusting the content and tone of the advice and feedback generated based on that state.

[0365] "Display means" refers to a system component that has the function of presenting feedback created by the generation means and emotion adjustment means to the user in a visual or other format.

[0366] A "data processing system" is a computer system that performs the overall processing of program code analysis, evaluation, feedback generation, and the provision of user-based feedback.

[0367] This invention is a data processing system that analyzes program code entered by a user and provides improvement suggestions based on the evaluation. Furthermore, it identifies the user's emotional state and adjusts the content and tone of the feedback accordingly, thereby providing more effective development support.

[0368] The server first analyzes the received program code using a processing unit. The processing unit evaluates the program's structure and the readability of identifiers, and generates an evaluation result. Next, the generation unit uses the evaluation result to generate improvement suggestions for the user. In this process, a generation AI model is utilized to provide more refined suggestions.

[0369] Simultaneously, the server uses emotion adjustment mechanisms to identify the user's emotional state. This emotional state is extracted from the tone of the messages the user enters and from facial expression analysis via the camera. A common facial expression recognition API can be used for this analysis.

[0370] Ultimately, the generated suggestions are adjusted to suit the user's emotions through emotion adjustment mechanisms and presented to the user through display mechanisms. This system enables gentle, encouraging, and motivating feedback for the user.

[0371] For example, when an engineer inputs program code, if the analysis results suggest improvements for efficiency, feedback such as, "Improving this part will bring you closer to project success. Proceed at your own pace," could be provided. Another example of a prompt message could be, "If the system detects that the user is confused, generate a reassuring feedback message," which could be given to the AI ​​model.

[0372] The flow of a specific process in Application Example 2 will be explained using Figure 14.

[0373] Step 1:

[0374] The user inputs the program code to be analyzed using a terminal. The input code is sent from the terminal to the server. Here, the input is the program code, and the output is the data sent to the server.

[0375] Step 2:

[0376] The server analyzes the received program code using processing equipment. This analysis evaluates the code's structure and the readability of identifiers. The server takes the program code as input and outputs data related to the code's quality as the analysis result.

[0377] Step 3:

[0378] The server generates improvement suggestions based on the analysis results using a generation mechanism. This generation process utilizes a generational AI model, taking the analysis results as input and producing specific advice and suggestions as output. This specific operation helps to refine the instructions provided to the user.

[0379] Step 4:

[0380] The server identifies the user's emotional state using emotion regulation mechanisms. Here, text input from the user and image data from the camera are input into the emotion recognition system, and data indicating the emotional state is output. Specifically, an expression recognition API is used to determine the user's emotional state.

[0381] Step 5:

[0382] The server adjusts the generated advice to match the user's emotional state. This process takes the outputted emotional state data as input and outputs feedback in the most appropriate tone. The feedback is adjusted to be gentle or encouraging depending on the user's emotions.

[0383] Step 6:

[0384] The server sends the refined feedback to the terminal, which then presents it to the user. The input is the refined feedback statement, which is displayed on the user's screen as output. This allows the user to work on modifying the program code based on the feedback received.

[0385] 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 user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.

[0386] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include those described above. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions shown by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.

[0387] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart glasses 214.

[0388] [Third Embodiment]

[0389] Figure 5 shows an example of the configuration of the data processing system 310 according to the third embodiment.

[0390] As shown in Figure 5, the data processing system 310 includes a data processing device 12 and a headset terminal 314. An example of the data processing device 12 is a server.

[0391] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).

[0392] The headset terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a display 343. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and display 343 are also connected to the bus 52.

[0393] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.

[0394] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).

[0395] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.

[0396] Figure 6 shows an example of the main functions of the data processing device 12 and the headset terminal 314. As shown in Figure 6, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.

[0397] The specific processing program 56 is an example of a "program" relating to the technology of this 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.

[0398] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.

[0399] In the headset terminal 314, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. 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 processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.

[0400] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the headset terminal 314 will be referred to as the "terminal".

[0401] This invention relates to a system for analyzing source code and suggesting improvements, and a specific embodiment thereof is shown below. This system mainly consists of an analysis means, a feedback means, and a presentation means.

[0402] First, the source code created by the user is entered into the system for analysis. At this time, the user uses a terminal to input the code into a code editor or a dedicated interface.

[0403] Next, the server executes an analysis tool to analyze the received source code. This tool scans the entire code, analyzing variable names, function names, and code structure. The analysis extracts areas that need improvement, such as variable names being too short and unclear, or functions being redundant.

[0404] Subsequently, the server generates detailed improvement suggestions using a feedback mechanism based on the results obtained by the analysis mechanism. This feedback mechanism provides specific correction proposals for the identified problems, such as changing variable names to more meaningful ones.

[0405] Furthermore, the server sends the generated feedback to the terminal and displays it to the user using a presentation tool. Specific problems and suggested improvements are presented in detail, allowing the user to modify the code based on this information.

[0406] By modifying the code based on user feedback, code readability and maintainability are improved, and development work becomes more efficient. This process enables rapid code reviews and improvements while maintaining consistency in code style, even in team development.

[0407] Thus, the system of the present invention makes a significant contribution to improving quality and efficiency in software development by quickly and accurately analyzing source code entered by the user and providing improvement suggestions. Specifically, by combining a code analysis tool with an editor plugin, seamless feedback is possible even in the everyday development environment.

[0408] The following describes the processing flow.

[0409] Step 1:

[0410] The user uses a terminal to input the source code they want to analyze into an input interface. This interface may be configured as a code editor or a web-based application.

[0411] Step 2:

[0412] The terminal sends the entered source code to the server. The server then passes this code to the analysis tool and prepares to begin the analysis process.

[0413] Step 3:

[0414] The server executes the analysis process and begins analyzing the input source code. The server examines variable names, function names, and code structure to identify areas that need improvement. At this stage, it may determine that variable names are too abstract or functions are too long.

[0415] Step 4:

[0416] Based on the analysis results obtained from the analysis tools, the server generates specific improvement suggestions using feedback tools. This process provides the user with specific suggestions such as improving variable names, simplifying code, and eliminating redundant parts.

[0417] Step 5:

[0418] The server sends the generated improvement suggestions to the terminal and prepares them for presentation to the user. Using the appropriate presentation method, the improvement suggestions are displayed in a user-friendly format.

[0419] Step 6:

[0420] The device displays improvement suggestions received from the server to the user. Through this feedback, the user can more easily understand exactly which parts need to be fixed and how.

[0421] Step 7:

[0422] The source code is modified based on the user's feedback. This improves the readability and maintainability of the code, thereby increasing overall productivity.

[0423] (Example 1)

[0424] Next, we will describe Example 1. 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."

[0425] Poor readability and maintainability of source code in programming significantly reduce development efficiency. In particular, inappropriate naming conventions for variables and functions, or complex code structures, make code reviews and collaborative development difficult. A system is needed to solve this problem and support efficient software development.

[0426] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.

[0427] In this invention, the server includes a receiving means for receiving source code entered by a user via a terminal, an analysis means for analyzing the entered source code and evaluating variable names, function names, and structure, a feedback generation means for providing improvement suggestions based on the results obtained by the analysis means, and a presentation means for transmitting and presenting the generated improvement suggestions to the terminal. This makes it possible to improve the readability and maintainability of the source code and realize an efficient development process.

[0428] "Receiving means" refers to the function or device that receives source code entered by the user via a terminal.

[0429] "Analysis means" refers to functions or devices for analyzing input source code and evaluating variable names, function names, and structure.

[0430] "Feedback generation means" refers to a function or device that creates and provides improvement suggestions based on the results obtained by the analysis means.

[0431] "Presentation means" refers to a function or device for sending generated improvement suggestions to a terminal and displaying them to the user.

[0432] A "variable name" refers to a name used to identify data in a program.

[0433] A "function name" refers to a name used to identify a specific process within a program.

[0434] "Structure" refers to the arrangement and order of instructions and declarations within source code.

[0435] "Improvement suggestions" refer to specific modification proposals provided based on analysis results to improve the quality of the source code.

[0436] A "generative AI model" refers to a type of artificial intelligence technology that generates new data in response to a specified input, based on training data.

[0437] This system primarily performs source code analysis and generates improvement suggestions. Specifically, it provides functions to automate source code analysis, improvement suggestion generation, and presentation.

[0438] First, the terminal used by the user is equipped with a code editor or a dedicated interface for entering source code. The source code entered by the user is sent from the terminal to the server.

[0439] Next, the server analyzes the source code received from the terminal using specific software (e.g., SonarQube or ESLint). This analysis scans the variable names, function names, and code structure within the code to identify areas for improvement. Specifically, it identifies problems such as unclear variable names or redundant functions.

[0440] Based on the analysis results, the server runs a generative AI model as a feedback generation mechanism to create specific improvement suggestions. For example, the generative AI model might suggest changing the variable name x to a more meaningful name.

[0441] The generated improvement suggestions are sent by the server to the terminal and displayed to the user using the terminal's display mechanism. The user can then modify the code based on this feedback.

[0442] Implementing this process improves the readability and maintainability of the source code, and significantly enhances development efficiency. This, in turn, improves the overall quality of the project and enables rapid software development.

[0443] As a concrete example, a user writes and saves JavaScript source code using a code editor. The server analyzes the code using ESLint, and based on the analysis results, a generated AI model produces improvement suggestions. The user receives feedback such as, "Please give variable x a more specific name," and modifies the code accordingly.

[0444] An example of a prompt message is as follows:

[0445] "Please analyze this JavaScript code and provide suggestions for improvements to enhance its readability. For example, I'd like advice on variable names and function structure."

[0446] The flow of the specific processing in Example 1 will be explained using Figure 11.

[0447] Step 1:

[0448] The user enters source code into a code editor via the terminal and presses the save or submit button. The input data is the source code of the program the user is developing. At this stage, the user writes the intended functions and logic as code. The output is the source code stored on the terminal, which will be analyzed in subsequent processing.

[0449] Step 2:

[0450] The terminal converts the input code data into a packet format, encrypts it, and securely transmits it in order to send source code to the server. The input is the source code created in step 1, and the output is the data packet sent to the server via the communication protocol. Specifically, this is a secure data transfer using the HTTPS protocol.

[0451] Step 3:

[0452] The server receives source code and uses specific software (e.g., SonarQube or ESLint) to perform structural analysis. The input is source code data sent from the terminal, and the analysis checks variable names, function names, structure, syntax errors, etc. The output is an analysis result detailing areas that need improvement.

[0453] Step 4:

[0454] The server uses the analysis results and a generative AI model as a feedback generation tool to create specific improvement suggestions. The input here is the analysis results from step 3, and the AI ​​uses a language model to create suggestions during the data processing process. The output is a feedback statement that includes specific areas for correction and suggestions.

[0455] Step 5:

[0456] The server sends a feedback message to the terminal, allowing the user to review it. The input is the generated improvement suggestions, and the output is the feedback information displayed on the user's terminal. The server packages the feedback data in JSON format or similar and sends it to the terminal.

[0457] Step 6:

[0458] The terminal presents the received feedback to the user, providing it as information for the user to modify the code. The input is feedback data sent from the server, and the output is detailed feedback information displayed on the user's screen. Specific actions include visually displaying warnings and suggestions using an IDE plugin.

[0459] (Application Example 1)

[0460] Next, we will explain Application Example 1. In the following explanation, 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."

[0461] In factories, the low readability and maintainability of control programs for automated equipment and machinery can affect operational efficiency and safety, particularly in environments where rapid program improvements are required. Furthermore, a lack of prompt and specific feedback to improve program quality can lead to decreased work efficiency and an increased risk of malfunctions.

[0462] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.

[0463] In this invention, the server includes an analysis means for analyzing an input computer program, a calculation means for generating improvement suggestions based on the analysis results obtained by the analysis means, and a presentation means for presenting the improvement suggestions to an information processing device and providing visual feedback to the user. This makes it possible to provide specific and accurate feedback for rapidly improving the quality of the program.

[0464] A "computer program" is a set of instructions used to control the operation of mechanical devices or information processing devices.

[0465] An "analysis tool" is a device that has the function of structurally analyzing an input computer program and clarifying its constituent elements.

[0466] A "computational tool" is a device that has the function of generating suggestions for improving the program based on the analysis results.

[0467] A "presentation method" is a function that visually displays improvement suggestions to the user and provides feedback in a way that is easy for the user to understand.

[0468] An "information processing device" is a device that inputs, processes, and outputs data, and is used by users to receive feedback.

[0469] The system that realizes this invention is configured to rapidly support the improvement of the quality of computer programs.

[0470] The server first analyzes the input computer program using analytical tools. Specifically, it uses Python and the ast (Abstract Syntax Tree) module to structurally analyze the program's description elements. This identifies problems related to the readability and efficiency of the description elements.

[0471] Next, the server generates specific improvement suggestions using computational methods based on the analysis results. This utilizes natural language processing (NLP) technology to create concrete and actionable modification proposals for the user. By leveraging a generative AI model, the optimal suggestions can be extracted from the analyzed data.

[0472] The user's device visually displays improvement suggestions generated via a presentation system. By using Flask for communication between the server and client, the user receives real-time feedback, enabling quick responses. The suggested corrections include refactoring redundant code and improving the identifier names of descriptive elements.

[0473] As a concrete example, if a control program for a robot arm in a factory contains redundant code, the server will suggest consolidating it into a function. This feedback allows the user to improve the readability and maintainability of the code. An example of a prompt message would be, "Which parts of this code should be refactored to improve its efficiency?"

[0474] The flow of a specific process in Application Example 1 will be explained using Figure 12.

[0475] Step 1:

[0476] The user's terminal inputs the source code. On the terminal, the program is copied or directly entered into a code editor and prepared for transmission to the server. After input, the terminal sends the source code to the analysis server. The input is a text file of a computer program.

[0477] Step 2:

[0478] The server receives the input source code and executes the analysis process. The server uses the Python `ast` module to analyze the source code and construct a syntax tree. The input is the source code text data, and the output is syntax tree data. The analysis process analyzes the structure of the descriptive elements from the syntax tree data and identifies readability and redundancy issues.

[0479] Step 3:

[0480] The server generates improvement suggestions using computational methods based on the analysis results. Specifically, it uses a generative AI model that leverages NLP technology to automatically generate corrective measures for problems identified from the analysis results. The input is the analysis result data, and the output is text containing specific improvement suggestions.

[0481] Step 4:

[0482] The server sends the generated improvement suggestions to the terminal. The terminal uses a presentation device to visually display the improvement suggestions to the user. The input is the text of the improvement suggestions, and the output is the visual display on the user interface.

[0483] Step 5:

[0484] The user modifies the source code based on the suggested improvements. The user uses a code editor to incorporate the suggestions and improve the program's quality. Finally, the modified code is saved to the terminal. The input is the suggested improvements and the source code; the output is the revised source code.

[0485] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.

[0486] This invention combines a system for analyzing source code and suggesting improvements with an emotion engine that recognizes the user's emotional state and appropriately adjusts the content and tone of the feedback. Specific embodiments are shown below.

[0487] First, the user inputs the source code to be analyzed into an input interface using their device. This interface is implemented as a code editor or a form in a web application.

[0488] Next, the server receives the source code sent from the terminal, activates the analysis tool, and begins code analysis. The analysis tool evaluates the readability of variable and function names, the consistency of the code, and identifies items that need improvement.

[0489] Subsequently, the server generates improvement suggestions based on the analysis results via a feedback mechanism. Simultaneously, the emotion engine starts operating to detect the user's emotional state. This emotion engine evaluates emotions through facial expression analysis and the tone of the input natural language message. As a result, if the user is feeling stressed, the feedback can be switched to a gentler, more encouraging tone.

[0490] For example, if a user feels stressed when receiving feedback, the emotion engine can detect this and adjust the feedback message to something more supportive, such as, "This part could be improved even further. Keep up the good work!" This allows the user to approach the improvement process with a positive attitude.

[0491] Ultimately, the server sends organized feedback to the terminal, which then presents it to the user. The user can use this feedback to modify and improve the code, enhancing its quality and consistency. This system improves the overall productivity of the development process by enabling effective code reviews while considering the user's emotional state.

[0492] The following describes the processing flow.

[0493] Step 1:

[0494] The user uses a terminal to write the source code to be analyzed into the input interface. The entered data is then viewed in the code editor.

[0495] Step 2:

[0496] The terminal sends the entered source code to the server. The server prepares to format the received code into the required format.

[0497] Step 3:

[0498] The server activates the analysis tools and begins analyzing the source code. Specifically, it evaluates variable names, function names, and code structure to identify readability and consistency issues.

[0499] Step 4:

[0500] The server receives the results of the analysis and uses the feedback mechanism to generate specific improvement suggestions. At this time, it determines which parts should be improved and how, based on the analyzed data.

[0501] Step 5:

[0502] The server activates the emotion engine and recognizes the user's emotions. The emotion engine analyzes the user's input and facial expression data to evaluate their current emotional state.

[0503] Step 6:

[0504] The server adjusts the content and tone of feedback based on the emotional state obtained from the emotion engine. For example, if the user is in an upset state, it will generate encouraging feedback in a gentle tone.

[0505] Step 7:

[0506] The server sends the generated feedback to the device. The device receives this information, organizes it for the user to understand, and displays it on the screen.

[0507] Step 8:

[0508] The user reviews the feedback provided and makes corrections to the source code. The user aims to improve their coding techniques and overall quality by using the feedback as a reference.

[0509] (Example 2)

[0510] Next, we will describe Example 2. 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."

[0511] Conventional source code analysis systems provide feedback without considering the user's emotional state, which can lead to users experiencing unnecessary resistance or stress from the feedback. Furthermore, the feedback users receive is not always optimal from a readability or functionality standpoint, and there may be room for improvement. A system is needed to improve this situation and enable users to work on program improvement more effectively and constructively.

[0512] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.

[0513] In this invention, the server includes an analysis means for analyzing an input computer program, a generation means for generating opinions based on the analysis results obtained by the analysis means, and an emotion evaluation means for detecting the user's emotional state and adjusting the content and tone of the opinions based on the emotional state. This makes it possible to provide appropriate feedback that takes into account the user's emotional state, thereby promoting effective code improvement.

[0514] "Analysis means" refers to a device or program that analyzes an input computer program and evaluates the readability and functionality of the code.

[0515] "Generation means" refers to a function or device that generates opinions regarding code improvement and optimization based on the analysis results obtained by the analysis means.

[0516] "Emotion evaluation means" refers to a device or program that has the function of detecting the user's emotional state and adjusting the content and tone of the opinion generated based on that emotional state.

[0517] "Presentation means" refers to a device or program that presents opinions generated by a generation means to the user visually or audibly.

[0518] This invention is a system for analyzing computer programs and providing feedback, which promotes more effective improvement by evaluating the user's emotional state and adjusting the tone of the feedback accordingly. First, the user inputs the computer program to be analyzed into the system using a terminal. Input is done via a text form in an application running on a web browser or through a dedicated software editor. For example, the user inputs a prompt in the form of "Please check the code of the main function."

[0519] The terminal sends the entered program to the server. The server then begins processing the received program using an analysis tool. The analysis tool utilizes a generative AI model to evaluate the code's structure, name readability, and overall functionality. Based on this analysis, the server generates suggestions for improvement using the generation tool. Specifically, this step involves reviewing variable and function names and identifying redundant code sections.

[0520] Next, the server detects the user's emotional state using emotion assessment tools. This assessment is performed by determining the tone from the text entered by the user, and optionally by using a camera for facial recognition. If the emotional state suggests stress or anxiety, the server adjusts the generated opinions to a more supportive and encouraging tone.

[0521] Ultimately, the server sends this refined feedback to the terminal, which then displays the feedback to the user. The user can then use this feedback to work on actual code improvements. This allows users to improve the quality of their code while receiving guidance that takes their emotional state into account.

[0522] The flow of the specific processing in Example 2 will be explained using Figure 13.

[0523] Step 1:

[0524] The user inputs the computer program to be analyzed using a terminal. The user enters the source code, including prompts, into an editor or web form and clicks a submit button. The entered program data is temporarily saved on the terminal.

[0525] Step 2:

[0526] The terminal sends the entered program data to the server. A data transfer protocol is used to ensure data consistency and security. The server returns a response message to the terminal confirming receipt of the program.

[0527] Step 3:

[0528] The server analyzes the received program using an analysis tool. This analysis utilizes a generative AI model to evaluate the structure, readability, and performance of the program code. Specifically, it checks for variable naming conventions, function dependencies, and detects redundant code, generating the analysis results.

[0529] Step 4:

[0530] The server generates improvement suggestions based on the analysis results. In this process, it proposes solutions to the problems identified in the analysis. For example, it may include specific improvement suggestions such as removing redundant variables or splitting functions to clarify the processing.

[0531] Step 5:

[0532] The server measures the user's emotional state through an emotion assessment tool. At this stage, it analyzes prompt texts and arbitrary facial expression data sent by the user and uses an emotion model to assess the presence of stress or anxiety.

[0533] Step 6:

[0534] Based on the user's emotional state, the server adjusts the tone of suggested improvements. If it detects that the user is stressed, it changes the suggestions to more supportive messages to reassure the user.

[0535] Step 7:

[0536] The server sends the final improvement suggestions to the terminal. The terminal receives this information and presents it visually to the user. Based on this, the user can begin working on improving the program and strive to improve the quality of the code.

[0537] (Application Example 2)

[0538] Next, we will explain application example 2. In the following explanation, 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."

[0539] In software development, detailed analysis and improvement suggestions are required to improve the quality of program code, but following these suggestions can be stressful for users. Furthermore, typical analysis systems provide monotonous feedback without considering user emotions, potentially leading to a loss of motivation. This, in turn, reduces the efficiency of the development process, posing a significant challenge.

[0540] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.

[0541] In this invention, the server includes processing means for analyzing input program code, generation means for generating advice based on evaluation results obtained by the processing means, and emotion adjustment means for identifying the user's emotional state and adjusting the content and tone of the advice. This makes it possible to provide excellent improvement suggestions that take the user's emotional state into consideration.

[0542] "Entered program code" refers to the text data of software code that the user sends to the system for analysis.

[0543] A "processing means" is a system component that has the function of analyzing the input program code and evaluating its structure and content.

[0544] "Evaluation results" refer to data generated by the processing device based on the program code it has analyzed, concerning the quality of the code and areas for improvement.

[0545] A "generation means" is a system component that has the function of generating advice and improvement suggestions for the user based on the evaluation results.

[0546] An "emotion adjustment mechanism" is a system component that has the function of identifying the user's emotional state and appropriately adjusting the content and tone of the advice and feedback generated based on that state.

[0547] "Display means" refers to a system component that has the function of presenting feedback created by the generation means and emotion adjustment means to the user in a visual or other format.

[0548] A "data processing system" is a computer system that performs the overall processing of program code analysis, evaluation, feedback generation, and the provision of user-based feedback.

[0549] This invention is a data processing system that analyzes program code entered by a user and provides improvement suggestions based on the evaluation. Furthermore, it identifies the user's emotional state and adjusts the content and tone of the feedback accordingly, thereby providing more effective development support.

[0550] The server first analyzes the received program code using a processing unit. The processing unit evaluates the program's structure and the readability of identifiers, and generates an evaluation result. Next, the generation unit uses the evaluation result to generate improvement suggestions for the user. In this process, a generation AI model is utilized to provide more refined suggestions.

[0551] Simultaneously, the server uses emotion adjustment mechanisms to identify the user's emotional state. This emotional state is extracted from the tone of the messages the user enters and from facial expression analysis via the camera. A common facial expression recognition API can be used for this analysis.

[0552] Ultimately, the generated suggestions are adjusted to suit the user's emotions through emotion adjustment mechanisms and presented to the user through display mechanisms. This system enables gentle, encouraging, and motivating feedback for the user.

[0553] For example, when an engineer inputs program code, if the analysis results suggest improvements for efficiency, feedback such as, "Improving this part will bring you closer to project success. Proceed at your own pace," could be provided. Another example of a prompt message could be, "If the system detects that the user is confused, generate a reassuring feedback message," which could be given to the AI ​​model.

[0554] The flow of a specific process in Application Example 2 will be explained using Figure 14.

[0555] Step 1:

[0556] The user inputs the program code to be analyzed using a terminal. The input code is sent from the terminal to the server. Here, the input is the program code, and the output is the data sent to the server.

[0557] Step 2:

[0558] The server analyzes the received program code using processing equipment. This analysis evaluates the code's structure and the readability of identifiers. The server takes the program code as input and outputs data related to the code's quality as the analysis result.

[0559] Step 3:

[0560] The server generates improvement suggestions based on the analysis results using a generation mechanism. This generation process utilizes a generational AI model, taking the analysis results as input and producing specific advice and suggestions as output. This specific operation helps to refine the instructions provided to the user.

[0561] Step 4:

[0562] The server identifies the user's emotional state using emotion regulation mechanisms. Here, text input from the user and image data from the camera are input into the emotion recognition system, and data indicating the emotional state is output. Specifically, an expression recognition API is used to determine the user's emotional state.

[0563] Step 5:

[0564] The server adjusts the generated advice to match the user's emotional state. This process takes the outputted emotional state data as input and outputs feedback in the most appropriate tone. The feedback is adjusted to be gentle or encouraging depending on the user's emotions.

[0565] Step 6:

[0566] The server sends the refined feedback to the terminal, which then presents it to the user. The input is the refined feedback statement, which is displayed on the user's screen as output. This allows the user to work on modifying the program code based on the feedback received.

[0567] The specific processing unit 290 transmits the result of the specific processing to the headset terminal 314. In the headset terminal 314, the control unit 46A causes the speaker 240 and display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.

[0568] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include those described above. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions shown by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.

[0569] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and specific processing may also be performed by the headset terminal 314.

[0570] [Fourth Embodiment]

[0571] Figure 7 shows an example of the configuration of the data processing system 410 according to the fourth embodiment.

[0572] As shown in Figure 7, the 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.

[0573] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).

[0574] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a controlled object 443. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and controlled object 443 are also connected to the bus 52.

[0575] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.

[0576] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).

[0577] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.

[0578] The controlled object 443 includes a display device, LEDs in the eyes, and motors that drive 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 robot 414's emotions can be expressed by controlling these motors. Furthermore, the robot 414's facial expressions can also be expressed by controlling the illumination state of the LEDs in its eyes.

[0579] Figure 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Figure 8, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.

[0580] The specific processing program 56 is an example of a "program" relating to the technology of this 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.

[0581] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.

[0582] In robot 414, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. 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 processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.

[0583] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".

[0584] This invention relates to a system for analyzing source code and suggesting improvements, and a specific embodiment thereof is shown below. This system mainly consists of an analysis means, a feedback means, and a presentation means.

[0585] First, the source code created by the user is entered into the system for analysis. At this time, the user uses a terminal to input the code into a code editor or a dedicated interface.

[0586] Next, the server executes an analysis tool to analyze the received source code. This tool scans the entire code, analyzing variable names, function names, and code structure. The analysis extracts areas that need improvement, such as variable names being too short and unclear, or functions being redundant.

[0587] Subsequently, the server generates detailed improvement suggestions using a feedback mechanism based on the results obtained by the analysis mechanism. This feedback mechanism provides specific correction proposals for the identified problems, such as changing variable names to more meaningful ones.

[0588] Furthermore, the server sends the generated feedback to the terminal and displays it to the user using a presentation tool. Specific problems and suggested improvements are presented in detail, allowing the user to modify the code based on this information.

[0589] By modifying the code based on user feedback, code readability and maintainability are improved, and development work becomes more efficient. This process enables rapid code reviews and improvements while maintaining consistency in code style, even in team development.

[0590] Thus, the system of the present invention makes a significant contribution to improving quality and efficiency in software development by quickly and accurately analyzing source code entered by the user and providing improvement suggestions. Specifically, by combining a code analysis tool with an editor plugin, seamless feedback is possible even in the everyday development environment.

[0591] The following describes the processing flow.

[0592] Step 1:

[0593] The user uses a terminal to input the source code they want to analyze into an input interface. This interface may be configured as a code editor or a web-based application.

[0594] Step 2:

[0595] The terminal sends the entered source code to the server. The server then passes this code to the analysis tool and prepares to begin the analysis process.

[0596] Step 3:

[0597] The server executes the analysis process and begins analyzing the input source code. The server examines variable names, function names, and code structure to identify areas that need improvement. At this stage, it may determine that variable names are too abstract or functions are too long.

[0598] Step 4:

[0599] Based on the analysis results obtained from the analysis tools, the server generates specific improvement suggestions using feedback tools. This process provides the user with specific suggestions such as improving variable names, simplifying code, and eliminating redundant parts.

[0600] Step 5:

[0601] The server sends the generated improvement suggestions to the terminal and prepares them for presentation to the user. Using the appropriate presentation method, the improvement suggestions are displayed in a user-friendly format.

[0602] Step 6:

[0603] The device displays improvement suggestions received from the server to the user. Through this feedback, the user can more easily understand exactly which parts need to be fixed and how.

[0604] Step 7:

[0605] The source code is modified based on the user's feedback. This improves the readability and maintainability of the code, thereby increasing overall productivity.

[0606] (Example 1)

[0607] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".

[0608] Poor readability and maintainability of source code in programming significantly reduce development efficiency. In particular, inappropriate naming conventions for variables and functions, or complex code structures, make code reviews and collaborative development difficult. A system is needed to solve this problem and support efficient software development.

[0609] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.

[0610] In this invention, the server includes a receiving means for receiving source code entered by a user via a terminal, an analysis means for analyzing the entered source code and evaluating variable names, function names, and structure, a feedback generation means for providing improvement suggestions based on the results obtained by the analysis means, and a presentation means for transmitting and presenting the generated improvement suggestions to the terminal. This makes it possible to improve the readability and maintainability of the source code and realize an efficient development process.

[0611] "Receiving means" refers to the function or device that receives source code entered by the user via a terminal.

[0612] "Analysis means" refers to functions or devices for analyzing input source code and evaluating variable names, function names, and structure.

[0613] "Feedback generation means" refers to a function or device that creates and provides improvement suggestions based on the results obtained by the analysis means.

[0614] "Presentation means" refers to a function or device for sending generated improvement suggestions to a terminal and displaying them to the user.

[0615] A "variable name" refers to a name used to identify data in a program.

[0616] A "function name" refers to a name used to identify a specific process within a program.

[0617] "Structure" refers to the arrangement and order of instructions and declarations within source code.

[0618] "Improvement suggestions" refer to specific modification proposals provided based on analysis results to improve the quality of the source code.

[0619] A "generative AI model" refers to a type of artificial intelligence technology that generates new data in response to a specified input, based on training data.

[0620] This system primarily performs source code analysis and generates improvement suggestions. Specifically, it provides functions to automate source code analysis, improvement suggestion generation, and presentation.

[0621] First, the terminal used by the user is equipped with a code editor or a dedicated interface for entering source code. The source code entered by the user is sent from the terminal to the server.

[0622] Next, the server analyzes the source code received from the terminal using specific software (e.g., SonarQube or ESLint). This analysis scans the variable names, function names, and code structure within the code to identify areas for improvement. Specifically, it identifies problems such as unclear variable names or redundant functions.

[0623] Based on the analysis results, the server runs a generative AI model as a feedback generation mechanism to create specific improvement suggestions. For example, the generative AI model might suggest changing the variable name x to a more meaningful name.

[0624] The generated improvement suggestions are sent by the server to the terminal and displayed to the user using the terminal's display mechanism. The user can then modify the code based on this feedback.

[0625] Implementing this process improves the readability and maintainability of the source code, and significantly enhances development efficiency. This, in turn, improves the overall quality of the project and enables rapid software development.

[0626] As a concrete example, a user writes and saves JavaScript source code using a code editor. The server analyzes the code using ESLint, and based on the analysis results, a generated AI model produces improvement suggestions. The user receives feedback such as, "Please give variable x a more specific name," and modifies the code accordingly.

[0627] An example of a prompt message is as follows:

[0628] "Please analyze this JavaScript code and provide suggestions for improvements to enhance its readability. For example, I'd like advice on variable names and function structure."

[0629] The flow of the specific processing in Example 1 will be explained using Figure 11.

[0630] Step 1:

[0631] The user enters source code into a code editor via the terminal and presses the save or submit button. The input data is the source code of the program the user is developing. At this stage, the user writes the intended functions and logic as code. The output is the source code stored on the terminal, which will be analyzed in subsequent processing.

[0632] Step 2:

[0633] The terminal converts the input code data into a packet format, encrypts it, and securely transmits it in order to send source code to the server. The input is the source code created in step 1, and the output is the data packet sent to the server via the communication protocol. Specifically, this is a secure data transfer using the HTTPS protocol.

[0634] Step 3:

[0635] The server receives source code and uses specific software (e.g., SonarQube or ESLint) to perform structural analysis. The input is source code data sent from the terminal, and the analysis checks variable names, function names, structure, syntax errors, etc. The output is an analysis result detailing areas that need improvement.

[0636] Step 4:

[0637] The server uses the analysis results and a generative AI model as a feedback generation tool to create specific improvement suggestions. The input here is the analysis results from step 3, and the AI ​​uses a language model to create suggestions during the data processing process. The output is a feedback statement that includes specific areas for correction and suggestions.

[0638] Step 5:

[0639] The server sends a feedback message to the terminal, allowing the user to review it. The input is the generated improvement suggestions, and the output is the feedback information displayed on the user's terminal. The server packages the feedback data in JSON format or similar and sends it to the terminal.

[0640] Step 6:

[0641] The terminal presents the received feedback to the user, providing it as information for the user to modify the code. The input is feedback data sent from the server, and the output is detailed feedback information displayed on the user's screen. Specific actions include visually displaying warnings and suggestions using an IDE plugin.

[0642] (Application Example 1)

[0643] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".

[0644] In factories, the low readability and maintainability of control programs for automated equipment and machinery can affect operational efficiency and safety, particularly in environments where rapid program improvements are required. Furthermore, a lack of prompt and specific feedback to improve program quality can lead to decreased work efficiency and an increased risk of malfunctions.

[0645] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.

[0646] In this invention, the server includes an analysis means for analyzing an input computer program, a calculation means for generating improvement suggestions based on the analysis results obtained by the analysis means, and a presentation means for presenting the improvement suggestions to an information processing device and providing visual feedback to the user. This makes it possible to provide specific and accurate feedback for rapidly improving the quality of the program.

[0647] A "computer program" is a set of instructions used to control the operation of mechanical devices or information processing devices.

[0648] An "analysis tool" is a device that has the function of structurally analyzing an input computer program and clarifying its constituent elements.

[0649] A "computational tool" is a device that has the function of generating suggestions for improving the program based on the analysis results.

[0650] A "presentation method" is a function that visually displays improvement suggestions to the user and provides feedback in a way that is easy for the user to understand.

[0651] An "information processing device" is a device that inputs, processes, and outputs data, and is used by users to receive feedback.

[0652] The system that realizes this invention is configured to rapidly support the improvement of the quality of computer programs.

[0653] The server first analyzes the input computer program using analytical tools. Specifically, it uses Python and the ast (Abstract Syntax Tree) module to structurally analyze the program's description elements. This identifies problems related to the readability and efficiency of the description elements.

[0654] Next, the server generates specific improvement suggestions using computational methods based on the analysis results. This utilizes natural language processing (NLP) technology to create concrete and actionable modification proposals for the user. By leveraging a generative AI model, the optimal suggestions can be extracted from the analyzed data.

[0655] The user's device visually displays improvement suggestions generated via a presentation system. By using Flask for communication between the server and client, the user receives real-time feedback, enabling quick responses. The suggested corrections include refactoring redundant code and improving the identifier names of descriptive elements.

[0656] As a concrete example, if a control program for a robot arm in a factory contains redundant code, the server will suggest consolidating it into a function. This feedback allows the user to improve the readability and maintainability of the code. An example of a prompt message would be, "Which parts of this code should be refactored to improve its efficiency?"

[0657] The flow of a specific process in Application Example 1 will be explained using Figure 12.

[0658] Step 1:

[0659] The user's terminal inputs the source code. On the terminal, the program is copied or directly entered into a code editor and prepared for transmission to the server. After input, the terminal sends the source code to the analysis server. The input is a text file of a computer program.

[0660] Step 2:

[0661] The server receives the input source code and executes the analysis process. The server uses the Python `ast` module to analyze the source code and construct a syntax tree. The input is the source code text data, and the output is syntax tree data. The analysis process analyzes the structure of the descriptive elements from the syntax tree data and identifies readability and redundancy issues.

[0662] Step 3:

[0663] The server generates improvement suggestions using computational methods based on the analysis results. Specifically, it uses a generative AI model that leverages NLP technology to automatically generate corrective measures for problems identified from the analysis results. The input is the analysis result data, and the output is text containing specific improvement suggestions.

[0664] Step 4:

[0665] The server sends the generated improvement suggestions to the terminal. The terminal uses a presentation device to visually display the improvement suggestions to the user. The input is the text of the improvement suggestions, and the output is the visual display on the user interface.

[0666] Step 5:

[0667] The user modifies the source code based on the suggested improvements. The user uses a code editor to incorporate the suggestions and improve the program's quality. Finally, the modified code is saved to the terminal. The input is the suggested improvements and the source code; the output is the revised source code.

[0668] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.

[0669] This invention combines a system for analyzing source code and suggesting improvements with an emotion engine that recognizes the user's emotional state and appropriately adjusts the content and tone of the feedback. Specific embodiments are shown below.

[0670] First, the user inputs the source code to be analyzed into an input interface using their device. This interface is implemented as a code editor or a form in a web application.

[0671] Next, the server receives the source code sent from the terminal, activates the analysis tool, and begins code analysis. The analysis tool evaluates the readability of variable and function names, the consistency of the code, and identifies items that need improvement.

[0672] Subsequently, the server generates improvement suggestions based on the analysis results via a feedback mechanism. Simultaneously, the emotion engine starts operating to detect the user's emotional state. This emotion engine evaluates emotions through facial expression analysis and the tone of the input natural language message. As a result, if the user is feeling stressed, the feedback can be switched to a gentler, more encouraging tone.

[0673] For example, if a user feels stressed when receiving feedback, the emotion engine can detect this and adjust the feedback message to something more supportive, such as, "This part could be improved even further. Keep up the good work!" This allows the user to approach the improvement process with a positive attitude.

[0674] Ultimately, the server sends organized feedback to the terminal, which then presents it to the user. The user can use this feedback to modify and improve the code, enhancing its quality and consistency. This system improves the overall productivity of the development process by enabling effective code reviews while considering the user's emotional state.

[0675] The following describes the processing flow.

[0676] Step 1:

[0677] The user uses a terminal to write the source code to be analyzed into the input interface. The entered data is then viewed in the code editor.

[0678] Step 2:

[0679] The terminal sends the entered source code to the server. The server prepares to format the received code into the required format.

[0680] Step 3:

[0681] The server activates the analysis tools and begins analyzing the source code. Specifically, it evaluates variable names, function names, and code structure to identify readability and consistency issues.

[0682] Step 4:

[0683] The server receives the results of the analysis and uses the feedback mechanism to generate specific improvement suggestions. At this time, it determines which parts should be improved and how, based on the analyzed data.

[0684] Step 5:

[0685] The server activates the emotion engine and recognizes the user's emotions. The emotion engine analyzes the user's input and facial expression data to evaluate their current emotional state.

[0686] Step 6:

[0687] The server adjusts the content and tone of feedback based on the emotional state obtained from the emotion engine. For example, if the user is in an upset state, it will generate encouraging feedback in a gentle tone.

[0688] Step 7:

[0689] The server sends the generated feedback to the device. The device receives this information, organizes it for the user to understand, and displays it on the screen.

[0690] Step 8:

[0691] The user reviews the feedback provided and makes corrections to the source code. The user aims to improve their coding techniques and overall quality by using the feedback as a reference.

[0692] (Example 2)

[0693] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".

[0694] Conventional source code analysis systems provide feedback without considering the user's emotional state, which can lead to users experiencing unnecessary resistance or stress from the feedback. Furthermore, the feedback users receive is not always optimal from a readability or functionality standpoint, and there may be room for improvement. A system is needed to improve this situation and enable users to work on program improvement more effectively and constructively.

[0695] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.

[0696] In this invention, the server includes an analysis means for analyzing an input computer program, a generation means for generating opinions based on the analysis results obtained by the analysis means, and an emotion evaluation means for detecting the user's emotional state and adjusting the content and tone of the opinions based on the emotional state. This makes it possible to provide appropriate feedback that takes into account the user's emotional state, thereby promoting effective code improvement.

[0697] "Analysis means" refers to a device or program that analyzes an input computer program and evaluates the readability and functionality of the code.

[0698] "Generation means" refers to a function or device that generates opinions regarding code improvement and optimization based on the analysis results obtained by the analysis means.

[0699] "Emotion evaluation means" refers to a device or program that has the function of detecting the user's emotional state and adjusting the content and tone of the opinion generated based on that emotional state.

[0700] "Presentation means" refers to a device or program that presents opinions generated by a generation means to the user visually or audibly.

[0701] This invention is a system for analyzing computer programs and providing feedback, which promotes more effective improvement by evaluating the user's emotional state and adjusting the tone of the feedback accordingly. First, the user inputs the computer program to be analyzed into the system using a terminal. Input is done via a text form in an application running on a web browser or through a dedicated software editor. For example, the user inputs a prompt in the form of "Please check the code of the main function."

[0702] The terminal sends the entered program to the server. The server then begins processing the received program using an analysis tool. The analysis tool utilizes a generative AI model to evaluate the code's structure, name readability, and overall functionality. Based on this analysis, the server generates suggestions for improvement using the generation tool. Specifically, this step involves reviewing variable and function names and identifying redundant code sections.

[0703] Next, the server detects the user's emotional state using emotion assessment tools. This assessment is performed by determining the tone from the text entered by the user, and optionally by using a camera for facial recognition. If the emotional state suggests stress or anxiety, the server adjusts the generated opinions to a more supportive and encouraging tone.

[0704] Ultimately, the server sends this refined feedback to the terminal, which then displays the feedback to the user. The user can then use this feedback to work on actual code improvements. This allows users to improve the quality of their code while receiving guidance that takes their emotional state into account.

[0705] The flow of the specific processing in Example 2 will be explained using Figure 13.

[0706] Step 1:

[0707] The user inputs the computer program to be analyzed using a terminal. The user enters the source code, including prompts, into an editor or web form and clicks a submit button. The entered program data is temporarily saved on the terminal.

[0708] Step 2:

[0709] The terminal sends the entered program data to the server. A data transfer protocol is used to ensure data consistency and security. The server returns a response message to the terminal confirming receipt of the program.

[0710] Step 3:

[0711] The server analyzes the received program using an analysis tool. This analysis utilizes a generative AI model to evaluate the structure, readability, and performance of the program code. Specifically, it checks for variable naming conventions, function dependencies, and detects redundant code, generating the analysis results.

[0712] Step 4:

[0713] The server generates improvement suggestions based on the analysis results. In this process, it proposes solutions to the problems identified in the analysis. For example, it may include specific improvement suggestions such as removing redundant variables or splitting functions to clarify the processing.

[0714] Step 5:

[0715] The server measures the user's emotional state through an emotion assessment tool. At this stage, it analyzes prompt texts and arbitrary facial expression data sent by the user and uses an emotion model to assess the presence of stress or anxiety.

[0716] Step 6:

[0717] Based on the user's emotional state, the server adjusts the tone of suggested improvements. If it detects that the user is stressed, it changes the suggestions to more supportive messages to reassure the user.

[0718] Step 7:

[0719] The server sends the final improvement suggestions to the terminal. The terminal receives this information and presents it visually to the user. Based on this, the user can begin working on improving the program and strive to improve the quality of the code.

[0720] (Application Example 2)

[0721] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".

[0722] In software development, detailed analysis and improvement suggestions are required to improve the quality of program code, but following these suggestions can be stressful for users. Furthermore, typical analysis systems provide monotonous feedback without considering user emotions, potentially leading to a loss of motivation. This, in turn, reduces the efficiency of the development process, posing a significant challenge.

[0723] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.

[0724] In this invention, the server includes processing means for analyzing input program code, generation means for generating advice based on evaluation results obtained by the processing means, and emotion adjustment means for identifying the user's emotional state and adjusting the content and tone of the advice. This makes it possible to provide excellent improvement suggestions that take the user's emotional state into consideration.

[0725] "Entered program code" refers to the text data of software code that the user sends to the system for analysis.

[0726] A "processing means" is a system component that has the function of analyzing the input program code and evaluating its structure and content.

[0727] "Evaluation results" refer to data generated by the processing device based on the program code it has analyzed, concerning the quality of the code and areas for improvement.

[0728] A "generation means" is a system component that has the function of generating advice and improvement suggestions for the user based on the evaluation results.

[0729] An "emotion adjustment mechanism" is a system component that has the function of identifying the user's emotional state and appropriately adjusting the content and tone of the advice and feedback generated based on that state.

[0730] "Display means" refers to a system component that has the function of presenting feedback created by the generation means and emotion adjustment means to the user in a visual or other format.

[0731] A "data processing system" is a computer system that performs the overall processing of program code analysis, evaluation, feedback generation, and the provision of user-based feedback.

[0732] This invention is a data processing system that analyzes program code entered by a user and provides improvement suggestions based on the evaluation. Furthermore, it identifies the user's emotional state and adjusts the content and tone of the feedback accordingly, thereby providing more effective development support.

[0733] The server first analyzes the received program code using a processing unit. The processing unit evaluates the program's structure and the readability of identifiers, and generates an evaluation result. Next, the generation unit uses the evaluation result to generate improvement suggestions for the user. In this process, a generation AI model is utilized to provide more refined suggestions.

[0734] Simultaneously, the server uses emotion adjustment mechanisms to identify the user's emotional state. This emotional state is extracted from the tone of the messages the user enters and from facial expression analysis via the camera. A common facial expression recognition API can be used for this analysis.

[0735] Ultimately, the generated suggestions are adjusted to suit the user's emotions through emotion adjustment mechanisms and presented to the user through display mechanisms. This system enables gentle, encouraging, and motivating feedback for the user.

[0736] For example, when an engineer inputs program code, if the analysis results suggest improvements for efficiency, feedback such as, "Improving this part will bring you closer to project success. Proceed at your own pace," could be provided. Another example of a prompt message could be, "If the system detects that the user is confused, generate a reassuring feedback message," which could be given to the AI ​​model.

[0737] The flow of a specific process in Application Example 2 will be explained using Figure 14.

[0738] Step 1:

[0739] The user inputs the program code to be analyzed using a terminal. The input code is sent from the terminal to the server. Here, the input is the program code, and the output is the data sent to the server.

[0740] Step 2:

[0741] The server analyzes the received program code using processing equipment. This analysis evaluates the code's structure and the readability of identifiers. The server takes the program code as input and outputs data related to the code's quality as the analysis result.

[0742] Step 3:

[0743] The server generates improvement suggestions based on the analysis results using a generation mechanism. This generation process utilizes a generational AI model, taking the analysis results as input and producing specific advice and suggestions as output. This specific operation helps to refine the instructions provided to the user.

[0744] Step 4:

[0745] The server identifies the user's emotional state using emotion regulation mechanisms. Here, text input from the user and image data from the camera are input into the emotion recognition system, and data indicating the emotional state is output. Specifically, an expression recognition API is used to determine the user's emotional state.

[0746] Step 5:

[0747] The server adjusts the generated advice to match the user's emotional state. This process takes the outputted emotional state data as input and outputs feedback in the most appropriate tone. The feedback is adjusted to be gentle or encouraging depending on the user's emotions.

[0748] Step 6:

[0749] The server sends the refined feedback to the terminal, which then presents it to the user. The input is the refined feedback statement, which is displayed on the user's screen as output. This allows the user to work on modifying the program code based on the feedback received.

[0750] 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 controlled object 443 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.

[0751] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include those described above. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions shown by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.

[0752] 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 this disclosure is not limited thereto, and the specific processing may also be performed by the robot 414.

[0753] Furthermore, the emotion identification model 59, acting 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 a specific mapping, which is an emotion map (see Figure 9). Similarly, the emotion identification model 59 may also determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.

[0754] Figure 9 shows an emotion map 400 in which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. The closer to the center of the concentric circles, the more primitive the emotions are located. Further out of the concentric circles, emotions representing states and actions arising from mental states are located. Emotion is a concept that includes feelings and mental states. On the left side of the concentric circles, emotions that are generally generated from reactions occurring in the brain are located. On the right side of the concentric circles, emotions that are generally induced by situational judgment are located. Above and below the concentric circles, emotions that are generally generated from reactions occurring in the brain and induced by situational judgment are located. In addition, the emotion of "pleasure" is located on the upper side of the concentric circles, and the emotion of "displeasure" is located on the lower side. Thus, in the emotion map 400, multiple emotions are mapped based on the structure in which emotions arise, and emotions that are likely to occur simultaneously are mapped close together.

[0755] These emotions are distributed at the 3 o'clock position on the Emotion Map 400, and usually fluctuate between feelings of security and anxiety. In the right half of the Emotion Map 400, situational awareness takes precedence over internal feelings, resulting in a calm impression.

[0756] The inside of the Emotion Map 400 represents inner thoughts, while the outside represents actions. Therefore, the further you go from the outside of the Emotion Map 400, the more visible (expressed in actions) your emotions become.

[0757] Here, human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. Similarly, in robots, cars, motorcycles, etc., emotions can be created based on various balances, such as posture and battery level. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. The emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on a system for analyzing brain physiological signals of speech emotion recognition and emotion, Tokushima University, doctoral dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map contains emotions belonging to a region called "response," where sensation is dominant. The right half of the emotion map contains emotions belonging to a region called "situation," where situational awareness is dominant.

[0758] The emotion map defines two emotions that promote learning. One is the emotion around the middle of the negative "repentance" and "reflection" on the situation side. In other words, it is 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 the emotion around the positive "desire" on the reaction side. In other words, it is when the robot has positive feelings such as "I want more" or "I want to know more."

[0759] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values ​​representing each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple training data sets, which are combinations of user input and emotion values ​​representing each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions located close together have similar values, as shown in the emotion map 900 in Figure 10. Figure 10 shows an example where multiple emotions such as "reassured," "calm," and "confident" have similar emotion values.

[0760] The above description primarily focuses on the functions of the data processing device 12 in relation to this disclosure. However, the system related to this disclosure is not necessarily implemented on a server. The system related to this disclosure may be implemented as a general information processing system. This disclosure may be implemented, for example, as a software program that runs on a personal computer or as an application that runs on a smartphone. The method related to this disclosure may be provided to users in SaaS (Software as a Service) format.

[0761] In the above embodiment, an example was given in which a specific process is performed by a single computer 22. However, the technology of this disclosure is not limited thereto, and a distributed processing of the specific process may be performed by multiple computers, including computer 22. For example, a data generation model 58 may be provided in an external device of the data processing device 12, and the external device may generate data according to the input data.

[0762] In the above embodiment, an example was given in which the specific processing program 56 is stored in the storage 32, but the technology of this disclosure is not limited thereto. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-temporary storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-temporary storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes specific processing according to the specific processing program 56.

[0763] 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.

[0764] Furthermore, it is not necessary to store the entirety 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 the entirety of the specific processing program 56 in the storage 32; it is acceptable to store only a portion of the specific processing program 56.

[0765] The following types of processors can be used as hardware resources to perform specific processing. Examples of processors include a CPU, a general-purpose processor that functions as a hardware resource to perform specific processing by executing software, i.e., a program. Other examples of processors include dedicated electrical circuits, such as FPGAs (Field-Programmable Gate Arrays), PLDs (Programmable Logic Devices), or ASICs (Application Specific Integrated Circuits), which have circuit configurations specifically designed to perform specific processing. All of these processors have built-in or connected memory, and all of them perform specific processing by using memory.

[0766] The hardware resource that performs a specific process may consist of one of these various processors, or it may consist of 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). Alternatively, the hardware resource that performs a specific process may consist of a single processor.

[0767] Examples of configurations using a single processor include, firstly, a configuration in which one or more CPUs and software are combined to form a single processor, and this processor functions as a hardware resource that performs a specific process. Secondly, there is a configuration using a processor that realizes the functions of the entire system, including multiple hardware resources that perform a specific process, on a single IC chip, as exemplified by SoCs (System-on-a-chip). In this way, a specific process is realized using one or more of the above types of processors as hardware resources.

[0768] Furthermore, the hardware structure of these various processors can more specifically utilize electrical circuits that combine circuit elements such as semiconductor devices. Also, the specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps can be deleted, new steps added, or the processing order rearranged, as long as it does not deviate from the main purpose.

[0769] The descriptions and illustrations presented above are detailed explanations of the technical aspects of this disclosure and are merely examples of the technical aspects. For example, the above descriptions of the structure, function, operation, and effect are examples of the structure, function, operation, and effect of the technical aspects of this disclosure. Therefore, it goes without saying that you may delete unnecessary parts, add new elements, or replace elements in the descriptions and illustrations presented above, as long as you do not deviate from the essence of the technical aspects of this disclosure. Furthermore, in order to avoid confusion and facilitate understanding of the technical aspects of this disclosure, explanations of common technical knowledge and the like that do not require special explanation to enable the implementation of the technical aspects of this disclosure have been omitted from the descriptions and illustrations presented above.

[0770] All documents, patent applications, and technical standards described herein are incorporated by reference to the same extent as if each individual document, patent application, and technical standard were specifically and individually noted to be incorporated by reference.

[0771] The following is further disclosed regarding the embodiments described above.

[0772] (Claim 1)

[0773] An analysis means for analyzing the input source code,

[0774] A feedback means that generates feedback based on the analysis results obtained by the analysis means,

[0775] A presentation means for presenting the feedback generated by the aforementioned feedback means to the user,

[0776] A system that includes this.

[0777] (Claim 2)

[0778] The system according to claim 1, wherein the analysis means evaluates the readability of variable names and function names.

[0779] (Claim 3)

[0780] The system according to claim 1, wherein the feedback means provides improvement suggestions based on the analysis results.

[0781] "Example 1"

[0782] (Claim 1)

[0783] A receiving means for receiving source code entered by a user via a terminal,

[0784] An analysis means that analyzes the input source code and evaluates variable names, function names, and structure,

[0785] A feedback generation means that provides improvement suggestions based on the results obtained by the analysis means,

[0786] A presentation method that sends and displays the generated improvement suggestions to the terminal,

[0787] A system that includes this.

[0788] (Claim 2)

[0789] The system according to claim 1, wherein the analysis means evaluates elements related to the readability and maintainability of the code.

[0790] (Claim 3)

[0791] The system according to claim 1, wherein the feedback generation means generates specific improvement suggestions based on the analysis results by utilizing a generation AI model.

[0792] "Application Example 1"

[0793] (Claim 1)

[0794] An analysis means for analyzing the input computer program,

[0795] A calculation means for generating improvement suggestions based on the analysis results obtained by the aforementioned analysis means,

[0796] A presentation means that presents the aforementioned improvement proposal to an information processing device and provides visual feedback to the user,

[0797] A system that includes this.

[0798] (Claim 2)

[0799] The system according to claim 1, wherein the analysis means evaluates the readability of the identifier names and operating procedures of the descriptive elements.

[0800] (Claim 3)

[0801] The system according to claim 1, wherein the calculation means provides specific modification proposals based on the analysis results, thereby improving the efficiency of description.

[0802] "Example 2 of combining an emotion engine"

[0803] (Claim 1)

[0804] An analysis means for analyzing an input computer program,

[0805] A generation means that generates opinions based on the analysis results obtained by the analysis means,

[0806] An emotion evaluation means that detects the user's emotional state and adjusts the content and tone of the opinion based on the said emotional state,

[0807] A presentation means for presenting the opinions generated by the generation means to the user,

[0808] A system that includes this.

[0809] (Claim 2)

[0810] The system according to claim 1, wherein the analysis means evaluates the readability of defined names and functions.

[0811] (Claim 3)

[0812] The system according to claim 1, wherein the generation means provides suggestions for improvement based on the analysis results.

[0813] "Application example 2 when combining with an emotional engine"

[0814] (Claim 1)

[0815] A processing means for analyzing the input program code,

[0816] A generation means for generating advice based on the evaluation results obtained by the processing means,

[0817] An emotion adjustment mechanism that identifies the user's emotional state and adjusts the content and tone of advice accordingly.

[0818] A display means for presenting advice generated by the generation means and the emotion adjustment means to the user,

[0819] A data processing system that includes this.

[0820] (Claim 2)

[0821] The data processing system according to claim 1, wherein the processing means evaluates the readability of identifier names and procedure names.

[0822] (Claim 3)

[0823] The data processing system according to claim 1, wherein the generation means provides improvement suggestions based on evaluation results and presents them in a tone adjusted by the emotion adjustment means. [Explanation of symbols]

[0824] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Devices 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robots< / url:> < / url:> < / url:> < / url:>

Claims

1. An analysis means for analyzing the input computer program, A calculation means for generating improvement suggestions based on the analysis results obtained by the aforementioned analysis means, A presentation means that presents the aforementioned improvement proposal to an information processing device and provides visual feedback to the user, A system that includes this.

2. The system according to claim 1, wherein the analysis means evaluates the readability of the identifier names and operating procedures of the descriptive elements.

3. The system according to claim 1, wherein the calculation means provides specific modification proposals based on the analysis results, thereby improving the efficiency of description.