1. A computer-implemented method for extracting knowledge embedded in source code of an application, the method comprising: receiving the source code in a programming language; extracting a plurality of knowledge elements from the source code based on predefined patterns; subdividing the knowledge elements using predefined decoding patterns; responsive to no predefined decoding pattern matching a knowledge element, creating a decoding pattern using fuzzy rules and subdividing the knowledge element using the new decoding pattern; determining knowledge attributes for the extracted knowledge elements based on target specification attributes of a desired target architecture; generating an abstract representation of the source code in a format appropriate for the desired target architecture independent of the programming language of the source code, wherein the abstract representation includes the plurality of knowledge elements; hatching a dynamic pattern when no predefined pattern matches a part of the source code, wherein the dynamic pattern is created using fuzzy-neural rules and dynamic rules and is determined to be stored in a store; and identifying the knowledge attributes for the included knowledge elements in the abstract representation.