The present thesis introduces a theory of molecular codes with respect to chemical reaction networks. To analyse cellular subsystems for codes a formalization of molecular codes has been developed and applied to a variety of biological and non-biological network models. Two different code identifying algorithms based on structural network properties, i.e. on closed sets and paths, are proposed. Both algorithms follow a brute force strategy and are computational not feasible for large networks. For the path algorithm two heuristic variants, (1) using the k-shortest paths, and (2) applying random subnetwork sampling before code analysis, are evaluated. The algorithms are applied to a number of different reaction networks modelling combustion chemistries, a planetary photo chemistry, the gene translation system, the gene regulatory network, protein complex formation, signalling by phosphorylation cascades, and two large scale biological networks obtained from public databases. Random networks have been analysed as null models. Comparing the biotic and abiotic networks shows that abiotic networks do not have the ability to realise codes, while the biochemical systems do have the ability to implement molecular codes. By identifying potential molecular codes a measure for the semantic capacity of biochemical systems is provided. Based on this notion hypotheses can be formulated with respect to the semantic capacity of biological systems, e.g. cells evolve towards higher semantic capacity, by employing subnetworks that allow for coding. The presented formalization also allows to define relations between codes, code linkage and code nesting, leading to the concept of "Systems of codes". The analysis of the phosphorylation cascade model showed that the structural code identification is not sufficient to identify all codes, but dynamics needs to be taken into account. The analysis of dynamics and other pragmatic aspects are discussed as an outlook.