hometue wrote:One good example will be assembly. I don't care how hard it seems like, its much easier than writing a bunch of numbers that no one understands.
But there are people who do understand. I did a lot of hand assembly yesterday for a homebrew processor; you get the hang of the machine code quite quickly. Assembly isn't really anything other than names for opcodes. I don't really see it as an idea any different from the idea of a programmable computer. As a designer, you can't create a processor without creating mnemonics for the opcodes - it's a human thing, we name things.
hometue wrote:And I am pretty sure it can be considered quite old compared to other languages.
As far as languages are concerned, people were expressing thoughts in terms of what could be considered functional programming back in the 1930s and 40s [Alonzo Church and his lambda calculus], and the foundations of the mechanics of logic programming were invented back in the 1920s [Herbrand's PhD thesis of 1929 - but it took until the 1970s before logic was given a computational interpretation].
With regards to hardware implementation, Charles Babbage used the carry select adder in his analytical engine (1834-1871) which is long before students of digital design were taught it as an improvement on the ripple carry adder.
Finally, in the introduction to
The pi-calculus. A Theory of Mobile Processes by Sangiorgi and Walker, the late Robin Milner wrote:
The notion of calculational process, or algorithm, is a lot older than computing technology; so, oddly enough, a lot of computer science existed before modern computers.