Looking for breakthrough ideas for innovation challenges? Try Patsnap Eureka!

Python code change reminding method on basis of abstract syntax tree node change extraction

An abstract syntax tree and node technology, applied in the field of computer and software evolution analysis, can solve the problems of lack of software evolution analysis, unable to prompt the type of code change, etc., to achieve the effect of improving controllability

Active Publication Date: 2015-12-16
NANJING UNIV
View PDF4 Cites 38 Cited by
  • Summary
  • Abstract
  • Description
  • Claims
  • Application Information

AI Technical Summary

Problems solved by technology

The present invention aims to solve the existing problems such as lack of software evolution analysis for Python language, inability to prompt possible code change types, etc., and then guide the management of software life cycle, improve the controllability of software evolution, so that software can be better controlled Quality of products

Method used

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
View more

Image

Smart Image Click on the blue labels to locate them in the text.
Viewing Examples
Smart Image
  • Python code change reminding method on basis of abstract syntax tree node change extraction
  • Python code change reminding method on basis of abstract syntax tree node change extraction
  • Python code change reminding method on basis of abstract syntax tree node change extraction

Examples

Experimental program
Comparison scheme
Effect test

Embodiment Construction

[0051] The inventive method first collects the source codes of two different version programs of the same Python software through software version control systems such as CVS; then carries out lexical analysis and syntax analysis to the two version source programs to generate corresponding abstract syntax trees; then matches the two An abstract syntax tree, looking for the changed node and obtaining its context information, combined with the basic tree editing operation performed on the changed node, marking the change type of the node, and using the tuple δ=(node ​​identifier, change type) to record the node’s change status; finally, the sequence of change tuples generated by a commit is aggregated into transactions, training sets a and b are constructed, and the FP-growth algorithm is used to mine the frequent itemsets in the change tuples and generate corresponding association rules to identify Associated code blocks and associated change types in a program to assist develop...

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to View More

PUM

No PUM Login to View More

Abstract

The invention provides a Python code change reminding method based on abstract syntax tree node change extraction. The method comprises the following steps of: (1) obtaining source code of different-version programs of the same software; (2) generating abstract syntax trees corresponding to two versions of source programs; (3) matching the abstract syntax trees to obtain a change node, and combining change node context information to mark the node change type; (4) gathering change tuples into transactions to construct a training set; (5) mining the association relationship in the change tuples by using a data mining technology; and (6) reminding a developer of possibly occurring change positions and possible change types in the according to the programs mined association relationship. The Python code change reminding method solves the problems that in the prior art, the possible code change type cannot be reminded due to the lack of software evolution analysis aiming at the python language, and the like. The management of the software life cycle is further guided, and the software evolution controllability is improved, so that the quality of a software product can be well controlled.

Description

technical field [0001] The invention belongs to the field of computer technology, especially the field of software evolution analysis. The invention provides a Python language-oriented code change prompt method based on program abstract syntax tree node change extraction, which is used for providing auxiliary information for program change during the evolution process of Python software. Background technique [0002] Software has been evolving in its life cycle, from error correction to adding functions, etc., the analysis of software evolution can reveal the basic laws of software development, provide guidance for the management of software life cycle, in order to improve software quality, development The purpose of reliability software. A key issue in software evolution analysis is to identify the changes between different versions of the program, mine the associated codes and associated change types in the evolution information, and provide auxiliary information for the ...

Claims

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to View More

Application Information

Patent Timeline
no application Login to View More
IPC IPC(8): G06F9/445G06F17/30
Inventor 陈林林薇陈芝菲徐宝文
Owner NANJING UNIV
Who we serve
  • R&D Engineer
  • R&D Manager
  • IP Professional
Why Patsnap Eureka
  • Industry Leading Data Capabilities
  • Powerful AI technology
  • Patent DNA Extraction
Social media
Patsnap Eureka Blog
Learn More
PatSnap group products