IP Library Granted Patent US 12,164,914
Granted Patent B2
US 12,164,914 · App. 17/752,757 · Granted Dec 10, 2024

Removing inactive code to facilitate code generation

Inventors: Edoardo Vacchi (Milan, IT); Paolo Antinori (Milan, IT)
Assignee: Red Hat, Inc.
G06F8/72
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,164,914
App. No.
17/752,757
Granted
Dec 10, 2024
Kind
B2
Abstract

Removing inactive components to facilitate code generation. A first file that includes a first group of components in a first notation syntax and a second file that includes a second group of components in a second notation syntax is received. A first set of inactive components of the first group of components is identified. A second set of inactive components of the second group of components is identified. The components of the first group of components and the second group of components that are not marked as inactive components are active components. Code to be executed based on the active components is generated.

Claims (53)

1. A method comprising:

receiving, by a computing system comprising one or more processor devices of one or more computing devices, a first file comprising a first group of components written in accordance with a first notation syntax and a second file comprising a second group of components written in accordance with a second notation syntax, wherein a first component in the first group of components comprises a reference to a second component of the second group of components;

identifying a first set of inactive components of the first group of components by iteratively applying a plurality of inputs to an initial component in the first group of components and determining that a downstream component in the first group of components is not referenced in response to the plurality of inputs;

identifying a second set of inactive components of the second group of components based on the reference to the second component of the second group of components, wherein the first group of components and the second group of components that are not in the first set of inactive components and the second set of inactive components are active components; and

generating computer-executable code operable to be subsequently executed based on the active components by a business process automation platform, wherein the computer-executable code omits the first set of inactive components and the second set of inactive components and includes the active components.

2. The method of claim 1 , further comprising:

identifying the second set of inactive components of the second group of components based at least in part on contextual information about the first group of components.

3. The method of claim 1 , wherein an inactive component of the first set of inactive components or the second set of inactive components is not referenced by another component in the first group of components and the second group of components.

4. The method of claim 1 , wherein the identifying the first set of inactive components further comprises:

identifying the initial component of the first group of components;

applying the plurality of inputs to the initial component and identifying components referenced by the initial component based on the plurality of inputs;

iteratively applying pluralities of inputs to each of the components referenced by the initial component to identify a group of first downstream components; and

identifying the first set of inactive components by determining that the first set of inactive components are not in the group of first downstream components.

5. The method of claim 1 , wherein the identifying the second set of inactive components further comprises:

applying an input to the second component of the second group of components wherein the input is an output of the first component, and identifying components referenced by the second component based on the input;

iteratively applying pluralities of inputs to each of the components referenced by the second component to identify a group of second downstream components; and

identifying the first set of inactive components by determining that the second set of inactive components are not in the group of second downstream components.

6. The method of claim 1 , wherein at least one of the first notation syntax and the second notation syntax are at least one of a Decision Modeling and Notation (DMN) syntax, Business Process Model Notation (BPMN) syntax, Predictive Model Markup Language (PMML) syntax, and Drools Rule Language (DRL) syntax.

7. The method of claim 1 , further comprising:

determining that that a modification has been made to the first file; and

updating the first set of inactive components and the second set of inactive components.

8. The method of claim 1 , further comprising:

determining that a modification has been made to the second file; and

updating the second set of inactive components.

9. The method of claim 1 , wherein:

identifying the first set of inactive components of the first group of components comprises identifying the first set of inactive components via a first elimination process operable to process a first data flow identified in the first notation syntax; and

identifying the second set of inactive components of the second group of components comprises identifying the second set of inactive components via a second elimination process operable to process a second data flow identified in the second notation syntax.

10. A computing system comprising:

one or more computing devices, the one or more computing devices comprising one or more processor devices, the one or more processor devices to:

receive a first file comprising a first group of components written in accordance with a first notation syntax and a second file comprising a second group of components written in accordance with a second notation syntax, wherein a first component in the first group of components comprises a reference to a second component of the second group of components;

identify a first set of inactive components of the first group of components by iteratively applying a plurality of inputs to an initial component in the first group of components and determining that a downstream component in the first group of components is not referenced in response to the plurality of inputs;

identify a second set of inactive components of the second group of components based on the reference to the second component of the second group of components, wherein the first group of components and the second group of components that are not in the first set of inactive components and the second set of inactive components are active components; and

generate computer-executable code operable to be subsequently executed based on the active components by a business process automation platform, wherein the computer-executable code omits the first set of inactive components and the second set of inactive components and includes the active components.

11. The computing system of claim 10 , wherein the one or more processor devices further:

identify the second set of inactive components of the second group of components based at least in part on contextual information about the first group of components.

12. The computing system of claim 10 , wherein an inactive component of the first set of inactive components or the second set of inactive components is not referenced by another component in the first group of components and the second group of components.

13. The computing system of claim 10 , wherein the one or more processor devices further:

identify the initial component of the first group of components;

apply the plurality of inputs to the initial component and identifying components referenced by the initial component based on the plurality of inputs;

iteratively apply pluralities of inputs to each of the components referenced by the initial component to identify a group of first downstream components; and

identify the first set of inactive components by determining that the first set of inactive components are not in the group of first downstream components.

14. The computing system of claim 10 , wherein the one or more processor devices further:

apply an input to the second component of the second group of components wherein the input is an output of the first component, and identifying components referenced by the second component based on the input;

iteratively apply pluralities of inputs to each of the components referenced by the second component to identify a group of second downstream components; and

identify the first set of inactive components by determining that the second set of inactive components are not in the group of second downstream components.

15. The computing system of claim 10 , wherein the one or more processor devices further:

determine that that a modification has been made to the first file; and

update the first set of inactive components and the second set of inactive components.

16. A non-transitory computer-readable storage medium that includes executable instructions to cause one or more processor devices of one or more computing devices to:

receive a first file comprising a first group of components written in accordance with a first notation syntax and a second file comprising a second group of components written in accordance with a second notation syntax, wherein a first component in the first group of components comprises a reference to a second component of the second group of components;

identify a first set of inactive components of the first group of components by iteratively applying a plurality of inputs to an initial component in the first group of components and determining that a downstream component in the first group of components is not referenced in response to the plurality of inputs;

identify a second set of inactive components of the second group of components based on the reference to the second component of the second group of components, wherein the first group of components and the second group of components that are not in the first set of inactive components and the second set of inactive components are active components; and

generate computer-executable code operable to be subsequently executed based on the active components by a business process automation platform, wherein the computer-executable code omits the first set of inactive components and the second set of inactive components and includes the active components.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2022
From: VACCHI, EDOARDO; ANTINORI, PAOLO
To: RED HAT, INC.
Reel/Frame 060007/0104 →
Continuity (1)
Related Publication 20230385056A1 · Nov 30, 2023