Patent classifications
G06F8/72
DETECTING DUPLICATED CODE PATTERNS IN VISUAL PROGRAMMING LANGUAGE CODE INSTANCES
In various embodiments, a process for detecting duplicated code patterns in visual programming language code instances includes analyzing a repository of graph based visual programming language code instances and detecting a similar code portion pattern duplicated among a group of graph based visual programming language code instances included in the repository of graph based visual programming language code instances including by using an index and tokenizing a flow corresponding to at least one graph based visual programming language code instance in the group of graph based visual programming language code instance. The process includes visually indicating elements belonging to the detected similar code portion pattern within a visual representation of at least one of the group of graph based visual programming language code instances.
Translating clusters of a monolith application to microservices
Methods, systems, and computer program products for translating clusters of a monolith application to microservices are provided herein. A computer-implemented method includes obtaining a plurality of candidate microservices for refactoring a monolith application, each candidate microservice including one or more of a plurality of software classes of the monolith application; analyzing the monolith application to identify one or more software functions in the plurality of software classes to expose as one or more application programming interfaces; automatically isolating non-overlapping software functions of the monolith application between the plurality of candidate microservices; converting source code corresponding to the identified one or more software functions into a standardized application programming interface format based at least in part on the isolating; and using the converted source code to generate a plurality of deployable microservices corresponding to the plurality of candidate microservices.
Translating clusters of a monolith application to microservices
Methods, systems, and computer program products for translating clusters of a monolith application to microservices are provided herein. A computer-implemented method includes obtaining a plurality of candidate microservices for refactoring a monolith application, each candidate microservice including one or more of a plurality of software classes of the monolith application; analyzing the monolith application to identify one or more software functions in the plurality of software classes to expose as one or more application programming interfaces; automatically isolating non-overlapping software functions of the monolith application between the plurality of candidate microservices; converting source code corresponding to the identified one or more software functions into a standardized application programming interface format based at least in part on the isolating; and using the converted source code to generate a plurality of deployable microservices corresponding to the plurality of candidate microservices.
Code simplification system
Disclosed herein are various embodiments a code simplification system. An embodiment operates by receiving an identification of both a first code object and a second code object directed to producing a similar result. It is determined that the first code object and the second code object each include code subsets that correspond to each other. Differences between the code subsets of the first code object and the second code object are identified. The differences may include at least one of: a different ordering of the plurality of code subsets between the first code object and the second code object, or an additional code subset in the first code object that is not included in the second code object. A notification is provided with the differences, and input is received indicating an action to take by which either the first code object or the second code object are updated.
Code simplification system
Disclosed herein are various embodiments a code simplification system. An embodiment operates by receiving an identification of both a first code object and a second code object directed to producing a similar result. It is determined that the first code object and the second code object each include code subsets that correspond to each other. Differences between the code subsets of the first code object and the second code object are identified. The differences may include at least one of: a different ordering of the plurality of code subsets between the first code object and the second code object, or an additional code subset in the first code object that is not included in the second code object. A notification is provided with the differences, and input is received indicating an action to take by which either the first code object or the second code object are updated.
REFACTORING AND/OR REARCHITECTING SOURCE CODE USING MACHINE LEARNING
Implementations are described herein for leveraging machine learning to automate source code refactoring and/or rearchitecting. In various implementations, one or more ground truth boundaries may be removed from one or more boundaried source code files to produce one or more boundary-less source code files. One or more of the boundary-less source code files may be processed using a machine learning model to predict one or more candidate boundaries for reintroduction into the one or more boundary-less source code files. The one or more ground truth boundaries may be compared with the one or more predicted candidate boundaries. The machine learning model may be trained based on the comparing.
REFACTORING AND/OR REARCHITECTING SOURCE CODE USING MACHINE LEARNING
Implementations are described herein for leveraging machine learning to automate source code refactoring and/or rearchitecting. In various implementations, one or more ground truth boundaries may be removed from one or more boundaried source code files to produce one or more boundary-less source code files. One or more of the boundary-less source code files may be processed using a machine learning model to predict one or more candidate boundaries for reintroduction into the one or more boundary-less source code files. The one or more ground truth boundaries may be compared with the one or more predicted candidate boundaries. The machine learning model may be trained based on the comparing.
Monitoring stack memory usage to optimize programs
A computer system determines stack usage. An intercept function is executed to store a stack marker in a stack, wherein the intercept function is invoked when a program enters or exits each function of a plurality of functions of the program. A plurality of stack markers are identified in the stack and a memory address is determined for each stack marker during execution of the program to obtain a plurality of memory addresses. The plurality of memory addresses are analyzed to identify a particular memory address associated with a greatest stack depth. A stack usage of the program is determined based on the greatest stack depth. Embodiments of the present invention further include a method and program product for determining stack usage in substantially the same manner described above.
Monitoring stack memory usage to optimize programs
A computer system determines stack usage. An intercept function is executed to store a stack marker in a stack, wherein the intercept function is invoked when a program enters or exits each function of a plurality of functions of the program. A plurality of stack markers are identified in the stack and a memory address is determined for each stack marker during execution of the program to obtain a plurality of memory addresses. The plurality of memory addresses are analyzed to identify a particular memory address associated with a greatest stack depth. A stack usage of the program is determined based on the greatest stack depth. Embodiments of the present invention further include a method and program product for determining stack usage in substantially the same manner described above.
Systems and methods for providing stable deployments to mainframe environments
A method for providing mainframe codebase maintenance and security is performed by a mainframe deployment device. The method includes importing the mainframe codebase from a mainframe device. The mainframe codebase includes at least one code region including at least one code element. The method also includes identifying the code regions and initializing a branch repository corresponding to at least one identified code region. The method includes querying the imported mainframe codebase to identify, for the code elements, a user identifier and a source region. The method includes populating the branch repositories with the code elements based on the respective source region. The method includes applying a code quality scan to the populated branch repositories to identify a code quality issue in the respective code elements. The method also includes submitting at least one code element having an identified code quality issue to a user device correct the code quality issues.