Ever since sitting in on Sussman’s classes two years ago, I’ve had “Semantics vs Syntax” on my list of things to understand. It still floats near the top of that list because of its relevance to many of the other problems I am interested in, namely the principal-agent problem, the question of what differentiates computation from other types of thinking and also the true nature of web2.0 technologies.

This last idea, that there are many ways of thinking and that “computation” is but one of them, is close to the original context in which the sematics / syntax comparison was brought up in Sussman’s class. The thesis is that the field of computer science has spent a lot of effort tackling syntactical challenges and not enough time understanding semantic shortcomings.

The way I understand it, it was the desire for proof which led to this bias – computer scientists in the mathematicians’ deductive tradition required closed worlds for mechanisms of inductive proof to hold up, so they closed those worlds in pursuit of proof. Dijkstra is an arch typical thinker in that tradition, and the innovations resulting include typed languages and automatic theorem provers.

—

To the extent math refers to reality, we are not certain; to the extent we are certain, math does not refer to reality. – Albert Einstein

One can never escape the need for interpretation when communicating with abstract symbols. This need gives rise to uncertainty, be it uncertainty about correctness or uncertainty about the optimality of the chosen representation.