1. A method comprising: mapping, by a computing platform, a first program to a context-free grammar, the context free grammar being at least a 4-tuple grammar and induced from a control-flow graph; performing, by the computing platform, grammar transformations on the context-free grammar to produce a transformed context-free grammar representing the first program, the transformed context free grammar being at least a 4-tuple grammar, the transformed context free grammar including separating function parameters and variables; and constructing, by the computing platform, a second program having a program structure different than a program structure of the first program from the transformed context-free grammar.