| I am Mechanical Engineering graduate pursuing my Masters in Software Systems after 10+ years of industry experience. Attack the Type System first. Do not read PhD research papers, just the practical aspects of it: - Why is it that integers I am working with are 8-bit (or 16-bit or 32-bit ...)? - What is "int x = 7;" translated into by the compiler? - How is basic arithmetic implemented in the hardware? Integers, floating point etc. - If my system has 16-bit integers, for example, how can I deal with larger numbers than what 16 bits can accommodate? Some SW implementation to hide HW limitations? Then go on to understand how more complex types are implemented etc. From there go on to things like Stack Frames and Heaps and Application Binary Interfaces. From there go on to memory clean up and why we need Garbage Collectors etc. ... To me, a Programming Language is a set of rules (enforced by a compiler or interpreter) for deterministic bits manipulation. The Type System is the core set of rules around which everything else revolves. Even lack of a Type System in a language is a Type System. |