3 ms·
> programming fundamentals from one language to another, But the fundamentals of different classes of programming languages differ. For instance, Haskell's mod
by vishnugupta 5y ago
> programming fundamentals from one language to another,
But the fundamentals of different classes of programming languages differ. For instance, Haskell's model of computation is not Turing machine but a G-Machine. It's a different matter that G-Machine and Turing machine are equivalent and that doesn't mean learning one is sufficient to understand the other. There is very little that can be transferred between the two.
To take another example, Javascript supports continuation passing style coding where as Java didn't until very recently.
- urthor 5y agoI think this goes to the core of how do you teach programming. Can you teach "programming" without conveying a fundamental model of how the machine operates. Should you? Because how the machine operates is very simple. Fundamental units of state are read from memory to an evaluator, evaluated to extract meaning, and this can result in units of state being written to/assigned depending on certain conditions. Data structures are a complex arrangement of state that has meaning other than the literal evaluation of said fundamental units. Algorithms are logically proven concepts represented in state. Compilers are a tool for converting "abstracted instructions designed for humans to work quickly in" into operations supported in hardware. How each language abstracts it is pretty secondary. There are so many unanswered questions in programming education. "Whether you should attempt to teach the model of fundamental state" to all novice programmers, or just a few shorthand rules, is the biggest.