system
A computer system automates code analysis to identify syntax errors and generate project-specific improvement suggestions, improving code quality and productivity by reducing manual review time and ensuring data security.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- SOFTBANK GROUP CORP
- Filing Date
- 2024-12-09
- Publication Date
- 2026-06-19
AI Technical Summary
Manual code review in software development is time-consuming, resource-intensive, and lacks consistency due to reviewer expertise, while local data processing is necessary for privacy and security, requiring a system for automated code analysis and objective improvement suggestions.
A computer system that analyzes program code to identify syntax errors and inefficiencies, generates project-specific improvement suggestions, and provides feedback through an intuitive interface, ensuring consistency and efficiency in code reviews.
This system reduces the burden of manual code reviews, enhances code quality and productivity by providing objective and contextually relevant feedback, while ensuring data security and privacy through local processing.
Smart Images

Figure 2026100535000001_ABST
Abstract
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 character of the chatbot, 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 recent years, in software development, improvement in code quality and productivity has been demanded. However, manual code review requires a lot of time and resources, and lacks consistency because it depends on the expertise and experience of reviewers. Therefore, there is a need for a system that can automatically perform code analysis and provide objective and consistent improvement proposals. Also, in many situations, local processing of data is desirable from the viewpoints of privacy and security, and it is necessary to provide a solution suitable for such an environment.
Means for Solving the Problems
[0005] This invention aims to improve the efficiency of code reviews by providing a means for a computer to analyze program code and identify syntax errors. Furthermore, it provides objective feedback by automatically generating improvement suggestions for the identified syntax errors and inefficiencies. This system can generate more contextual improvement suggestions by processing that takes into account the characteristics of the project. In addition, the generated suggestions can be presented to the user, and the improvement suggestions can be easily implemented through the interface. This makes it possible to improve productivity while maintaining consistency in team development.
[0006] A "computer" is an electronic device capable of processing and calculating data, and has the ability to run various software programs to automate specific tasks.
[0007] "Program code" refers to a set of instructions or commands designed to be executed by a computer, and is usually written in a programming language.
[0008] "Analysis" refers to the process of breaking down complex information and examining each element in detail, thereby revealing problems and characteristics.
[0009] A "syntax error" refers to a grammatical error in program code that prevents a computer from executing it correctly.
[0010] A "proposal" refers to the act of presenting solutions or improvement plans for a specific purpose or problem.
[0011] "Project characteristics" refer to the distinctive elements and conditions related to the design, objectives, constraints, environment, etc., of a particular project.
[0012] A "user interface" is a means of communicating information between a computer system and its user, and includes operable screens and input devices.
[0013] "Feedback" refers to evaluations and opinions regarding the results of actions or tasks performed, and is used as information to determine improvement measures and next actions. [Brief explanation of the drawing]
[0014] [Figure 1] This is a conceptual diagram showing an example of the configuration of a data processing system according to the first embodiment. [Figure 2] This is a conceptual diagram showing an example of the essential functions of a data processing device and a smart device according to the first embodiment. [Figure 3] This is a conceptual diagram showing an example of the configuration of a data processing system according to the second embodiment. [Figure 4] This 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] This is a conceptual diagram showing an example of the configuration of a data processing system according to the third embodiment. [Figure 6] This 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] This is a conceptual diagram showing an example of the configuration of a data processing system according to the fourth embodiment. [Figure 8] This 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] This shows an emotion map where multiple emotions are mapped. [Figure 10] This shows an emotion map where multiple emotions are mapped. [Figure 11] This 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 combined with an emotion engine. [Figure 14] It is a sequence diagram showing the processing flow of the data processing system in Application Example 2 when combined with an emotion engine.
Mode for Carrying Out the Invention
[0015] Hereinafter, an example of an embodiment of a system according to the technology of the present disclosure will be described with reference to the accompanying drawings.
[0016] First, the terms used in the following description will be explained.
[0017] In the following embodiments, the numbered processor (hereinafter simply referred to as "processor") may be a single arithmetic unit or a combination of multiple arithmetic units. Also, the processor may be a single 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.
[0018] 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.
[0019] In the following embodiments, the signed storage is one or more non-volatile storage devices that store various programs and various parameters. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), or magnetic tapes.
[0020] 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).
[0021] 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."
[0022] [First Embodiment]
[0023] Figure 1 shows an example of the configuration of the data processing system 10 according to the first embodiment.
[0024] 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.
[0025] 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).
[0026] 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.
[0027] 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.
[0028] 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.
[0029] 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.
[0030] Figure 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] 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".
[0035] This invention involves a computer system that automatically analyzes program code, identifies syntax errors, and generates suggestions for improvement. This improves code quality and increases development efficiency.
[0036] When the server receives program code, it first runs a module to analyze it. This analysis is performed by CoderAgent, which detects syntax errors and inefficiencies. CoderAgent supports a variety of programming languages and evaluates the code according to a specified coding style. Next, ReviewerAgent reviews CoderAgent's output, generating detailed feedback on improvements, particularly considering the project's characteristics. This feedback is then sent to the terminal by the server.
[0037] The terminal is responsible for displaying feedback received from the server in an easy-to-understand format for the user. To make it easy for users to implement improvement suggestions, suggestions include specific examples and means for correction. For example, if adding a type annotation to a function is suggested, specific type examples and the benefits will be provided.
[0038] Users can use the feedback they receive to modify the program code. For example, if the code is written in Python, the ReviewerAgent might suggest "adding type annotations to each function and removing unused variables." Based on these suggestions, the user can improve the code to enhance its readability and maintainability.
[0039] This system allows development teams to streamline and improve the consistency of their code review process. Furthermore, because each agent operates locally, data security is ensured, and privacy is effectively protected.
[0040] The following describes the processing flow.
[0041] Step 1:
[0042] The user prepares to input or upload the program code they want to analyze via the terminal's interface.
[0043] Step 2:
[0044] The terminal receives program code provided by the user and sends it to the server, including language information related to the code.
[0045] Step 3:
[0046] The server receives the program code sent from the terminal, launches CoderAgent, and begins the initial analysis.
[0047] Step 4:
[0048] The CoderAgent on the server analyzes the program code and detects syntax errors and inefficiencies. This result is then saved as data.
[0049] Step 5:
[0050] The server passes the analysis results generated by CoderAgent to ReviewerAgent. ReviewerAgent considers the code context and project characteristics to generate detailed improvement suggestions.
[0051] Step 6:
[0052] The server sends the feedback generated by the ReviewerAgent to the device. The feedback is provided in a format that is easy for the user to understand.
[0053] Step 7:
[0054] The device displays feedback received from the server to the user. This feedback includes specific improvement suggestions and the reasons behind them.
[0055] Step 8:
[0056] The user modifies the code based on the feedback displayed on their device and sends it back to the server for analysis if necessary.
[0057] (Example 1)
[0058] 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."
[0059] In traditional software development processes, manually identifying and correcting grammatical errors and inefficiencies in program code required considerable time and effort. Furthermore, the lack of suggestions for improvements that took project-specific characteristics into account made it difficult to optimize code and maintain consistent quality.
[0060] 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.
[0061] In this invention, the server includes means for an information processing device to analyze software code and identify grammatical errors, means for generating suggestions to improve the parts of the software code where grammatical errors have been identified, and means for automating the analysis and suggestions using a generation AI model, with its interface providing prompts to the user. This enables efficient analysis of software code, automation of improvement suggestions, and presentation of improvement measures that take project characteristics into account.
[0062] An "information processing device" is a device that receives data as input and processes it, including a central processing unit and peripheral equipment.
[0063] "Software code" is a set of instructions and declarations used to create computer programs, and is text written in a specific programming language.
[0064] A "grammar error" is a part of program code that violates the syntax or rules used within the program, and is a defect that prevents the program from functioning correctly.
[0065] An "inefficient part" is a section of program code that has excessively high computational complexity or resource usage, causing a decrease in performance.
[0066] "Project characteristics" refer to the specific features of a particular project to which a program belongs, such as its objectives, requirements, development environment, and coding style.
[0067] A "generative AI model" is a model based on artificial intelligence algorithms, and it is a mechanism for performing data analysis, prediction, and inference.
[0068] This invention provides an information processing system for automating the analysis and improvement of software code. Specifically, it involves the coordinated operation of three elements: a server, a terminal, and a user.
[0069] The server first receives software code from the user and analyzes it using an information processing device. The analysis utilizes analysis modules that support a variety of programming languages to identify grammatical errors and inefficiencies. The server then uses a generative AI model to generate specific suggestions for improving the code's efficiency. These suggestions take into account the project characteristics to which the software code belongs, aiming to improve code consistency and performance.
[0070] The terminal receives suggestions sent from the server. The terminal presents the suggestions to the user through an intuitive interface. This interface uses color and font highlighting to help the user focus on the most important information.
[0071] Users modify software code based on feedback received via their devices. For example, if they are suggested to add type annotations to a program, they will incorporate them into the executable code while referring to explanations of the specific benefits. Through this process, users can improve the readability and maintainability of the program.
[0072] By implementing this invention, development teams can significantly reduce the burden of traditional manual code reviews, enabling efficient and high-quality software development. Furthermore, it is recommended to use "Point out syntax errors and style violations in this Python code and suggest improvements" as an example prompt. This allows the generative AI model to function correctly and provide optimal improvements.
[0073] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0074] Step 1:
[0075] The server receives software code from the user. The server takes software code as input, stores the data in storage, and verifies its integrity. Specifically, it calculates the hash value of the data and verifies that it matches the value at the time of transmission.
[0076] Step 2:
[0077] The server launches an analysis module to analyze the software code. This module breaks down the software code into tokens and detects grammatical errors and inefficiencies. The input is saved software code, and the output is an error report and a list of optimization points. Specifically, the analysis is performed according to the syntax rules of various programming languages.
[0078] Step 3:
[0079] The server generates improvement suggestions using an AI model. In this process, the AI receives the analysis results as input and outputs improvement suggestions tailored to the project's characteristics. Specifically, it generates suggestions for correcting syntax errors and unifying coding styles.
[0080] Step 4:
[0081] The server sends improvement suggestions to the terminal. The input is the generated improvement suggestions, and the output is the transmission of data to the terminal. Specifically, the suggestions are converted into a format that is easy for the user to understand and sent via the communication line.
[0082] Step 5:
[0083] The terminal receives suggestions from the server and displays them to the user. Input is the transmitted data, and output is the visually displayed feedback. Specifically, color coding and font emphasis are used to allow the user to instantly grasp important information.
[0084] Step 6:
[0085] The software code is modified based on suggestions received by the user via their device. The input is feedback based on improvement suggestions, and the output is the modified software code. Specifically, the user implements the suggestions to improve the quality and performance of the code.
[0086] (Application Example 1)
[0087] 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."
[0088] In modern data centers, detecting and rapidly correcting syntax errors in program code is crucial. However, traditional systems lack real-time feedback, and immediate correction using mobile devices is difficult. This can hinder service stability and efficient operation.
[0089] 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.
[0090] In this invention, the server includes means for a computer to analyze program code and identify syntax errors, means for generating suggestions to improve the portion of the program code in which syntax errors have been identified, means for facilitating improvements to the program code based on the generated suggestions, and means for providing feedback in a mobile information processing device. This enables data center administrators to make code corrections in real time, even while on the move.
[0091] A "computer" is an electronic device used for information processing; it is a device that analyzes, calculates, and records data according to a program.
[0092] "Program code" is a set of instructions that a computer interprets and executes, and is the source code written to perform a specific task.
[0093] A "syntax error" refers to a part of program code that violates the grammatical rules of the language, resulting in a state where the program cannot be processed correctly.
[0094] A "means for generating suggestions" is a processing device that has the function of automatically creating specific methods and improvements to correct syntax errors in program code.
[0095] A "means to facilitate improvement" is a device that provides support functions to efficiently proceed with modifying program code based on the generated suggestions.
[0096] A "mobile information processing device" is a portable information device designed to allow users to process data and communicate regardless of their location.
[0097] Upon receiving program code, the server immediately analyzes it. This analysis utilizes a dedicated software module called CoderAgent, which detects syntax errors in various programming languages and identifies inefficiencies and areas for improvement. This agent also adheres to project-specific coding styles, enabling comprehensive analysis.
[0098] Next, ReviewerAgent takes over and generates improvement suggestions based on the information provided by CoderAgent. This agent considers the project's characteristics and requirements and details the optimal improvement measures. This allows users to efficiently and effectively improve the quality of their code.
[0099] The generated improvement suggestions are sent to a mobile information processing device (terminal), allowing users to receive real-time feedback wherever they are. The suggested improvements clearly indicate specific problems and their solutions, enabling users to quickly implement code modifications.
[0100] The hardware used will consist of a standard server computer and a mobile device. The software will primarily be written in Python, and communication will use the HTTP protocol.
[0101] One concrete example is when a data center administrator performs code reviews on a mobile device at night. This system allows administrators to quickly identify and address code errors, thereby improving the stability and resource efficiency of the data center.
[0102] An example of an input prompt for the generating AI model would be: "A new code change has been detected in the data center system. Please analyze for syntax errors and generate improvement suggestions."
[0103] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0104] Step 1:
[0105] The server receives program code. At this time, the code submitted by the user from the terminal is provided as input. The server saves this code to temporary storage and starts the analysis process.
[0106] Step 2:
[0107] The server launches CoderAgent and parses the received code. The input is program code, and the output lists syntax errors and efficiency issues. CoderAgent checks the program's grammar and identifies parts that violate the language specification or are considered inefficient.
[0108] Step 3:
[0109] The server launches the ReviewerAgent based on the analysis results. The input is the analysis results from the CoderAgent. The ReviewerAgent generates improvement suggestions based on the project's characteristics. The output is feedback including specific correction methods and suggestions.
[0110] Step 4:
[0111] The server sends the generated feedback to the terminal. The terminal receives the feedback and notifies the user. The input is feedback data from ReviewerAgent, and the output is a notification message that the user can see.
[0112] Step 5:
[0113] The user reviews the feedback on the terminal and modifies the code as needed. Input is the feedback message from the server, and output is the modified program code. The user interacts with the terminal interface to apply the suggested modifications.
[0114] Step 6:
[0115] A prompt message is generated for the AI model, and a new analysis request is issued as needed. This prompt message is: "New code changes have been detected in the data center system. Please analyze for syntax errors and generate improvement suggestions." The input is the user's correction request, and the output is the prompt message.
[0116] 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.
[0117] This invention relates to a system that utilizes a computer system to analyze program code and suggest improvements. This system includes a function to automatically identify syntax errors in the code and generate suggestions for their correction. Furthermore, by incorporating an emotion engine that recognizes user emotions, this system can provide more contextually appropriate feedback.
[0118] The server receives program code and simultaneously acquires emotional data from the user's facial expressions and input. This emotional data is processed by an emotion engine to estimate the user's psychological state. CoderAgent analyzes the program code and detects syntax errors and inefficiencies. Subsequently, ReviewerAgent provides detailed suggestions based on the results from CoderAgent. Here, the user's emotional information provided by the emotion engine is useful. For example, if the user is stressed, ReviewerAgent can simplify the suggestions and emphasize positive feedback. In this way, the information from the emotion engine is used to adjust the urgency and level of detail of the suggestions.
[0119] The device presents the user with feedback received from the server. Here, the format and content of the feedback are customized according to the user's emotions. For example, if the user is experiencing fatigue, improvement suggestions are presented in a step-by-step manner using a visually relaxing interface. This approach improves the user experience and increases the acceptance of improvement suggestions.
[0120] Users can view feedback from the system via their terminal and modify the code as needed. Furthermore, receiving suggestions tailored to their own feelings makes the operation more intuitive and effective. Thus, this invention aims to improve the quality of program code while simultaneously enhancing productivity and satisfaction through user-centric feedback.
[0121] The following describes the processing flow.
[0122] Step 1:
[0123] The user inputs the program code they want to analyze using the terminal interface and initiates the analysis.
[0124] Step 2:
[0125] The terminal sends the program code provided by the user to the server, while simultaneously capturing the user's facial expressions, mouse movements, input speed, and other emotional data.
[0126] Step 3:
[0127] When the server receives program code sent from the terminal, it launches CoderAgent to perform a primary analysis. This analysis detects syntax errors and evaluates efficiency.
[0128] Step 4:
[0129] The server analyzes the emotion data received by the emotion engine to estimate the user's current emotional state. This information influences subsequent suggestion generation.
[0130] Step 5:
[0131] Within the server, ReviewerAgent generates detailed improvement suggestions based on CoderAgent's analysis results. During this process, the content and format of the suggestions are adjusted based on the user's emotional state, as determined by the emotion engine. For example, if the user is experiencing stress, the suggestions are simplified and positive emphasis is added.
[0132] Step 6:
[0133] The server sends the final suggestions and feedback to the terminal, including a customized approach incorporating emotional intelligence.
[0134] Step 7:
[0135] The device displays received feedback in a visual style that matches the user's emotions. If the device determines that the user is fatigued, the screen will present the feedback using calm, low-stress colors and designs.
[0136] Step 8:
[0137] The user reviews the feedback provided and modifies the program code. This allows the user to work efficiently in a relaxed state.
[0138] (Example 2)
[0139] 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 will be referred to as the "terminal."
[0140] Conventional program code analysis systems have the functionality to detect syntax errors and suggest improvements, but they lack feedback that takes into account the user's emotional state. This makes them particularly difficult to use for users who are emotionally unstable. Furthermore, because the improvement suggestions are not appropriately customized to the user's situation, they fail to adequately improve user productivity and satisfaction.
[0141] 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.
[0142] In this invention, the server includes means for analyzing program code and identifying syntax errors, means for generating suggestions for improving the portion of the program code in which syntax errors have been identified, means for acquiring and analyzing the user's emotional state, and means for adjusting and customizing the suggestions based on the acquired emotional state. This makes it possible to provide feedback that takes the user's emotions into consideration and to improve the user's work efficiency and satisfaction.
[0143] A "computer" refers to a mechanical or electronic device used for information processing, capable of executing programs and analyzing data.
[0144] "Program code" refers to a set of instructions written to cause a computer to perform a specific process, and it is written in a specific programming language.
[0145] A "syntax error" refers to an error that occurs when program code does not conform to the grammatical rules of the programming language it uses, and it can prevent a computer from executing the code correctly.
[0146] A "suggestion" refers to changes or modifications provided for the purpose of improving the program code, and includes specific instructions for resolving any issues that have been identified.
[0147] A "user" refers to a person who operates the system and utilizes its functions, and typically creates or modifies program code.
[0148] "Emotional state" refers to the psychological or emotional responses that a user exhibits while using the system, and is identified through facial expressions, voice, etc.
[0149] "Feedback" refers to evaluations and comments provided by a system to users, and is used to improve program code and help users understand it better.
[0150] "Analysis" refers to the process of examining program code and emotional data in detail to understand their structure and meaning.
[0151] "Customization" refers to the process of adjusting system proposals, interfaces, and other elements based on the user's specific needs and requirements.
[0152] This invention relates to a system for analyzing program code and suggesting improvements. This system consists of a server, terminals, and users.
[0153] The server receives program code sent from the user. This code is typically written in a programming language such as Java® or Python. The server analyzes the user's emotional state from their facial expressions and voice received from the terminal via an emotion engine. The emotion engine may utilize natural language processing APIs or emotion analysis libraries. Furthermore, it analyzes the syntax of the program code using CoderAgent and detects errors and areas for improvement using tools such as Pylint and Checkstyle. ReviewerAgent generates appropriate improvement suggestions for the detected errors and inefficient code sections. In this process, the user's emotional state is taken into consideration, and the feedback content is adjusted as needed.
[0154] As a concrete example, consider a scenario where a user sends program code written in Java to the server. If the system detects that the user is fatigued, ReviewerAgent can provide step-by-step, concise suggestions for improving the code, along with positive comments.
[0155] The terminal is responsible for displaying feedback from the server to the user. This display is designed to help the user relax visually, with colors, fonts, and other design elements applied according to their emotional state.
[0156] Users can view feedback on their devices and modify program code based on the suggestions provided. Suggestions are customized based on sentiment, making the work more intuitive and efficient.
[0157] Examples of prompt statements are as follows:
[0158] "The following Java program contains a syntax error. Please point out the error and offer improvement suggestions in a way that is easy for a frustrated user to understand. The program is as follows:..."
[0159] This system enables users to continuously and efficiently improve their code.
[0160] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0161] Step 1:
[0162] The server receives program code from the user. This input is code sent in text format over the internet. The server identifies this code by a session ID and prepares it for analysis. The output is the code data to be analyzed.
[0163] Step 2:
[0164] The server collects facial expression and voice data from the terminal to analyze the user's emotional state. The input data consists of real-time sensory information obtained through the camera and microphone. This data is then analyzed by an emotion engine to estimate the most appropriate emotional state. The output is data indicating the emotional state.
[0165] Step 3:
[0166] The server uses CoderAgent to parse the program code. The input is the code data received in step 1, and the output is a list of syntax errors and areas that need improvement. Specifically, it uses analysis tools such as Pylint or Checkstyle to identify errors and sends this information to ReviewerAgent.
[0167] Step 4:
[0168] The server's ReviewerAgent generates syntax errors and improvement suggestions. This process adjusts the suggestions based on the emotional state from step 2. The input consists of error information and emotional state data. The output is a list of specific improvement suggestions, including comments and explanations tailored to the user's psychological state.
[0169] Step 5:
[0170] The server sends the generated feedback to the terminal. This input is the suggested data generated in step 4. The output is the feedback data customized in a format suitable for the terminal. The transmitted data is displayed on the terminal along with appropriate expressions and colors that take the user's emotions into consideration.
[0171] Step 6:
[0172] The terminal presents the received feedback to the user. The input is feedback data sent from the server, and the output is visual information displayed on the screen. Specifically, messages are displayed step by step on the user interface, allowing the user to intuitively decide on the next action.
[0173] Step 7:
[0174] The user modifies the program code based on feedback from the terminal. The input is the improvement suggestions presented by the terminal, and the output is the updated program code. The user aims to achieve higher quality code by correcting specific syntax errors and inefficiencies.
[0175] (Application Example 2)
[0176] 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 device 14 will be referred to as the "terminal."
[0177] In program development, identifying and improving syntax errors and inefficiencies in code is essential. However, traditional systems often provide uniform feedback without considering the user's psychological state, which can amplify developer stress. Furthermore, because the feedback is not tailored to the developer's situation, improvement suggestions are difficult to utilize effectively. Technologies are needed to solve these problems and improve user productivity and satisfaction.
[0178] 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.
[0179] In this invention, the server includes means for analyzing program code and identifying syntax errors, means for generating suggestions for improving the parts with syntax errors, and means for acquiring user emotion data and providing emotion-appropriate feedback. This makes it possible to adjust feedback based on the user's emotional state, promote improvements to the program code, reduce developer stress, and provide improvement suggestions that are more intuitive and acceptable.
[0180] A "computer" is the core of a system that has the ability to analyze program code, identify syntax errors, and process user sentiment data.
[0181] "Program code" refers to source code that describes instructions executed by a computer, and may contain syntax errors or inefficiencies.
[0182] A "syntax error" refers to a state in which there is a grammatical error in program code, which can prevent the system from functioning correctly.
[0183] A "means for generating suggestions" refers to a part of a system that has the capability to produce specific instructions or recommendations for improvement in response to identified syntax errors.
[0184] "Emotional data" refers to information that reflects the user's psychological state and is obtained from facial expressions, voice, input actions, etc.
[0185] A "means of providing feedback" refers to a function that suggests ways to improve the program code to the user, with the content adjusted based on sentiment data.
[0186] To implement this invention, a system is constructed in which three elements—a server, a terminal, and a user—work in conjunction.
[0187] The server first receives program code sent by the user, performs syntactic analysis, and identifies syntax errors. It then generates specific suggestions for improvement for the identified syntax errors and inefficient code sections. Natural language processing libraries and machine learning tools are used to generate these suggestions. The server also receives user emotion data from the terminal, processes its content, and estimates the user's psychological state. At this stage, facial recognition libraries (e.g., OpenCV) and natural language processing technologies (e.g., NLTK, SpaCy) are utilized. This generates emotion-based feedback, and the urgency and level of detail of the feedback are adjusted accordingly.
[0188] The terminal receives feedback sent from the server and presents it to the user. The feedback is customized according to the user's emotional state and displayed through a visually relaxing interface. This creates an environment where users can effectively accept improvement suggestions without feeling stressed. The terminal also collects user input data and facial expressions and sends them to the server, contributing to optimizing the overall feedback effect of the system.
[0189] Users review the feedback presented through their device and make code modifications. Furthermore, because the feedback is emotionally tuned, improvements can be made more intuitively and effectively when implementing suggestions. As a specific use case, if a developer faces an error handling issue in an electronic payment function, the system will provide feedback such as, "Please provide suggestions for improvements to streamline the error handling portion of the payment API. Users are currently somewhat fatigued, so please make suggestions concise and easy to understand."
[0190] Thus, the system of this invention improves the quality of program code and increases the productivity of developers by providing sophisticated feedback that takes into account the user's psychological state.
[0191] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0192] Step 1:
[0193] The server receives program code sent by the user. This input data is in text format, and the server passes this data to the parsing module. The parsing module uses a natural language processing library (e.g., NLTK, SpaCy) to perform syntactic analysis and identify syntax errors. The output is information about syntax errors and inefficient code sections.
[0194] Step 2:
[0195] The server generates improvement suggestions based on the analysis results. It utilizes a generation AI model (e.g., TENSORFLOW®, a model using PyTorch) to suggest coding steps and correction methods to address the identified problems. Specifically, it outputs solutions based on past improvement examples and best practices.
[0196] Step 3:
[0197] The server receives user emotion data from the terminal. This data includes the user's facial expressions and voice input information, and is processed by an emotion analysis engine using a facial recognition library (e.g., OpenCV). The estimated psychological state is used to adjust the feedback. This output includes specific emotion information such as stress and fatigue.
[0198] Step 4:
[0199] The server integrates the generated improvement suggestions with sentiment data and adjusts the feedback content. By changing the tone of the feedback according to the user's emotions, it is delivered in a way that is easy for the user to understand and relaxing. This process results in customized feedback that is tailored to the user.
[0200] Step 5:
[0201] The terminal presents the user with customized feedback received from the server. The feedback is visually designed and presented in a way that is easy for the user to understand. The terminal also accepts additional input from the user and sends it back to the server to maintain the feedback loop.
[0202] Step 6:
[0203] Users review the feedback presented through their device and modify the program code. Based on the customized suggestions they receive, users implement code modifications. Furthermore, the intuitive nature of the feedback allows for efficient implementation of improvements.
[0204] 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.
[0205] Data generation model 58 is a 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 the following. 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 indicated 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.
[0206] 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.
[0207] [Second Embodiment]
[0208] Figure 3 shows an example of the configuration of the data processing system 210 according to the second embodiment.
[0209] 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.
[0210] 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).
[0211] 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.
[0212] 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.
[0213] 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).
[0214] 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.
[0215] 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.
[0216] 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.
[0217] 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.
[0218] 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.
[0219] 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".
[0220] This invention involves a computer system that automatically analyzes program code, identifies syntax errors, and generates suggestions for improvement. This improves code quality and increases development efficiency.
[0221] When the server receives program code, it first runs a module to analyze it. This analysis is performed by CoderAgent, which detects syntax errors and inefficiencies. CoderAgent supports a variety of programming languages and evaluates the code according to a specified coding style. Next, ReviewerAgent reviews CoderAgent's output, generating detailed feedback on improvements, particularly considering the project's characteristics. This feedback is then sent to the terminal by the server.
[0222] The terminal is responsible for displaying feedback received from the server in an easy-to-understand format for the user. To make it easy for users to implement improvement suggestions, suggestions include specific examples and means for correction. For example, if adding a type annotation to a function is suggested, specific type examples and the benefits will be provided.
[0223] Users can use the feedback they receive to modify the program code. For example, if the code is written in Python, the ReviewerAgent might suggest "adding type annotations to each function and removing unused variables." Based on these suggestions, the user can improve the code to enhance its readability and maintainability.
[0224] This system allows development teams to streamline and improve the consistency of their code review process. Furthermore, because each agent operates locally, data security is ensured, and privacy is effectively protected.
[0225] The following describes the processing flow.
[0226] Step 1:
[0227] The user prepares to input or upload the program code they want to analyze via the terminal's interface.
[0228] Step 2:
[0229] The terminal receives program code provided by the user and sends it to the server, including language information related to the code.
[0230] Step 3:
[0231] The server receives the program code sent from the terminal, launches CoderAgent, and begins the initial analysis.
[0232] Step 4:
[0233] The CoderAgent on the server analyzes the program code and detects syntax errors and inefficiencies. This result is then saved as data.
[0234] Step 5:
[0235] The server passes the analysis results generated by CoderAgent to ReviewerAgent. ReviewerAgent considers the code context and project characteristics to generate detailed improvement suggestions.
[0236] Step 6:
[0237] The server sends the feedback generated by the ReviewerAgent to the device. The feedback is provided in a format that is easy for the user to understand.
[0238] Step 7:
[0239] The device displays feedback received from the server to the user. This feedback includes specific improvement suggestions and the reasons behind them.
[0240] Step 8:
[0241] The user modifies the code based on the feedback displayed on their device and sends it back to the server for analysis if necessary.
[0242] (Example 1)
[0243] 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."
[0244] In traditional software development processes, manually identifying and correcting grammatical errors and inefficiencies in program code required considerable time and effort. Furthermore, the lack of suggestions for improvements that took project-specific characteristics into account made it difficult to optimize code and maintain consistent quality.
[0245] 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.
[0246] In this invention, the server includes means for an information processing device to analyze software code and identify grammatical errors, means for generating suggestions to improve the parts of the software code where grammatical errors have been identified, and means for automating the analysis and suggestions using a generation AI model, with its interface providing prompts to the user. This enables efficient analysis of software code, automation of improvement suggestions, and presentation of improvement measures that take project characteristics into account.
[0247] An "information processing device" is a device that receives data as input and processes it, including a central processing unit and peripheral equipment.
[0248] "Software code" is a set of instructions and declarations used to create computer programs, and is text written in a specific programming language.
[0249] A "grammar error" is a part of program code that violates the syntax or rules used within the program, and is a defect that prevents the program from functioning correctly.
[0250] An "inefficient part" is a section of program code that has excessively high computational complexity or resource usage, causing a decrease in performance.
[0251] "Project characteristics" refer to the specific features of a particular project to which a program belongs, such as its objectives, requirements, development environment, and coding style.
[0252] A "generative AI model" is a model based on artificial intelligence algorithms, and it is a mechanism for performing data analysis, prediction, and inference.
[0253] This invention provides an information processing system for automating the analysis and improvement of software code. Specifically, it involves the coordinated operation of three elements: a server, a terminal, and a user.
[0254] The server first receives software code from the user and analyzes it using an information processing device. The analysis utilizes analysis modules that support a variety of programming languages to identify grammatical errors and inefficiencies. The server then uses a generative AI model to generate specific suggestions for improving the code's efficiency. These suggestions take into account the project characteristics to which the software code belongs, aiming to improve code consistency and performance.
[0255] The terminal receives suggestions sent from the server. The terminal presents the suggestions to the user through an intuitive interface. This interface uses color and font highlighting to help the user focus on the most important information.
[0256] Users modify software code based on feedback received via their devices. For example, if they are suggested to add type annotations to a program, they will incorporate them into the executable code while referring to explanations of the specific benefits. Through this process, users can improve the readability and maintainability of the program.
[0257] By implementing this invention, development teams can significantly reduce the burden of traditional manual code reviews, enabling efficient and high-quality software development. Furthermore, it is recommended to use "Point out syntax errors and style violations in this Python code and suggest improvements" as an example prompt. This allows the generative AI model to function correctly and provide optimal improvements.
[0258] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0259] Step 1:
[0260] The server receives software code from the user. The server takes software code as input, stores the data in storage, and verifies its integrity. Specifically, it calculates the hash value of the data and verifies that it matches the value at the time of transmission.
[0261] Step 2:
[0262] The server launches an analysis module to analyze the software code. This module breaks down the software code into tokens and detects grammatical errors and inefficiencies. The input is saved software code, and the output is an error report and a list of optimization points. Specifically, the analysis is performed according to the syntax rules of various programming languages.
[0263] Step 3:
[0264] The server generates improvement suggestions using an AI model. In this process, the AI receives the analysis results as input and outputs improvement suggestions tailored to the project's characteristics. Specifically, it generates suggestions for correcting syntax errors and unifying coding styles.
[0265] Step 4:
[0266] The server sends improvement suggestions to the terminal. The input is the generated improvement suggestions, and the output is the transmission of data to the terminal. Specifically, the suggestions are converted into a format that is easy for the user to understand and sent via the communication line.
[0267] Step 5:
[0268] The terminal receives suggestions from the server and displays them to the user. Input is the transmitted data, and output is the visually displayed feedback. Specifically, color coding and font emphasis are used to allow the user to instantly grasp important information.
[0269] Step 6:
[0270] The software code is modified based on suggestions received by the user via their device. The input is feedback based on improvement suggestions, and the output is the modified software code. Specifically, the user implements the suggestions to improve the quality and performance of the code.
[0271] (Application Example 1)
[0272] 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."
[0273] In modern data centers, detecting and rapidly correcting syntax errors in program code is crucial. However, traditional systems lack real-time feedback, and immediate correction using mobile devices is difficult. This can hinder service stability and efficient operation.
[0274] 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.
[0275] In this invention, the server includes means for a computer to analyze program code and identify syntax errors, means for generating suggestions to improve the portion of the program code in which syntax errors have been identified, means for facilitating improvements to the program code based on the generated suggestions, and means for providing feedback in a mobile information processing device. This enables data center administrators to make code corrections in real time, even while on the move.
[0276] A "computer" is an electronic device used for information processing; it is a device that analyzes, calculates, and records data according to a program.
[0277] "Program code" is a set of instructions that a computer interprets and executes, and is the source code written to perform a specific task.
[0278] A "syntax error" refers to a part of program code that violates the grammatical rules of the language, resulting in a state where the program cannot be processed correctly.
[0279] A "means for generating suggestions" is a processing device that has the function of automatically creating specific methods and improvements to correct syntax errors in program code.
[0280] A "means to facilitate improvement" is a device that provides support functions to efficiently proceed with modifying program code based on the generated suggestions.
[0281] A "mobile information processing device" is a portable information device, which is a terminal designed so that a user can process data and communicate regardless of location.
[0282] After receiving the program code, the server immediately analyzes the code. For the analysis, CoderAgent, a dedicated software module, is used to detect syntax errors in various programming languages and further identify lack of efficiency and room for improvement. This agent also conforms to the coding style specific to the project and can perform extensive analysis.
[0283] Next, ReviewerAgent operates to generate improvement proposals based on the information presented by CoderAgent. This agent takes into account the characteristics and requirements of the project and details the optimal improvement measures. As a result, the user can efficiently and effectively improve the quality of the code.
[0284] The generated improvement proposals are sent to the terminal, which is a mobile information processing device, and the user can receive real-time feedback anywhere. Since the presented improvement proposals show specific problems and their solutions, the user can quickly implement code corrections.
[0285] As hardware, general server computers and mobile terminals are used. The software is mainly written in Python, and HTTP protocol is used for communication.
[0286] As a specific example, there is a case where an administrator of a data center conducts a code review using a mobile terminal at night. With this system, the administrator can immediately grasp code errors and respond promptly, thereby improving the stability and resource efficiency of the data center.
[0287] An example of an input prompt for the generating AI model would be: "A new code change has been detected in the data center system. Please analyze for syntax errors and generate improvement suggestions."
[0288] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0289] Step 1:
[0290] The server receives program code. At this time, the code submitted by the user from the terminal is provided as input. The server saves this code to temporary storage and starts the analysis process.
[0291] Step 2:
[0292] The server launches CoderAgent and parses the received code. The input is program code, and the output lists syntax errors and efficiency issues. CoderAgent checks the program's grammar and identifies parts that violate the language specification or are considered inefficient.
[0293] Step 3:
[0294] The server launches the ReviewerAgent based on the analysis results. The input is the analysis results from the CoderAgent. The ReviewerAgent generates improvement suggestions based on the project's characteristics. The output is feedback including specific correction methods and suggestions.
[0295] Step 4:
[0296] The server sends the generated feedback to the terminal. The terminal receives the feedback and notifies the user. The input is feedback data from ReviewerAgent, and the output is a notification message that the user can see.
[0297] Step 5:
[0298] The user reviews the feedback on the terminal and modifies the code as needed. Input is the feedback message from the server, and output is the modified program code. The user interacts with the terminal interface to apply the suggested modifications.
[0299] Step 6:
[0300] A prompt message is generated for the AI model, and a new analysis request is issued as needed. This prompt message is: "New code changes have been detected in the data center system. Please analyze for syntax errors and generate improvement suggestions." The input is the user's correction request, and the output is the prompt message.
[0301] 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.
[0302] This invention relates to a system that utilizes a computer system to analyze program code and suggest improvements. This system includes a function to automatically identify syntax errors in the code and generate suggestions for their correction. Furthermore, by incorporating an emotion engine that recognizes user emotions, this system can provide more contextually appropriate feedback.
[0303] The server acquires emotion data from the user's expression and input simultaneously when receiving the program code. This emotion data is processed by the emotion engine to estimate the user's psychological state. CoderAgent analyzes the program code and detects syntax errors and inefficient parts. Subsequently, ReviewerAgent makes detailed proposals based on the results from CoderAgent. Here, the emotion information of the user provided by the emotion engine is useful. For example, when the user is feeling stressed, ReviewerAgent can simplify the proposals and emphasize positive feedback. Thus, the information from the emotion engine is utilized to adjust the urgency and detail level of the proposals.
[0304] The terminal presents the feedback received from the server to the user. Here, the format and content of the feedback are customized according to the user's emotion. For example, when the user complains of fatigue, the improvement proposals are made step by step and provided in an interface that is visually relaxing. This approach improves the user experience and enhances the acceptance of the improvement proposals.
[0305] The user can check the feedback from the system via the terminal and modify the code if necessary. Also, by receiving proposals adjusted based on their own emotions, the operation becomes more intuitive and effective. Thus, the present invention aims to improve the quality of the program code and enhance productivity and satisfaction through user-friendly feedback.
[0306] The processing flow will be described below.
[0307] Step 1: <www.
[0308] The user inputs the program code to be analyzed using the terminal interface and instructs the start of the analysis.
[0309] Step 2:
[0310] The terminal sends the program code provided by the user to the server, while simultaneously capturing the user's facial expressions, mouse movements, input speed, and other emotional data.
[0311] Step 3:
[0312] When the server receives program code sent from the terminal, it launches CoderAgent to perform a primary analysis. This analysis detects syntax errors and evaluates efficiency.
[0313] Step 4:
[0314] The server analyzes the emotion data received by the emotion engine to estimate the user's current emotional state. This information influences subsequent suggestion generation.
[0315] Step 5:
[0316] Within the server, ReviewerAgent generates detailed improvement suggestions based on CoderAgent's analysis results. During this process, the content and format of the suggestions are adjusted based on the user's emotional state, as determined by the emotion engine. For example, if the user is experiencing stress, the suggestions are simplified and positive emphasis is added.
[0317] Step 6:
[0318] The server sends the final suggestions and feedback to the terminal, including a customized approach incorporating emotional intelligence.
[0319] Step 7:
[0320] The device displays received feedback in a visual style that matches the user's emotions. If the device determines that the user is fatigued, the screen will present the feedback using calm, low-stress colors and designs.
[0321] Step 8:
[0322] The user reviews the feedback provided and modifies the program code. This allows the user to work efficiently in a relaxed state.
[0323] (Example 2)
[0324] 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".
[0325] Conventional program code analysis systems have the functionality to detect syntax errors and suggest improvements, but they lack feedback that takes into account the user's emotional state. This makes them particularly difficult to use for users who are emotionally unstable. Furthermore, because the improvement suggestions are not appropriately customized to the user's situation, they fail to adequately improve user productivity and satisfaction.
[0326] 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.
[0327] In this invention, the server includes means for analyzing program code and identifying syntax errors, means for generating suggestions for improving the portion of the program code in which syntax errors have been identified, means for acquiring and analyzing the user's emotional state, and means for adjusting and customizing the suggestions based on the acquired emotional state. This makes it possible to provide feedback that takes the user's emotions into consideration and to improve the user's work efficiency and satisfaction.
[0328] A "computer" refers to a mechanical or electronic device used for information processing, capable of executing programs and analyzing data.
[0329] "Program code" refers to a set of instructions written to cause a computer to perform a specific process, and it is written in a specific programming language.
[0330] A "syntax error" refers to an error that occurs when program code does not conform to the grammatical rules of the programming language it uses, and it can prevent a computer from executing the code correctly.
[0331] A "suggestion" refers to changes or modifications provided for the purpose of improving the program code, and includes specific instructions for resolving any issues that have been identified.
[0332] A "user" refers to a person who operates the system and utilizes its functions, and typically creates or modifies program code.
[0333] "Emotional state" refers to the psychological or emotional responses that a user exhibits while using the system, and is identified through facial expressions, voice, etc.
[0334] "Feedback" refers to evaluations and comments provided by a system to users, and is used to improve program code and help users understand it better.
[0335] "Analysis" refers to the process of examining program code and emotional data in detail to understand their structure and meaning.
[0336] "Customization" refers to the process of adjusting system proposals, interfaces, and other elements based on the user's specific needs and requirements.
[0337] This invention relates to a system for analyzing program code and suggesting improvements. This system consists of a server, terminals, and users.
[0338] The server receives program code sent from the user. This code is typically written in a programming language such as Java or Python. The server analyzes the user's emotional state from their facial expressions and voice received from the terminal via an emotion engine. The emotion engine may utilize natural language processing APIs or emotion analysis libraries. Furthermore, it analyzes the syntax of the program code using CoderAgent and uses tools such as Pylint and Checkstyle to detect errors and areas for improvement. ReviewerAgent generates appropriate improvement suggestions for the detected errors and inefficient code sections. In this process, the user's emotional state is taken into consideration, and the feedback content is adjusted as needed.
[0339] As a concrete example, consider a scenario where a user sends program code written in Java to the server. If the system detects that the user is fatigued, ReviewerAgent can provide step-by-step, concise suggestions for improving the code, along with positive comments.
[0340] The terminal is responsible for displaying feedback from the server to the user. This display is designed to help the user relax visually, with colors, fonts, and other design elements applied according to their emotional state.
[0341] Users can view feedback on their devices and modify program code based on the suggestions provided. Suggestions are customized based on sentiment, making the work more intuitive and efficient.
[0342] Examples of prompt statements are as follows:
[0343] "The following Java program contains a syntax error. Please point out the error and offer improvement suggestions in a way that is easy for a frustrated user to understand. The program is as follows:..."
[0344] This system enables users to continuously and efficiently improve their code.
[0345] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0346] Step 1:
[0347] The server receives program code from the user. This input is code sent in text format over the internet. The server identifies this code by a session ID and prepares it for analysis. The output is the code data to be analyzed.
[0348] Step 2:
[0349] The server collects facial expression and voice data from the terminal to analyze the user's emotional state. The input data consists of real-time sensory information obtained through the camera and microphone. This data is then analyzed by an emotion engine to estimate the most appropriate emotional state. The output is data indicating the emotional state.
[0350] Step 3:
[0351] The server uses CoderAgent to parse the program code. The input is the code data received in step 1, and the output is a list of syntax errors and areas that need improvement. Specifically, it uses analysis tools such as Pylint or Checkstyle to identify errors and sends this information to ReviewerAgent.
[0352] Step 4:
[0353] The server's ReviewerAgent generates syntax errors and improvement suggestions. This process adjusts the suggestions based on the emotional state from step 2. The input consists of error information and emotional state data. The output is a list of specific improvement suggestions, including comments and explanations tailored to the user's psychological state.
[0354] Step 5:
[0355] The server sends the generated feedback to the terminal. This input is the suggested data generated in step 4. The output is the feedback data customized in a format suitable for the terminal. The transmitted data is displayed on the terminal along with appropriate expressions and colors that take the user's emotions into consideration.
[0356] Step 6:
[0357] The terminal presents the received feedback to the user. The input is feedback data sent from the server, and the output is visual information displayed on the screen. Specifically, messages are displayed step by step on the user interface, allowing the user to intuitively decide on the next action.
[0358] Step 7:
[0359] The user modifies the program code based on feedback from the terminal. The input is the improvement suggestions presented by the terminal, and the output is the updated program code. The user aims to achieve higher quality code by correcting specific syntax errors and inefficiencies.
[0360] (Application Example 2)
[0361] 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."
[0362] In program development, identifying and improving syntax errors and inefficiencies in code is essential. However, traditional systems often provide uniform feedback without considering the user's psychological state, which can amplify developer stress. Furthermore, because the feedback is not tailored to the developer's situation, improvement suggestions are difficult to utilize effectively. Technologies are needed to solve these problems and improve user productivity and satisfaction.
[0363] 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.
[0364] In this invention, the server includes means for analyzing program code and identifying syntax errors, means for generating suggestions for improving the parts with syntax errors, and means for acquiring user emotion data and providing emotion-appropriate feedback. This makes it possible to adjust feedback based on the user's emotional state, promote improvements to the program code, reduce developer stress, and provide improvement suggestions that are more intuitive and acceptable.
[0365] A "computer" is the core of a system that has the ability to analyze program code, identify syntax errors, and process user sentiment data.
[0366] "Program code" refers to source code that describes instructions executed by a computer, and may contain syntax errors or inefficiencies.
[0367] A "syntax error" refers to a state in which there is a grammatical error in program code, which can prevent the system from functioning correctly.
[0368] A "means for generating suggestions" refers to a part of a system that has the capability to produce specific instructions or recommendations for improvement in response to identified syntax errors.
[0369] "Emotional data" refers to information that reflects the user's psychological state and is obtained from facial expressions, voice, input actions, etc.
[0370] A "means of providing feedback" refers to a function that suggests ways to improve the program code to the user, with the content adjusted based on sentiment data.
[0371] To implement this invention, a system is constructed in which three elements—a server, a terminal, and a user—work in conjunction.
[0372] The server first receives program code sent by the user, performs syntactic analysis, and identifies syntax errors. It then generates specific suggestions for improvement for the identified syntax errors and inefficient code sections. Natural language processing libraries and machine learning tools are used to generate these suggestions. The server also receives user emotion data from the terminal, processes its content, and estimates the user's psychological state. At this stage, facial recognition libraries (e.g., OpenCV) and natural language processing technologies (e.g., NLTK, SpaCy) are utilized. This generates emotion-based feedback, and the urgency and level of detail of the feedback are adjusted accordingly.
[0373] The terminal receives feedback sent from the server and presents it to the user. The feedback is customized according to the user's emotional state and displayed through a visually relaxing interface. This creates an environment where users can effectively accept improvement suggestions without feeling stressed. The terminal also collects user input data and facial expressions and sends them to the server, contributing to optimizing the overall feedback effect of the system.
[0374] Users review the feedback presented through their device and make code modifications. Furthermore, because the feedback is emotionally tuned, improvements can be made more intuitively and effectively when implementing suggestions. As a specific use case, if a developer faces an error handling issue in an electronic payment function, the system will provide feedback such as, "Please provide suggestions for improvements to streamline the error handling portion of the payment API. Users are currently somewhat fatigued, so please make suggestions concise and easy to understand."
[0375] Thus, the system of this invention improves the quality of program code and increases the productivity of developers by providing sophisticated feedback that takes into account the user's psychological state.
[0376] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0377] Step 1:
[0378] The server receives program code sent by the user. This input data is in text format, and the server passes this data to the parsing module. The parsing module uses a natural language processing library (e.g., NLTK, SpaCy) to perform syntactic analysis and identify syntax errors. The output is information about syntax errors and inefficient code sections.
[0379] Step 2:
[0380] The server generates improvement suggestions based on the analysis results. It utilizes a generated AI model (e.g., a model using TensorFlow or PyTorch) to suggest coding steps and correction methods to address the identified problems. Specifically, it outputs solutions based on past improvement examples and best practices.
[0381] Step 3:
[0382] The server receives user emotion data from the terminal. This data includes the user's facial expressions and voice input information, and is processed by an emotion analysis engine using a facial recognition library (e.g., OpenCV). The estimated psychological state is used to adjust the feedback. This output includes specific emotion information such as stress and fatigue.
[0383] Step 4:
[0384] The server integrates the generated improvement suggestions with sentiment data and adjusts the feedback content. By changing the tone of the feedback according to the user's emotions, it is delivered in a way that is easy for the user to understand and relaxing. This process results in customized feedback that is tailored to the user.
[0385] Step 5:
[0386] The terminal presents the user with customized feedback received from the server. The feedback is visually designed and presented in a way that is easy for the user to understand. The terminal also accepts additional input from the user and sends it back to the server to maintain the feedback loop.
[0387] Step 6:
[0388] Users review the feedback presented through their device and modify the program code. Based on the customized suggestions they receive, users implement code modifications. Furthermore, the intuitive nature of the feedback allows for efficient implementation of improvements.
[0389] 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.
[0390] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). An 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 the following. 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 indicated 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.
[0391] 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.
[0392] [Third Embodiment]
[0393] Figure 5 shows an example of the configuration of the data processing system 310 according to the third embodiment.
[0394] 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.
[0395] 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).
[0396] 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.
[0397] 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.
[0398] 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).
[0399] 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.
[0400] 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.
[0401] 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.
[0402] 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.
[0403] 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.
[0404] 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".
[0405] This invention involves a computer system that automatically analyzes program code, identifies syntax errors, and generates suggestions for improvement. This improves code quality and increases development efficiency.
[0406] When the server receives program code, it first runs a module to analyze it. This analysis is performed by CoderAgent, which detects syntax errors and inefficiencies. CoderAgent supports a variety of programming languages and evaluates the code according to a specified coding style. Next, ReviewerAgent reviews CoderAgent's output, generating detailed feedback on improvements, particularly considering the project's characteristics. This feedback is then sent to the terminal by the server.
[0407] The terminal is responsible for displaying feedback received from the server in an easy-to-understand format for the user. To make it easy for users to implement improvement suggestions, suggestions include specific examples and means for correction. For example, if adding a type annotation to a function is suggested, specific type examples and the benefits will be provided.
[0408] Users can use the feedback they receive to modify the program code. For example, if the code is written in Python, the ReviewerAgent might suggest "adding type annotations to each function and removing unused variables." Based on these suggestions, the user can improve the code to enhance its readability and maintainability.
[0409] This system allows development teams to streamline and improve the consistency of their code review process. Furthermore, because each agent operates locally, data security is ensured, and privacy is effectively protected.
[0410] The following describes the processing flow.
[0411] Step 1:
[0412] The user prepares to input or upload the program code they want to analyze via the terminal's interface.
[0413] Step 2:
[0414] The terminal receives program code provided by the user and sends it to the server, including language information related to the code.
[0415] Step 3:
[0416] The server receives the program code sent from the terminal, launches CoderAgent, and begins the initial analysis.
[0417] Step 4:
[0418] The CoderAgent on the server analyzes the program code and detects syntax errors and inefficiencies. This result is then saved as data.
[0419] Step 5:
[0420] The server passes the analysis results generated by CoderAgent to ReviewerAgent. ReviewerAgent considers the code context and project characteristics to generate detailed improvement suggestions.
[0421] Step 6:
[0422] The server sends the feedback generated by the ReviewerAgent to the device. The feedback is provided in a format that is easy for the user to understand.
[0423] Step 7:
[0424] The device displays feedback received from the server to the user. This feedback includes specific improvement suggestions and the reasons behind them.
[0425] Step 8:
[0426] The user modifies the code based on the feedback displayed on their device and sends it back to the server for analysis if necessary.
[0427] (Example 1)
[0428] 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."
[0429] In traditional software development processes, manually identifying and correcting grammatical errors and inefficiencies in program code required considerable time and effort. Furthermore, the lack of suggestions for improvements that took project-specific characteristics into account made it difficult to optimize code and maintain consistent quality.
[0430] 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.
[0431] In this invention, the server includes means for an information processing device to analyze software code and identify grammatical errors, means for generating suggestions to improve the parts of the software code where grammatical errors have been identified, and means for automating the analysis and suggestions using a generation AI model, with its interface providing prompts to the user. This enables efficient analysis of software code, automation of improvement suggestions, and presentation of improvement measures that take project characteristics into account.
[0432] An "information processing device" is a device that receives data as input and processes it, including a central processing unit and peripheral equipment.
[0433] "Software code" is a set of instructions and declarations used to create computer programs, and is text written in a specific programming language.
[0434] A "grammar error" is a part of program code that violates the syntax or rules used within the program, and is a defect that prevents the program from functioning correctly.
[0435] An "inefficient part" is a section of program code that has excessively high computational complexity or resource usage, causing a decrease in performance.
[0436] "Project characteristics" refer to the specific features of a particular project to which a program belongs, such as its objectives, requirements, development environment, and coding style.
[0437] A "generative AI model" is a model based on artificial intelligence algorithms, and it is a mechanism for performing data analysis, prediction, and inference.
[0438] This invention provides an information processing system for automating the analysis and improvement of software code. Specifically, it involves the coordinated operation of three elements: a server, a terminal, and a user.
[0439] The server first receives software code from the user and analyzes it using an information processing device. The analysis utilizes analysis modules that support a variety of programming languages to identify grammatical errors and inefficiencies. The server then uses a generative AI model to generate specific suggestions for improving the code's efficiency. These suggestions take into account the project characteristics to which the software code belongs, aiming to improve code consistency and performance.
[0440] The terminal receives suggestions sent from the server. The terminal presents the suggestions to the user through an intuitive interface. This interface uses color and font highlighting to help the user focus on the most important information.
[0441] Users modify software code based on feedback received via their devices. For example, if they are suggested to add type annotations to a program, they will incorporate them into the executable code while referring to explanations of the specific benefits. Through this process, users can improve the readability and maintainability of the program.
[0442] By implementing this invention, development teams can significantly reduce the burden of traditional manual code reviews, enabling efficient and high-quality software development. Furthermore, it is recommended to use "Point out syntax errors and style violations in this Python code and suggest improvements" as an example prompt. This allows the generative AI model to function correctly and provide optimal improvements.
[0443] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0444] Step 1:
[0445] The server receives software code from the user. The server takes software code as input, stores the data in storage, and verifies its integrity. Specifically, it calculates the hash value of the data and verifies that it matches the value at the time of transmission.
[0446] Step 2:
[0447] The server launches an analysis module to analyze the software code. This module breaks down the software code into tokens and detects grammatical errors and inefficiencies. The input is saved software code, and the output is an error report and a list of optimization points. Specifically, the analysis is performed according to the syntax rules of various programming languages.
[0448] Step 3:
[0449] The server generates improvement suggestions using an AI model. In this process, the AI receives the analysis results as input and outputs improvement suggestions tailored to the project's characteristics. Specifically, it generates suggestions for correcting syntax errors and unifying coding styles.
[0450] Step 4:
[0451] The server sends improvement suggestions to the terminal. The input is the generated improvement suggestions, and the output is the transmission of data to the terminal. Specifically, the suggestions are converted into a format that is easy for the user to understand and sent via the communication line.
[0452] Step 5:
[0453] The terminal receives suggestions from the server and displays them to the user. Input is the transmitted data, and output is the visually displayed feedback. Specifically, color coding and font emphasis are used to allow the user to instantly grasp important information.
[0454] Step 6:
[0455] The software code is modified based on suggestions received by the user via their device. The input is feedback based on improvement suggestions, and the output is the modified software code. Specifically, the user implements the suggestions to improve the quality and performance of the code.
[0456] (Application Example 1)
[0457] 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."
[0458] In modern data centers, detecting and rapidly correcting syntax errors in program code is crucial. However, traditional systems lack real-time feedback, and immediate correction using mobile devices is difficult. This can hinder service stability and efficient operation.
[0459] 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.
[0460] In this invention, the server includes means for a computer to analyze program code and identify syntax errors, means for generating suggestions to improve the portion of the program code in which syntax errors have been identified, means for facilitating improvements to the program code based on the generated suggestions, and means for providing feedback in a mobile information processing device. This enables data center administrators to make code corrections in real time, even while on the move.
[0461] A "computer" is an electronic device used for information processing; it is a device that analyzes, calculates, and records data according to a program.
[0462] "Program code" is a set of instructions that a computer interprets and executes, and is the source code written to perform a specific task.
[0463] A "syntax error" refers to a part of program code that violates the grammatical rules of the language, resulting in a state where the program cannot be processed correctly.
[0464] A "means for generating suggestions" is a processing device that has the function of automatically creating specific methods and improvements to correct syntax errors in program code.
[0465] A "means to facilitate improvement" is a device that provides support functions to efficiently proceed with modifying program code based on the generated suggestions.
[0466] A "mobile information processing device" is a portable information device designed to allow users to process data and communicate regardless of their location.
[0467] Upon receiving program code, the server immediately analyzes it. This analysis utilizes a dedicated software module called CoderAgent, which detects syntax errors in various programming languages and identifies inefficiencies and areas for improvement. This agent also adheres to project-specific coding styles, enabling comprehensive analysis.
[0468] Next, ReviewerAgent takes over and generates improvement suggestions based on the information provided by CoderAgent. This agent considers the project's characteristics and requirements and details the optimal improvement measures. This allows users to efficiently and effectively improve the quality of their code.
[0469] The generated improvement suggestions are sent to a mobile information processing device (terminal), allowing users to receive real-time feedback wherever they are. The suggested improvements clearly indicate specific problems and their solutions, enabling users to quickly implement code modifications.
[0470] The hardware used will consist of a standard server computer and a mobile device. The software will primarily be written in Python, and communication will use the HTTP protocol.
[0471] One concrete example is when a data center administrator performs code reviews on a mobile device at night. This system allows administrators to quickly identify and address code errors, thereby improving the stability and resource efficiency of the data center.
[0472] An example of an input prompt for the generating AI model would be: "A new code change has been detected in the data center system. Please analyze for syntax errors and generate improvement suggestions."
[0473] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0474] Step 1:
[0475] The server receives program code. At this time, the code submitted by the user from the terminal is provided as input. The server saves this code to temporary storage and starts the analysis process.
[0476] Step 2:
[0477] The server launches CoderAgent and parses the received code. The input is program code, and the output lists syntax errors and efficiency issues. CoderAgent checks the program's grammar and identifies parts that violate the language specification or are considered inefficient.
[0478] Step 3:
[0479] The server launches the ReviewerAgent based on the analysis results. The input is the analysis results from the CoderAgent. The ReviewerAgent generates improvement suggestions based on the project's characteristics. The output is feedback including specific correction methods and suggestions.
[0480] Step 4:
[0481] The server sends the generated feedback to the terminal. The terminal receives the feedback and notifies the user. The input is feedback data from ReviewerAgent, and the output is a notification message that the user can see.
[0482] Step 5:
[0483] The user reviews the feedback on the terminal and modifies the code as needed. Input is the feedback message from the server, and output is the modified program code. The user interacts with the terminal interface to apply the suggested modifications.
[0484] Step 6:
[0485] A prompt message is generated for the AI model, and a new analysis request is issued as needed. This prompt message is: "New code changes have been detected in the data center system. Please analyze for syntax errors and generate improvement suggestions." The input is the user's correction request, and the output is the prompt message.
[0486] 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.
[0487] This invention relates to a system that utilizes a computer system to analyze program code and suggest improvements. This system includes a function to automatically identify syntax errors in the code and generate suggestions for their correction. Furthermore, by incorporating an emotion engine that recognizes user emotions, this system can provide more contextually appropriate feedback.
[0488] The server receives program code and simultaneously acquires emotional data from the user's facial expressions and input. This emotional data is processed by an emotion engine to estimate the user's psychological state. CoderAgent analyzes the program code and detects syntax errors and inefficiencies. Subsequently, ReviewerAgent provides detailed suggestions based on the results from CoderAgent. Here, the user's emotional information provided by the emotion engine is useful. For example, if the user is stressed, ReviewerAgent can simplify the suggestions and emphasize positive feedback. In this way, the information from the emotion engine is used to adjust the urgency and level of detail of the suggestions.
[0489] The device presents the user with feedback received from the server. Here, the format and content of the feedback are customized according to the user's emotions. For example, if the user is experiencing fatigue, improvement suggestions are presented in a step-by-step manner using a visually relaxing interface. This approach improves the user experience and increases the acceptance of improvement suggestions.
[0490] Users can view feedback from the system via their terminal and modify the code as needed. Furthermore, receiving suggestions tailored to their own feelings makes the operation more intuitive and effective. Thus, this invention aims to improve the quality of program code while simultaneously enhancing productivity and satisfaction through user-centric feedback.
[0491] The following describes the processing flow.
[0492] Step 1:
[0493] The user inputs the program code they want to analyze using the terminal interface and initiates the analysis.
[0494] Step 2:
[0495] The terminal sends the program code provided by the user to the server, while simultaneously capturing the user's facial expressions, mouse movements, input speed, and other emotional data.
[0496] Step 3:
[0497] When the server receives program code sent from the terminal, it launches CoderAgent to perform a primary analysis. This analysis detects syntax errors and evaluates efficiency.
[0498] Step 4:
[0499] The server analyzes the emotion data received by the emotion engine to estimate the user's current emotional state. This information influences subsequent suggestion generation.
[0500] Step 5:
[0501] Within the server, ReviewerAgent generates detailed improvement suggestions based on CoderAgent's analysis results. During this process, the content and format of the suggestions are adjusted based on the user's emotional state, as determined by the emotion engine. For example, if the user is experiencing stress, the suggestions are simplified and positive emphasis is added.
[0502] Step 6:
[0503] The server sends the final suggestions and feedback to the terminal, including a customized approach incorporating emotional intelligence.
[0504] Step 7:
[0505] The device displays received feedback in a visual style that matches the user's emotions. If the device determines that the user is fatigued, the screen will present the feedback using calm, low-stress colors and designs.
[0506] Step 8:
[0507] The user reviews the feedback provided and modifies the program code. This allows the user to work efficiently in a relaxed state.
[0508] (Example 2)
[0509] 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."
[0510] Conventional program code analysis systems have the functionality to detect syntax errors and suggest improvements, but they lack feedback that takes into account the user's emotional state. This makes them particularly difficult to use for users who are emotionally unstable. Furthermore, because the improvement suggestions are not appropriately customized to the user's situation, they fail to adequately improve user productivity and satisfaction.
[0511] 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.
[0512] In this invention, the server includes means for analyzing program code and identifying syntax errors, means for generating suggestions for improving the portion of the program code in which syntax errors have been identified, means for acquiring and analyzing the user's emotional state, and means for adjusting and customizing the suggestions based on the acquired emotional state. This makes it possible to provide feedback that takes the user's emotions into consideration and to improve the user's work efficiency and satisfaction.
[0513] A "computer" refers to a mechanical or electronic device used for information processing, capable of executing programs and analyzing data.
[0514] "Program code" refers to a set of instructions written to cause a computer to perform a specific process, and it is written in a specific programming language.
[0515] A "syntax error" refers to an error that occurs when program code does not conform to the grammatical rules of the programming language it uses, and it can prevent a computer from executing the code correctly.
[0516] A "suggestion" refers to changes or modifications provided for the purpose of improving the program code, and includes specific instructions for resolving any issues that have been identified.
[0517] A "user" refers to a person who operates the system and utilizes its functions, and typically creates or modifies program code.
[0518] "Emotional state" refers to the psychological or emotional responses that a user exhibits while using the system, and is identified through facial expressions, voice, etc.
[0519] "Feedback" refers to evaluations and comments provided by a system to users, and is used to improve program code and help users understand it better.
[0520] "Analysis" refers to the process of examining program code and emotional data in detail to understand their structure and meaning.
[0521] "Customization" refers to the process of adjusting system proposals, interfaces, and other elements based on the user's specific needs and requirements.
[0522] This invention relates to a system for analyzing program code and suggesting improvements. This system consists of a server, terminals, and users.
[0523] The server receives program code sent from the user. This code is typically written in a programming language such as Java or Python. The server analyzes the user's emotional state from their facial expressions and voice received from the terminal via an emotion engine. The emotion engine may utilize natural language processing APIs or emotion analysis libraries. Furthermore, it analyzes the syntax of the program code using CoderAgent and uses tools such as Pylint and Checkstyle to detect errors and areas for improvement. ReviewerAgent generates appropriate improvement suggestions for the detected errors and inefficient code sections. In this process, the user's emotional state is taken into consideration, and the feedback content is adjusted as needed.
[0524] As a concrete example, consider a scenario where a user sends program code written in Java to the server. If the system detects that the user is fatigued, ReviewerAgent can provide step-by-step, concise suggestions for improving the code, along with positive comments.
[0525] The terminal is responsible for displaying feedback from the server to the user. This display is designed to help the user relax visually, with colors, fonts, and other design elements applied according to their emotional state.
[0526] Users can view feedback on their devices and modify program code based on the suggestions provided. Suggestions are customized based on sentiment, making the work more intuitive and efficient.
[0527] Examples of prompt statements are as follows:
[0528] "The following Java program contains a syntax error. Please point out the error and offer improvement suggestions in a way that is easy for a frustrated user to understand. The program is as follows:..."
[0529] This system enables users to continuously and efficiently improve their code.
[0530] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0531] Step 1:
[0532] The server receives program code from the user. This input is code sent in text format over the internet. The server identifies this code by a session ID and prepares it for analysis. The output is the code data to be analyzed.
[0533] Step 2:
[0534] The server collects facial expression and voice data from the terminal to analyze the user's emotional state. The input data consists of real-time sensory information obtained through the camera and microphone. This data is then analyzed by an emotion engine to estimate the most appropriate emotional state. The output is data indicating the emotional state.
[0535] Step 3:
[0536] The server uses CoderAgent to parse the program code. The input is the code data received in step 1, and the output is a list of syntax errors and areas that need improvement. Specifically, it uses analysis tools such as Pylint or Checkstyle to identify errors and sends this information to ReviewerAgent.
[0537] Step 4:
[0538] The server's ReviewerAgent generates syntax errors and improvement suggestions. This process adjusts the suggestions based on the emotional state from step 2. The input consists of error information and emotional state data. The output is a list of specific improvement suggestions, including comments and explanations tailored to the user's psychological state.
[0539] Step 5:
[0540] The server sends the generated feedback to the terminal. This input is the suggested data generated in step 4. The output is the feedback data customized in a format suitable for the terminal. The transmitted data is displayed on the terminal along with appropriate expressions and colors that take the user's emotions into consideration.
[0541] Step 6:
[0542] The terminal presents the received feedback to the user. The input is feedback data sent from the server, and the output is visual information displayed on the screen. Specifically, messages are displayed step by step on the user interface, allowing the user to intuitively decide on the next action.
[0543] Step 7:
[0544] The user modifies the program code based on feedback from the terminal. The input is the improvement suggestions presented by the terminal, and the output is the updated program code. The user aims to achieve higher quality code by correcting specific syntax errors and inefficiencies.
[0545] (Application Example 2)
[0546] 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."
[0547] In program development, identifying and improving syntax errors and inefficiencies in code is essential. However, traditional systems often provide uniform feedback without considering the user's psychological state, which can amplify developer stress. Furthermore, because the feedback is not tailored to the developer's situation, improvement suggestions are difficult to utilize effectively. Technologies are needed to solve these problems and improve user productivity and satisfaction.
[0548] 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.
[0549] In this invention, the server includes means for analyzing program code and identifying syntax errors, means for generating suggestions for improving the parts with syntax errors, and means for acquiring user emotion data and providing emotion-appropriate feedback. This makes it possible to adjust feedback based on the user's emotional state, promote improvements to the program code, reduce developer stress, and provide improvement suggestions that are more intuitive and acceptable.
[0550] A "computer" is the core of a system that has the ability to analyze program code, identify syntax errors, and process user sentiment data.
[0551] "Program code" refers to source code that describes instructions executed by a computer, and may contain syntax errors or inefficiencies.
[0552] A "syntax error" refers to a state in which there is a grammatical error in program code, which can prevent the system from functioning correctly.
[0553] A "means for generating suggestions" refers to a part of a system that has the capability to produce specific instructions or recommendations for improvement in response to identified syntax errors.
[0554] "Emotional data" refers to information that reflects the user's psychological state and is obtained from facial expressions, voice, input actions, etc.
[0555] A "means of providing feedback" refers to a function that suggests ways to improve the program code to the user, with the content adjusted based on sentiment data.
[0556] To implement this invention, a system is constructed in which three elements—a server, a terminal, and a user—work in conjunction.
[0557] The server first receives program code sent by the user, performs syntactic analysis, and identifies syntax errors. It then generates specific suggestions for improvement for the identified syntax errors and inefficient code sections. Natural language processing libraries and machine learning tools are used to generate these suggestions. The server also receives user emotion data from the terminal, processes its content, and estimates the user's psychological state. At this stage, facial recognition libraries (e.g., OpenCV) and natural language processing technologies (e.g., NLTK, SpaCy) are utilized. This generates emotion-based feedback, and the urgency and level of detail of the feedback are adjusted accordingly.
[0558] The terminal receives feedback sent from the server and presents it to the user. The feedback is customized according to the user's emotional state and displayed through a visually relaxing interface. This creates an environment where users can effectively accept improvement suggestions without feeling stressed. The terminal also collects user input data and facial expressions and sends them to the server, contributing to optimizing the overall feedback effect of the system.
[0559] Users review the feedback presented through their device and make code modifications. Furthermore, because the feedback is emotionally tuned, improvements can be made more intuitively and effectively when implementing suggestions. As a specific use case, if a developer faces an error handling issue in an electronic payment function, the system will provide feedback such as, "Please provide suggestions for improvements to streamline the error handling portion of the payment API. Users are currently somewhat fatigued, so please make suggestions concise and easy to understand."
[0560] Thus, the system of this invention improves the quality of program code and increases the productivity of developers by providing sophisticated feedback that takes into account the user's psychological state.
[0561] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0562] Step 1:
[0563] The server receives program code sent by the user. This input data is in text format, and the server passes this data to the parsing module. The parsing module uses a natural language processing library (e.g., NLTK, SpaCy) to perform syntactic analysis and identify syntax errors. The output is information about syntax errors and inefficient code sections.
[0564] Step 2:
[0565] The server generates improvement suggestions based on the analysis results. It utilizes a generated AI model (e.g., a model using TensorFlow or PyTorch) to suggest coding steps and correction methods to address the identified problems. Specifically, it outputs solutions based on past improvement examples and best practices.
[0566] Step 3:
[0567] The server receives user emotion data from the terminal. This data includes the user's facial expressions and voice input information, and is processed by an emotion analysis engine using a facial recognition library (e.g., OpenCV). The estimated psychological state is used to adjust the feedback. This output includes specific emotion information such as stress and fatigue.
[0568] Step 4:
[0569] The server integrates the generated improvement suggestions with sentiment data and adjusts the feedback content. By changing the tone of the feedback according to the user's emotions, it is delivered in a way that is easy for the user to understand and relaxing. This process results in customized feedback that is tailored to the user.
[0570] Step 5:
[0571] The terminal presents the user with customized feedback received from the server. The feedback is visually designed and presented in a way that is easy for the user to understand. The terminal also accepts additional input from the user and sends it back to the server to maintain the feedback loop.
[0572] Step 6:
[0573] Users review the feedback presented through their device and modify the program code. Based on the customized suggestions they receive, users implement code modifications. Furthermore, the intuitive nature of the feedback allows for efficient implementation of improvements.
[0574] 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.
[0575] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). An 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 the following. 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 indicated 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.
[0576] 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.
[0577] [Fourth Embodiment]
[0578] Figure 7 shows an example of the configuration of the data processing system 410 according to the fourth embodiment.
[0579] 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.
[0580] 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).
[0581] 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.
[0582] 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.
[0583] 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).
[0584] 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.
[0585] 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.
[0586] 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.
[0587] 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.
[0588] 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.
[0589] 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.
[0590] 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".
[0591] This invention involves a computer system that automatically analyzes program code, identifies syntax errors, and generates suggestions for improvement. This improves code quality and increases development efficiency.
[0592] When the server receives program code, it first runs a module to analyze it. This analysis is performed by CoderAgent, which detects syntax errors and inefficiencies. CoderAgent supports a variety of programming languages and evaluates the code according to a specified coding style. Next, ReviewerAgent reviews CoderAgent's output, generating detailed feedback on improvements, particularly considering the project's characteristics. This feedback is then sent to the terminal by the server.
[0593] The terminal is responsible for displaying feedback received from the server in an easy-to-understand format for the user. To make it easy for users to implement improvement suggestions, suggestions include specific examples and means for correction. For example, if adding a type annotation to a function is suggested, specific type examples and the benefits will be provided.
[0594] Users can use the feedback they receive to modify the program code. For example, if the code is written in Python, the ReviewerAgent might suggest "adding type annotations to each function and removing unused variables." Based on these suggestions, the user can improve the code to enhance its readability and maintainability.
[0595] This system allows development teams to streamline and improve the consistency of their code review process. Furthermore, because each agent operates locally, data security is ensured, and privacy is effectively protected.
[0596] The following describes the processing flow.
[0597] Step 1:
[0598] The user prepares to input or upload the program code they want to analyze via the terminal's interface.
[0599] Step 2:
[0600] The terminal receives program code provided by the user and sends it to the server, including language information related to the code.
[0601] Step 3:
[0602] The server receives the program code sent from the terminal, launches CoderAgent, and begins the initial analysis.
[0603] Step 4:
[0604] The CoderAgent on the server analyzes the program code and detects syntax errors and inefficiencies. This result is then saved as data.
[0605] Step 5:
[0606] The server passes the analysis results generated by CoderAgent to ReviewerAgent. ReviewerAgent considers the code context and project characteristics to generate detailed improvement suggestions.
[0607] Step 6:
[0608] The server sends the feedback generated by the ReviewerAgent to the device. The feedback is provided in a format that is easy for the user to understand.
[0609] Step 7:
[0610] The device displays feedback received from the server to the user. This feedback includes specific improvement suggestions and the reasons behind them.
[0611] Step 8:
[0612] The user modifies the code based on the feedback displayed on their device and sends it back to the server for analysis if necessary.
[0613] (Example 1)
[0614] 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".
[0615] In traditional software development processes, manually identifying and correcting grammatical errors and inefficiencies in program code required considerable time and effort. Furthermore, the lack of suggestions for improvements that took project-specific characteristics into account made it difficult to optimize code and maintain consistent quality.
[0616] 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.
[0617] In this invention, the server includes means for an information processing device to analyze software code and identify grammatical errors, means for generating suggestions to improve the parts of the software code where grammatical errors have been identified, and means for automating the analysis and suggestions using a generation AI model, with its interface providing prompts to the user. This enables efficient analysis of software code, automation of improvement suggestions, and presentation of improvement measures that take project characteristics into account.
[0618] An "information processing device" is a device that receives data as input and processes it, including a central processing unit and peripheral equipment.
[0619] "Software code" is a set of instructions and declarations used to create computer programs, and is text written in a specific programming language.
[0620] A "grammar error" is a part of program code that violates the syntax or rules used within the program, and is a defect that prevents the program from functioning correctly.
[0621] An "inefficient part" is a section of program code that has excessively high computational complexity or resource usage, causing a decrease in performance.
[0622] "Project characteristics" refer to the specific features of a particular project to which a program belongs, such as its objectives, requirements, development environment, and coding style.
[0623] A "generative AI model" is a model based on artificial intelligence algorithms, and it is a mechanism for performing data analysis, prediction, and inference.
[0624] This invention provides an information processing system for automating the analysis and improvement of software code. Specifically, it involves the coordinated operation of three elements: a server, a terminal, and a user.
[0625] The server first receives software code from the user and analyzes it using an information processing device. The analysis utilizes analysis modules that support a variety of programming languages to identify grammatical errors and inefficiencies. The server then uses a generative AI model to generate specific suggestions for improving the code's efficiency. These suggestions take into account the project characteristics to which the software code belongs, aiming to improve code consistency and performance.
[0626] The terminal receives suggestions sent from the server. The terminal presents the suggestions to the user through an intuitive interface. This interface uses color and font highlighting to help the user focus on the most important information.
[0627] Users modify software code based on feedback received via their devices. For example, if they are suggested to add type annotations to a program, they will incorporate them into the executable code while referring to explanations of the specific benefits. Through this process, users can improve the readability and maintainability of the program.
[0628] By implementing this invention, development teams can significantly reduce the burden of traditional manual code reviews, enabling efficient and high-quality software development. Furthermore, it is recommended to use "Point out syntax errors and style violations in this Python code and suggest improvements" as an example prompt. This allows the generative AI model to function correctly and provide optimal improvements.
[0629] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0630] Step 1:
[0631] The server receives software code from the user. The server takes software code as input, stores the data in storage, and verifies its integrity. Specifically, it calculates the hash value of the data and verifies that it matches the value at the time of transmission.
[0632] Step 2:
[0633] The server launches an analysis module to analyze the software code. This module breaks down the software code into tokens and detects grammatical errors and inefficiencies. The input is saved software code, and the output is an error report and a list of optimization points. Specifically, the analysis is performed according to the syntax rules of various programming languages.
[0634] Step 3:
[0635] The server generates improvement suggestions using an AI model. In this process, the AI receives the analysis results as input and outputs improvement suggestions tailored to the project's characteristics. Specifically, it generates suggestions for correcting syntax errors and unifying coding styles.
[0636] Step 4:
[0637] The server sends improvement suggestions to the terminal. The input is the generated improvement suggestions, and the output is the transmission of data to the terminal. Specifically, the suggestions are converted into a format that is easy for the user to understand and sent via the communication line.
[0638] Step 5:
[0639] The terminal receives suggestions from the server and displays them to the user. Input is the transmitted data, and output is the visually displayed feedback. Specifically, color coding and font emphasis are used to allow the user to instantly grasp important information.
[0640] Step 6:
[0641] The software code is modified based on suggestions received by the user via their device. The input is feedback based on improvement suggestions, and the output is the modified software code. Specifically, the user implements the suggestions to improve the quality and performance of the code.
[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 modern data centers, detecting and rapidly correcting syntax errors in program code is crucial. However, traditional systems lack real-time feedback, and immediate correction using mobile devices is difficult. This can hinder service stability and efficient operation.
[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 means for a computer to analyze program code and identify syntax errors, means for generating suggestions to improve the portion of the program code in which syntax errors have been identified, means for facilitating improvements to the program code based on the generated suggestions, and means for providing feedback in a mobile information processing device. This enables data center administrators to make code corrections in real time, even while on the move.
[0647] A "computer" is an electronic device used for information processing; it is a device that analyzes, calculates, and records data according to a program.
[0648] "Program code" is a set of instructions that a computer interprets and executes, and is the source code written to perform a specific task.
[0649] A "syntax error" refers to a part of program code that violates the grammatical rules of the language, resulting in a state where the program cannot be processed correctly.
[0650] A "means for generating suggestions" is a processing device that has the function of automatically creating specific methods and improvements to correct syntax errors in program code.
[0651] A "means to facilitate improvement" is a device that provides support functions to efficiently proceed with modifying program code based on the generated suggestions.
[0652] A "mobile information processing device" is a portable information device designed to allow users to process data and communicate regardless of their location.
[0653] Upon receiving program code, the server immediately analyzes it. This analysis utilizes a dedicated software module called CoderAgent, which detects syntax errors in various programming languages and identifies inefficiencies and areas for improvement. This agent also adheres to project-specific coding styles, enabling comprehensive analysis.
[0654] Next, ReviewerAgent takes over and generates improvement suggestions based on the information provided by CoderAgent. This agent considers the project's characteristics and requirements and details the optimal improvement measures. This allows users to efficiently and effectively improve the quality of their code.
[0655] The generated improvement suggestions are sent to a mobile information processing device (terminal), allowing users to receive real-time feedback wherever they are. The suggested improvements clearly indicate specific problems and their solutions, enabling users to quickly implement code modifications.
[0656] The hardware used will consist of a standard server computer and a mobile device. The software will primarily be written in Python, and communication will use the HTTP protocol.
[0657] One concrete example is when a data center administrator performs code reviews on a mobile device at night. This system allows administrators to quickly identify and address code errors, thereby improving the stability and resource efficiency of the data center.
[0658] An example of an input prompt for the generating AI model would be: "A new code change has been detected in the data center system. Please analyze for syntax errors and generate improvement suggestions."
[0659] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0660] Step 1:
[0661] The server receives program code. At this time, the code submitted by the user from the terminal is provided as input. The server saves this code to temporary storage and starts the analysis process.
[0662] Step 2:
[0663] The server launches CoderAgent and parses the received code. The input is program code, and the output lists syntax errors and efficiency issues. CoderAgent checks the program's grammar and identifies parts that violate the language specification or are considered inefficient.
[0664] Step 3:
[0665] The server launches the ReviewerAgent based on the analysis results. The input is the analysis results from the CoderAgent. The ReviewerAgent generates improvement suggestions based on the project's characteristics. The output is feedback including specific correction methods and suggestions.
[0666] Step 4:
[0667] The server sends the generated feedback to the terminal. The terminal receives the feedback and notifies the user. The input is feedback data from ReviewerAgent, and the output is a notification message that the user can see.
[0668] Step 5:
[0669] The user reviews the feedback on the terminal and modifies the code as needed. Input is the feedback message from the server, and output is the modified program code. The user interacts with the terminal interface to apply the suggested modifications.
[0670] Step 6:
[0671] A prompt message is generated for the AI model, and a new analysis request is issued as needed. This prompt message is: "New code changes have been detected in the data center system. Please analyze for syntax errors and generate improvement suggestions." The input is the user's correction request, and the output is the prompt message.
[0672] 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.
[0673] This invention relates to a system that utilizes a computer system to analyze program code and suggest improvements. This system includes a function to automatically identify syntax errors in the code and generate suggestions for their correction. Furthermore, by incorporating an emotion engine that recognizes user emotions, this system can provide more contextually appropriate feedback.
[0674] The server receives program code and simultaneously acquires emotional data from the user's facial expressions and input. This emotional data is processed by an emotion engine to estimate the user's psychological state. CoderAgent analyzes the program code and detects syntax errors and inefficiencies. Subsequently, ReviewerAgent provides detailed suggestions based on the results from CoderAgent. Here, the user's emotional information provided by the emotion engine is useful. For example, if the user is stressed, ReviewerAgent can simplify the suggestions and emphasize positive feedback. In this way, the information from the emotion engine is used to adjust the urgency and level of detail of the suggestions.
[0675] The device presents the user with feedback received from the server. Here, the format and content of the feedback are customized according to the user's emotions. For example, if the user is experiencing fatigue, improvement suggestions are presented in a step-by-step manner using a visually relaxing interface. This approach improves the user experience and increases the acceptance of improvement suggestions.
[0676] Users can view feedback from the system via their terminal and modify the code as needed. Furthermore, receiving suggestions tailored to their own feelings makes the operation more intuitive and effective. Thus, this invention aims to improve the quality of program code while simultaneously enhancing productivity and satisfaction through user-centric feedback.
[0677] The following describes the processing flow.
[0678] Step 1:
[0679] The user inputs the program code they want to analyze using the terminal interface and initiates the analysis.
[0680] Step 2:
[0681] The terminal sends the program code provided by the user to the server, while simultaneously capturing the user's facial expressions, mouse movements, input speed, and other emotional data.
[0682] Step 3:
[0683] When the server receives program code sent from the terminal, it launches CoderAgent to perform a primary analysis. This analysis detects syntax errors and evaluates efficiency.
[0684] Step 4:
[0685] The server analyzes the emotion data received by the emotion engine to estimate the user's current emotional state. This information influences subsequent suggestion generation.
[0686] Step 5:
[0687] Within the server, ReviewerAgent generates detailed improvement suggestions based on CoderAgent's analysis results. During this process, the content and format of the suggestions are adjusted based on the user's emotional state, as determined by the emotion engine. For example, if the user is experiencing stress, the suggestions are simplified and positive emphasis is added.
[0688] Step 6:
[0689] The server sends the final suggestions and feedback to the terminal, including a customized approach incorporating emotional intelligence.
[0690] Step 7:
[0691] The device displays received feedback in a visual style that matches the user's emotions. If the device determines that the user is fatigued, the screen will present the feedback using calm, low-stress colors and designs.
[0692] Step 8:
[0693] The user reviews the feedback provided and modifies the program code. This allows the user to work efficiently in a relaxed state.
[0694] (Example 2)
[0695] 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".
[0696] Conventional program code analysis systems have the functionality to detect syntax errors and suggest improvements, but they lack feedback that takes into account the user's emotional state. This makes them particularly difficult to use for users who are emotionally unstable. Furthermore, because the improvement suggestions are not appropriately customized to the user's situation, they fail to adequately improve user productivity and satisfaction.
[0697] 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.
[0698] In this invention, the server includes means for analyzing program code and identifying syntax errors, means for generating suggestions for improving the portion of the program code in which syntax errors have been identified, means for acquiring and analyzing the user's emotional state, and means for adjusting and customizing the suggestions based on the acquired emotional state. This makes it possible to provide feedback that takes the user's emotions into consideration and to improve the user's work efficiency and satisfaction.
[0699] A "computer" refers to a mechanical or electronic device used for information processing, capable of executing programs and analyzing data.
[0700] "Program code" refers to a set of instructions written to cause a computer to perform a specific process, and it is written in a specific programming language.
[0701] A "syntax error" refers to an error that occurs when program code does not conform to the grammatical rules of the programming language it uses, and it can prevent a computer from executing the code correctly.
[0702] A "suggestion" refers to changes or modifications provided for the purpose of improving the program code, and includes specific instructions for resolving any issues that have been identified.
[0703] A "user" refers to a person who operates the system and utilizes its functions, and typically creates or modifies program code.
[0704] "Emotional state" refers to the psychological or emotional responses that a user exhibits while using the system, and is identified through facial expressions, voice, etc.
[0705] "Feedback" refers to evaluations and comments provided by a system to users, and is used to improve program code and help users understand it better.
[0706] "Analysis" refers to the process of examining program code and emotional data in detail to understand their structure and meaning.
[0707] "Customization" refers to the process of adjusting system proposals, interfaces, and other elements based on the user's specific needs and requirements.
[0708] This invention relates to a system for analyzing program code and suggesting improvements. This system consists of a server, terminals, and users.
[0709] The server receives program code sent from the user. This code is typically written in a programming language such as Java or Python. The server analyzes the user's emotional state from their facial expressions and voice received from the terminal via an emotion engine. The emotion engine may utilize natural language processing APIs or emotion analysis libraries. Furthermore, it analyzes the syntax of the program code using CoderAgent and uses tools such as Pylint and Checkstyle to detect errors and areas for improvement. ReviewerAgent generates appropriate improvement suggestions for the detected errors and inefficient code sections. In this process, the user's emotional state is taken into consideration, and the feedback content is adjusted as needed.
[0710] As a concrete example, consider a scenario where a user sends program code written in Java to the server. If the system detects that the user is fatigued, ReviewerAgent can provide step-by-step, concise suggestions for improving the code, along with positive comments.
[0711] The terminal is responsible for displaying feedback from the server to the user. This display is designed to help the user relax visually, with colors, fonts, and other design elements applied according to their emotional state.
[0712] Users can view feedback on their devices and modify program code based on the suggestions provided. Suggestions are customized based on sentiment, making the work more intuitive and efficient.
[0713] Examples of prompt statements are as follows:
[0714] "The following Java program contains a syntax error. Please point out the error and offer improvement suggestions in a way that is easy for a frustrated user to understand. The program is as follows:..."
[0715] This system enables users to continuously and efficiently improve their code.
[0716] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0717] Step 1:
[0718] The server receives program code from the user. This input is code sent in text format over the internet. The server identifies this code by a session ID and prepares it for analysis. The output is the code data to be analyzed.
[0719] Step 2:
[0720] The server collects facial expression and voice data from the terminal to analyze the user's emotional state. The input data consists of real-time sensory information obtained through the camera and microphone. This data is then analyzed by an emotion engine to estimate the most appropriate emotional state. The output is data indicating the emotional state.
[0721] Step 3:
[0722] The server uses CoderAgent to parse the program code. The input is the code data received in step 1, and the output is a list of syntax errors and areas that need improvement. Specifically, it uses analysis tools such as Pylint or Checkstyle to identify errors and sends this information to ReviewerAgent.
[0723] Step 4:
[0724] The server's ReviewerAgent generates syntax errors and improvement suggestions. This process adjusts the suggestions based on the emotional state from step 2. The input consists of error information and emotional state data. The output is a list of specific improvement suggestions, including comments and explanations tailored to the user's psychological state.
[0725] Step 5:
[0726] The server sends the generated feedback to the terminal. This input is the suggested data generated in step 4. The output is the feedback data customized in a format suitable for the terminal. The transmitted data is displayed on the terminal along with appropriate expressions and colors that take the user's emotions into consideration.
[0727] Step 6:
[0728] The terminal presents the received feedback to the user. The input is feedback data sent from the server, and the output is visual information displayed on the screen. Specifically, messages are displayed step by step on the user interface, allowing the user to intuitively decide on the next action.
[0729] Step 7:
[0730] The user modifies the program code based on feedback from the terminal. The input is the improvement suggestions presented by the terminal, and the output is the updated program code. The user aims to achieve higher quality code by correcting specific syntax errors and inefficiencies.
[0731] (Application Example 2)
[0732] 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".
[0733] In program development, identifying and improving syntax errors and inefficiencies in code is essential. However, traditional systems often provide uniform feedback without considering the user's psychological state, which can amplify developer stress. Furthermore, because the feedback is not tailored to the developer's situation, improvement suggestions are difficult to utilize effectively. Technologies are needed to solve these problems and improve user productivity and satisfaction.
[0734] 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.
[0735] In this invention, the server includes means for analyzing program code and identifying syntax errors, means for generating suggestions for improving the parts with syntax errors, and means for acquiring user emotion data and providing emotion-appropriate feedback. This makes it possible to adjust feedback based on the user's emotional state, promote improvements to the program code, reduce developer stress, and provide improvement suggestions that are more intuitive and acceptable.
[0736] A "computer" is the core of a system that has the ability to analyze program code, identify syntax errors, and process user sentiment data.
[0737] "Program code" refers to source code that describes instructions executed by a computer, and may contain syntax errors or inefficiencies.
[0738] A "syntax error" refers to a state in which there is a grammatical error in program code, which can prevent the system from functioning correctly.
[0739] A "means for generating suggestions" refers to a part of a system that has the capability to produce specific instructions or recommendations for improvement in response to identified syntax errors.
[0740] "Emotional data" refers to information that reflects the user's psychological state and is obtained from facial expressions, voice, input actions, etc.
[0741] A "means of providing feedback" refers to a function that suggests ways to improve the program code to the user, with the content adjusted based on sentiment data.
[0742] To implement this invention, a system is constructed in which three elements—a server, a terminal, and a user—work in conjunction.
[0743] The server first receives program code sent by the user, performs syntactic analysis, and identifies syntax errors. It then generates specific suggestions for improvement for the identified syntax errors and inefficient code sections. Natural language processing libraries and machine learning tools are used to generate these suggestions. The server also receives user emotion data from the terminal, processes its content, and estimates the user's psychological state. At this stage, facial recognition libraries (e.g., OpenCV) and natural language processing technologies (e.g., NLTK, SpaCy) are utilized. This generates emotion-based feedback, and the urgency and level of detail of the feedback are adjusted accordingly.
[0744] The terminal receives feedback sent from the server and presents it to the user. The feedback is customized according to the user's emotional state and displayed through a visually relaxing interface. This creates an environment where users can effectively accept improvement suggestions without feeling stressed. The terminal also collects user input data and facial expressions and sends them to the server, contributing to optimizing the overall feedback effect of the system.
[0745] Users review the feedback presented through their device and make code modifications. Furthermore, because the feedback is emotionally tuned, improvements can be made more intuitively and effectively when implementing suggestions. As a specific use case, if a developer faces an error handling issue in an electronic payment function, the system will provide feedback such as, "Please provide suggestions for improvements to streamline the error handling portion of the payment API. Users are currently somewhat fatigued, so please make suggestions concise and easy to understand."
[0746] Thus, the system of this invention improves the quality of program code and increases the productivity of developers by providing sophisticated feedback that takes into account the user's psychological state.
[0747] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0748] Step 1:
[0749] The server receives program code sent by the user. This input data is in text format, and the server passes this data to the parsing module. The parsing module uses a natural language processing library (e.g., NLTK, SpaCy) to perform syntactic analysis and identify syntax errors. The output is information about syntax errors and inefficient code sections.
[0750] Step 2:
[0751] The server generates improvement suggestions based on the analysis results. It utilizes a generated AI model (e.g., a model using TensorFlow or PyTorch) to suggest coding steps and correction methods to address the identified problems. Specifically, it outputs solutions based on past improvement examples and best practices.
[0752] Step 3:
[0753] The server receives user emotion data from the terminal. This data includes the user's facial expressions and voice input information, and is processed by an emotion analysis engine using a facial recognition library (e.g., OpenCV). The estimated psychological state is used to adjust the feedback. This output includes specific emotion information such as stress and fatigue.
[0754] Step 4:
[0755] The server integrates the generated improvement suggestions with sentiment data and adjusts the feedback content. By changing the tone of the feedback according to the user's emotions, it is delivered in a way that is easy for the user to understand and relaxing. This process results in customized feedback that is tailored to the user.
[0756] Step 5:
[0757] The terminal presents the user with customized feedback received from the server. The feedback is visually designed and presented in a way that is easy for the user to understand. The terminal also accepts additional input from the user and sends it back to the server to maintain the feedback loop.
[0758] Step 6:
[0759] Users review the feedback presented through their device and modify the program code. Based on the customized suggestions they receive, users implement code modifications. Furthermore, the intuitive nature of the feedback allows for efficient implementation of improvements.
[0760] 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.
[0761] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). An 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 the following. 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 indicated 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.
[0762] 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.
[0763] 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.
[0764] 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.
[0765] 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.
[0766] 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.
[0767] 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.
[0768] 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."
[0769] 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.
[0770] 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.
[0771] 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.
[0772] 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.
[0773] 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.
[0774] 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.
[0775] 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.
[0776] 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.
[0777] 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.
[0778] 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.
[0779] 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.
[0780] 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.
[0781] The following is further disclosed regarding the embodiments described above.
[0782] (Claim 1)
[0783] A means by which a computer analyzes program code to identify syntax errors,
[0784] A means for generating suggestions for improving the portion of the program code in which a syntax error has been identified,
[0785] Means to facilitate improvements to the program code based on the generated suggestions,
[0786] A system that includes this.
[0787] (Claim 2)
[0788] The system according to claim 1, comprising means for considering the characteristics of the project to which the program code belongs when generating suggestions for improvements to the program code.
[0789] (Claim 3)
[0790] The system according to claim 1, comprising an interface for presenting improvement suggestions to the user, wherein the user interface allows the user to implement the suggestions.
[0791] "Example 1"
[0792] (Claim 1)
[0793] A means by which an information processing device analyzes software code to identify grammatical errors,
[0794] A means of generating suggestions for improving the parts of software code where grammatical errors have been identified,
[0795] A means to facilitate software code optimization based on the generated suggestions,
[0796] A means of identifying inefficient parts of the code and indicating optimization points,
[0797] A means of incorporating detailed improvement measures that take into account the characteristics of the project into the proposal,
[0798] A system that includes this.
[0799] (Claim 2)
[0800] The system according to claim 1, comprising means for presenting proposals to users in an easy-to-understand manner using a display device and for incorporating proposals using visual emphasis.
[0801] (Claim 3)
[0802] The system according to claim 1, which utilizes a generative AI model to automate analysis and proposals, and whose interface provides means for prompting the user.
[0803] "Application Example 1"
[0804] (Claim 1)
[0805] A means by which a computer analyzes program code to identify syntax errors,
[0806] A means for generating suggestions for improving the portion of the program code in which a syntax error has been identified,
[0807] Means to facilitate improvements to the program code based on the generated suggestions,
[0808] A means for providing feedback in a mobile information processing device,
[0809] A system that includes this.
[0810] (Claim 2)
[0811] The system according to claim 1, comprising means for considering the characteristics of the project to which the program code belongs in generating improvement suggestions for the program code, and further comprising means for enabling immediate response within a mobile vehicle.
[0812] (Claim 3)
[0813] The system according to claim 1, which includes an ergonomic interface that presents improvement suggestions to the user, and which allows the mobile device manager to immediately implement the suggestions.
[0814] "Example 2 of combining an emotion engine"
[0815] (Claim 1)
[0816] A means by which a computer analyzes program code to identify syntax errors,
[0817] A means for generating suggestions for improving the portion of the program code in which a syntax error has been identified,
[0818] A means of acquiring and analyzing the emotional state of users,
[0819] Means for adjusting and customizing suggestions based on acquired emotional states,
[0820] Means to facilitate improvements to the program code based on the generated suggestions,
[0821] A system that includes this.
[0822] (Claim 2)
[0823] The system according to claim 1, comprising means for considering the characteristics of the project to which the program code belongs in generating improvement suggestions for program code, and further comprising means for changing the method of presenting suggestions based on emotional state.
[0824] (Claim 3)
[0825] The system according to claim 1, comprising a display means for presenting improvement suggestions to a user, wherein the user can incorporate the suggestions through the display means.
[0826] "Application example 2 when combining with an emotional engine"
[0827] (Claim 1)
[0828] A means by which a computer analyzes program code to identify syntax errors,
[0829] A means for generating suggestions for improving the portion of the program code in which a syntax error has been identified,
[0830] A means of acquiring user emotion data and providing feedback that corresponds to those emotions,
[0831] Means to facilitate improvements to the program code based on the generated suggestions,
[0832] A means of adjusting feedback content based on emotional data,
[0833] A system that includes this.
[0834] (Claim 2)
[0835] The system according to claim 1, which, in generating suggestions for improvement to program code, includes means for considering the characteristics of the project to which the program code belongs and for reflecting the emotional state of the user.
[0836] (Claim 3)
[0837] The system according to claim 1, comprising an interface for presenting improvement suggestions to the user, the user being able to incorporate the suggestions through the user interface, and further providing suggestion expressions that respond to the user's emotions. [Explanation of symbols]
[0838] 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. A means by which a computer analyzes program code to identify syntax errors, A means for generating suggestions for improving the portion of the program code in which a syntax error has been identified, Means to facilitate improvements to the program code based on the generated suggestions, A system that includes this.
2. The system according to claim 1, comprising means for considering the characteristics of the project to which the program code belongs when generating suggestions for improvements to the program code.
3. The system according to claim 1, which includes an interface for presenting improvement suggestions to the user, and through that user interface, the user can implement the suggestions.