Programming Paradigms
At first, there is mathematics. And then there is computation. Computation can be expressed in different ways: e.g. functional and procedural. Functional computation can be implemented by functional programming languages such as Haskell, while procedural computation can be implemented by procedural programming languages such as C/C++.
Functional computation can be traced back to Lambda calculus, created by Alonzo Church in the 1930s. It carries out computation by applying transformation repeatedly. Pure functional programming languages use no variable and do not have assignment statement.
On the other hand, procedural computation can be traced back to Turing Machine created by Alan Turing in the 1930s as well. It sequentially carries out instructions and use variables to present memory locations, and assignments to change the content of those locations.
In a sense, the functional approach let us program at a more abstract level than the procedural approach.
Besides functional and procedural, there is also logic programming, which is more about computing truth instead of carrying out tasks. There are two schools of logic programming: rules based and neural network based. The rule based approach initially took the lead (e.g. Prolog) but eventually came to a deadend. With the advancement in hardware, the neural network approach turned the tables. It surpasses all expectation and now Artificial Intelligence (AI) becomes part of our daily life.
Reference
- Programming Languages Principles and Practice, Kenneth C. Louden
- Artificial Intelligence in Byte-sized Chunks, Peter J. Bentley, 2024
Posted: 2026-01-12
Previous