Author Archives: Dan Ghica

About Dan Ghica

Reader in Semantics of Programming Languages // University of Birmingham // https://twitter.com/danghica // https://www.facebook.com/dan.ghica

Moving sites

From now on new posts will appear on my Blogger site: http://danghica.blogspot.co.uk/. This is for both technical (the comment system on this site, the occasional crashes) and personal (I may want to post personal or political opinions which need not … Continue reading

Posted in General | Leave a comment

Categorical semantics of digital circuits

Isn’t it funny that the world of programming languages is defined by syntax while the world of circuit design is defined by semantics? One can never be sure, but it seems to me that when people design software they imagine the … Continue reading

Posted in Geometry of Synthesis | 1 Comment

Why is lambda calculus named after that specific Greek letter? Do not believe the rumours!

A common myth in theoretical computer science is that the ‘λ’ in λ-calculus comes from some kind of typographical error, where the intended notation was a circumflex accent ŷ.M, which became a caret ^y.M then finally a lambda λy.M. At … Continue reading

Posted in General, programming languages, teaching | Leave a comment

So what is a “pure programming language” anyway?

This is one of those questions that is inflammatory enough to start a flame war, so it should make a good title for a blog post. But instead of feeding the flames I want to pour some water or whatever … Continue reading

Posted in programming languages, system level semantics | Leave a comment

Learn OCaml!

I have been teaching OCaml to first year undergraduate students for a few years now. Why not share it with the world? To access the course follow the link at the bottom of the page. Here is what you will … Continue reading

Posted in General | Leave a comment

Compilers as lazy denotational interpreters

This year I had the pleasure to teach, for the first time, a course on compilers. I have been doing research on compilers for a while now but I suppose I never really asked myself seriously “what is a compiler?”. … Continue reading

Posted in teaching | Leave a comment

A short fable of software engineering vs. regular engineering

An acquaintance recently took up an assembly line job with McLaren automotive — the people who make F1 and luxury sports cars. Before this gig, he used to work from his garage doing custom body and paint work, and developed … Continue reading

Posted in General | 2 Comments

Computability: The Greatest Law of Physics

Wigner famously declared mathematics to be “unreasonable effective” in the natural sciences. It is indeed something magical about the fact that if we have a mathematical theory and some mathematically representable aspect of reality then we can carry out abstract, … Continue reading

Posted in armchair philosophy | 1 Comment

A simple proof checker for teaching

For the last few years I have been teaching functional programming to first year students. One of the main benefits of using functional programming is that you can prove simple, but non-trivial, properties of simple programs, for example, that the … Continue reading

Posted in General | Leave a comment

What things compute?

I suppose we can agree that computers compute. We know that they do that because we make them do that. We have a program, on paper or in our head, and we have certain facilities to load that program into the … Continue reading

Posted in anticomputationalism | 2 Comments