Posts Tagged ‘Compilers’

Compiler writers are the unsung heroes of the computer age

January 13, 2019

It recently dawned on me that everything we do with a computer, from making friends on Facebook, to running weather forecasting models, to rendering images on a browser, gets compiled down to a set of simple operations that a CPU executes at amazingly fast speeds. Without compilers and compiler writers most of the amazing things we do today with computers would not be possible.

I bow in honor of Alan Turing, who recognized that all computing can be done using a set of simple operations. Turing made the revolutionary breakthrough. Turing made today’s computers possible.

I bow in honor of the person or persons who recognized that high level languages can be created and broken down into – compiled into – the simple operations that Turing identified.

I bow in honor of compiler writers, who have devised ways to produce assembly code (CPU instructions) that are even more efficient than hand-crafted code.

I bow in honor of CPU makers; their machines are Turing’s soul incarnate in computers.

Computer Science Algorithms are way better than Mathematical Theorems

January 24, 2015

I see a great deal of beauty in mathematics. There is much beauty in a well-described, step-by-step proof of a theorem.

Lately I have been learning algorithms for parsing and compilers from a pair of marvelous books. [1] I think the author is one of the best technical writers in the world, which makes learning very enjoyable. As I learn the parsing and compiler algorithms described in the books, the same sense of beauty rises up inside me as with a good math theorem proof.

So both Mathematical theorems and Computer Science algorithms have tremendous beauty. Nonetheless, I think that Computer Science algorithms are way better than Mathematical theorems. Here’s why:

In Mathematics there is a tightly constrained framework in which one operates. There is a limited set of building blocks (axioms) and rules that one uses to perform work. Conversely, in Computer Science algorithms there is no such finite, well-defined set of building blocks and rules. Although there are commonly used techniques – recursion, closure, induction, etc. – there are an infinite number of concepts that may be used to create an algorithm. That infinite variety provides enormous power and complexity, and requires great creativity and ingenuity, and is why I think Computer Science algorithms are way better than Mathematical theorems.

[1] “Parsing Techniques” by Dick Grune et al, “Modern Compiler Design” by Dick Grune et al.