Delta, Lambda, Pi (the fraternity of calculi)

June 28th, 2007

We recently had an internal presentation covering a variety of fundamental theories of computation that underly several important programming languages. Here are a few papers that might help explain those theories in more depth (if not the actual interpreters we developed):

The “foundational calculi” paper introduces both the lambda and pi calculus. It explains Church numerals, booleans, and data structures purely in terms of lambda expressions. It’s written by Benjamin Pierce, whose book Types and Programming Languages is one of the holy books of programming language theory.

Joe Armstrong’s thesis is especially interesting for this little insight into the politics of software development at large companies:

In February 1998 Erlang was banned for new product development within Ericsson—the main reason for the ban was that Ericsson wanted to be a consumer of software technologies rather than a producer.

They reversed this position a short time later, much to the relief of their bottom line. This case especially highlights the central role that niche programming languages (formalized industry jargon) play in realizing the dreams of businesses.

4 Responses to “Delta, Lambda, Pi (the fraternity of calculi)”

  1. Doug Says:

    Niche Programming Languages? Is that another way of saying DSL (Domain Specific Language)? Or do you see DSLs as something completely different?

  2. smangano Says:

    I think that any company that can create a programming language that embodies the very essence of their business has created a huge competitive advantage for themselves. Of course this is very hard to do and does have some downside risk. Erlang comes very close to this ideal for the telecom industry although it clearly errs on the side of being a general programming language. Such efforts should be rewarded.

  3. Kalani Thielen Says:

    Doug, it’s just another way of saying DSL (maybe with more emphasis on the D than the L).

    Sal, good point — it can be very easy to implement a compiler/interpreter for a new language, but a very complex and difficult decision for a business to seriously invest in it. If there’s money on the line it had better have indexes. ;)

  4. Choy Says:

    great papers. the second one was an easier read. but the last one was way too long to print.