According to news from this site on June 22, Huawei yesterday introduced Huawei’s self-developed programming language-Cangjie to developers around the world. This is the first public appearance of Cangjie programming language.
Inquiries on this site revealed that Tianjin University and Beijing University of Aeronautics and Astronautics were deeply involved in the research and development of Huawei’s “Cangjie”.
The software engineering team of the Department of Intelligence and Computing of Tianjin University joined hands with the Huawei Cangjie team to deeply participate in the quality assurance research of the Cangjie programming language compiler.
According to reports, Cangjie compiler is the basic software that coexists with Cangjie programming language. In the preparatory stage of the Cangjie programming language, a high-quality compiler that matches it became one of the core goals. As the Cangjie programming language evolves, the Cangjie compiler is constantly being upgraded and improved.
In the past five years, Professor Chen Junjie, Professor Wang Zan, researcher Jiang Jiajun of the software engineering team of the Department of Intelligence and Computing of Tianjin University, as well as more than ten graduate students including Zhao Yingquan, Fu Ruifeng, Guo Yile, Zheng Kai, and Fan Xingyu , conducted in-depth research around Cangjie compiler testing work, and proposed a data-driven Cangjie compiler systematic testing framework, covering test program generation technology based on program synthesis, test oracle construction technology based on program mutation, and testing process based on code representation Acceleration technology and many other advanced technologies. The results have been published in many academic papers at the top conferences in the field of software engineering, such as ICSE and ISSTA, and have been deployed in actual tests of the Cangjie compiler, significantly improving the test results of the Cangjie compiler.
Test program generation technology based on program synthesis: This technology decomposes the program code into fine-grained code fragments, involving different language features, and then implements testing under the guidance of syntax and semantic constraints Efficient synthesis of programs. It is worth noting that this technology can use historical defects as basic data, extract code fragments related to defects, and integrate them into various code contexts to stimulate its ability to trigger more defects and execute more code branches. .
Test prediction construction technology based on program mutation: This technology designs a series of equivalent mutation operators and unequal mutation operators through in-depth analysis and mining of the syntax and semantics of Cangjie programming language. The former provides supplements in test predictions, integrates the idea of metamorphosis testing, and improves technical error detection capabilities, while the latter further enhances the diversity of test programs, introduces more Cangjie language features, underlying library calls and other information to achieve a more complete understanding of the Cangjie compiler. test.
Code representation-based testing process acceleration technology: This technology is designed to improve compiler testing efficiency to detect more compiler defects in a shorter time. This technology fragments the test program code and introduces a code representation learning strategy to represent it in the language definition space. Furthermore, this technology utilizes code snippets and generates test programs from a diversity perspective, and uses the test results as feedback to further guide the subsequent testing process, thereby improving the overall testing efficiency.
Beijing University of Aeronautics and Astronautics Software SchoolTeacher Li Li’s teamIn-depth participation in the development of CangChain, an AI agent programming framework based on Cangjie programming language. This is the first time An AI agent programming framework based on domestic programming languages.
According to reports, CangChain was born in the Cangjie community and received technical support from the Cangjie programming language official team. As a community open source project, Cangqiong adopts modular design and functionality, aiming to provide software engineers with reliable functions for software integration models, secure access to private data, and data interaction.
Based on the modular design concept, Cangqiong allows developers to select and combine different modules according to their own specific needs. In the process of realizing the task, Cangqiong can decompose the task into multiple subtasks, select and build an appropriate agent (Agent) for each subtask, allow the language model to interact with external APIs, call the tool (Tool) that meets the goal of the subtask, and use The task chain (Chain) connects each sub-task in series, and finally obtains the task solution.
Teacher Li Li’s team is mainly involved in the design, development and implementation of the ReAct framework and multi-agent Planner scheduling in the sky.
In the specific application, the team designed and implemented a multi-agent system, including the following four key roles: Docwriter, CodeWriter, CodeTester and CodeReviewer. These agents work closely together on the Cangqiong platform to complete the development tasks of classic games such as 2048.
Docwriter: Responsible for writing detailed requirements documents and design specifications. In the early stages of game development, Docwriter communicates with users and other agents to deeply understand and record the functional requirements and design ideas of the game, providing a detailed blueprint for subsequent steps.
CodeWriter: Responsible for writing source code according to the design document. CodeWriter uses advanced programming techniques and algorithms to transform the requirements provided by Docwriter into specific code implementations. The "reasoning-action" mode of ReAct in the Sky Framework effectively improves the programming efficiency and accuracy of CodeWriter.
CodeTester: After the source code is initially written, CodeTester will automatically generate and run a series of test cases to ensure the correctness and stability of the code function. CodeTester uses various defined tools to construct test cases and execute corresponding test cases to locate and provide feedback on potential problems in the code to improve code quality.
CodeReviewer: Responsible for conducting a comprehensive review of the code written by CodeWriter to ensure that the code meets best practices and quality standards. CodeReviewer will not only check the function implementation of the code, but also pay attention to the readability and maintainability of the code and make optimization suggestions.
Through Cangqiong’s modular design and multi-agent intelligent scheduling, these role agents can efficiently divide work, collaborate with each other, and continuously iterate Optimize and finally complete the game development tasks. Specifically, the task chain (Chain) mechanism effectively connects various subtasks, and the information interaction between agents is seamlessly connected through Planner scheduling, improving development efficiency and code quality.
In the future, the Beihang University School of Software team plans to continue to expand the application fields of Qiongqiong and conduct in-depth research on the application potential of multi-agent systems in other complex tasks.
The above is the detailed content of Tianjin University and Beihang University are deeply involved in Huawei's 'Cangjie” project and launched the first AI agent programming framework 'Cangqiong” based on domestic programming languages.. For more information, please follow other related articles on the PHP Chinese website!