A method for execution by a computing device, the method comprises:
- analyzing, by the computing device, operational code to determine a plurality of identifiers used within the operational code and identify different programming languages within the operational code, wherein the analyzing further includes:
- dividing the operational code into a plurality of code sections based on the different programming languages;
- for each code section of the plurality of code sections, ascertaining identifiers of the plurality of identifiers based on the corresponding programming language of the different programming languages;
- determining, for a code section of the plurality of code sections, that the one or more potential features corresponds to an emulator or a programming language converter;
- testing the one or more potential features based on a corresponding feature test suite;
- and
- when the testing verifies that the one or more potential features corresponds to an emulator or the programming language converter, flagging a corresponding portion of the code section as including the emulator or the programming language converter such that, when the operational code is reprogrammed into a desired programming language, the emulator or the programming language converter is not reprogrammed;
- and
- grouping, by the computing device, like identifiers based on a relational aspect of the identifiers to produce a plurality of identifier groups;
- for one or more identifier groups of the plurality of identifier groups:
- determining, by the computing device, one or more potential features of the one or more identifier groups, wherein a feature corresponds to an aspect of the operational code;
- testing, by the computing device, the one or more potential features based on a corresponding feature test suite to produce feedback regarding meaningfulness of the one or more potential features, wherein the meaningfulness of a feature indicates the degree to which it is likely the feature is a viable aspect of the operational code;
- when the meaningfulness is above a threshold, adding, by the computing device, the one or more potential features as one or more meaningful features to a feature set;
- and
- when the meaningfulness is at or below the threshold, adjusting, by the computing device, one or more of:
- the relational aspect;
- and
- one or more testing parameters used to generate the corresponding feature test suite;
- and
- reprogramming the operational code into the desired programming language.