1. A computer program product comprising one or more computer-readable hardware storage devices having thereon computer-executable instructions that, when executed by one or more processors of a computing system, cause the computing system to perform a method of performing build-time resolving and type checking of references, the method comprising: analyzing, prior to compilation, a first source code portion that contains a first reference to first data, the first source code portion being front-end imperative code; analyzing, prior to compilation, a second source code portion that contains a second reference to second data, the first reference and the second reference being distinct and using different semantics, the second source code portion being back-end declarative code; detecting through the pre-compilation analysis of the first source code portion and the second source code portion a directive that the first reference is to be correlated with the second reference so that the first reference to first data and the second reference to second data both refer to the same data; and in response to detecting the directive: determining a type of the first reference and determining a second type of the second reference; determining whether the first type of the first reference and the second type of the second reference are compatible types; and when the type of the first reference and the type of the second reference are compatible types, a code generation tool generating correlating code that is input to a compiler and interpretable by the compiler at a time the first source code portion, the second source code portion, and the generated correlating code are input to and complied by the compiler as allowing a value of the type of the first reference of a compiled form of the first source code to be resolved with type-checking and be passed as the same value of the type of the second reference of a compiled form of the second source code.