The field of computer science has undeniably changed the world for virtually every single person by now. Certainly for you as Hackaday reader, but also for everyone around you, whether they’re working in the field themselves, or are simply enjoying the fruits of convenience it bears. What was once a highly specialized niche field for a few chosen people has since grown into a discipline that not only created one of the biggest industry in modern times, but also revolutionized every other industry, some a few times over.

The fascinating part about all this is the relatively short time span it took to get here, and with that the privilege to live in an era where some of the pioneers and innovators, the proverbial giants whose shoulders every one of us is standing on, are still among us. Sadly, one of them, [Tony Brooker], a pioneer of the early programming language concept known as Autocode, passed away in November. Reaching the remarkable age of 94, the truly sad part however is that this might be the first time you hear his name, and there’s a fair chance you never heard of Autocode either.

But Autocode was probably the first high-level computer language, and as such played a fundamental role in the development of whatever you’re coding in today. So to honor the memory of [Tony Brooker], let’s remember the work he did with Autocode, and the leap in computer science history that it represented.

The Early Days

When it comes to ancient programming languages, Fortran and COBOL are always prime candidates to mention. Created in the late 1950s, these languages are surrounded by an almost mythical vibe. Developers much younger than the languages themselves, who have never saw a line of COBOL in the wild, will tell each other equally mythical stories about a distant relative who was once working with it in a laboratory or some other too-good-to-be-true environment.

Not that age really matters here; assembly is even older, and it is highly unlikely that it will ever lose its relevance. However, the difference is that assembly is a low-level language, while most other languages out there, including Fortran and COBOL, are high-level languages. Programming in assembly means writing in whatever instruction set a processor provides. Assembly languages are just handy mnemonics for the raw bits that the machine speaks. High-level languages on the other hand care a lot less about a processor’s instruction set, and are abstracting those details away to resonate more with the dynamics of the human mind instead.

Take a simple multiplication as example: in a typical high-level language, you’d simply write a = b * c, while in assembly, you’d write whatever the target processor itself knows about multiplication. You might load the multiplicands into dedicated registers and the CPU might have a multiplication instruction, or it might need to loop through a series of additions. You have to know how the chip works. In a high-level language, it’s going to be a compiler’s task to figure out …read more

Source:: Hackaday