Menu
Sign In Search Podcasts Libraries Charts People & Topics Add Podcast API Blog Pricing

Simon Peyton Jones

πŸ‘€ Speaker
962 total appearances

Appearances Over Time

Podcast Appearances

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

We'll generate machine code and we'll run it and we'll get a segfault.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

Now we have to backtrack from a particular test program that now crashes

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

all the way to back up the pipeline, up the pipeline, up the pipeline, up the pipeline.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

Oh, it was this pass of GHC that was faulty.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

That's super hard to do because, you know, you're getting out GDB on some runtime failure that is an indirect and perhaps distant consequence of the fact you just generated a type, you know, you had a bug in the optimizer.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

So it is amazing to have a type checker for core.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

Now, why does nobody else do this?

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

Well, it's because their intermediate language typically, and this I really am talking typically because I know of no other compiler that has this property, none, production compiler.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

Typically, they're complex syntax trees decorated with all sorts of pragma information and things hanging onto it here and there.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

And there's no type checker for it at all.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

And there's no hope of one.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

So I'm very proud of the fact that Core is statically typed.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

And I also think the most delightful thing is that the way that it is statically typed, it is an implementation of something called System F. So System F, when I said Lambda Calculus, Lambda Calculus, as Alonzo Church had it, was untyped.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

It had no type system at all.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

But Girard defined something called System F, which is a statically typed lambda calculus, a rather powerful one.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

And core is essentially System F. So he literally adopted something from the nerdy theoretical computer science, you know, logic community, logic of mathematics community, and adopted it directly in a production implementation.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

So I'm very proud of that.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

I think core is, and the fact that we can do, we have 35 years worth of development that has been not just not impeded, but actively aided by statically typed intermediate language is really a big marker in the ground.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

So Haskell embodies one key idea.

The Peterman Pod
Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

Immutability changes everything.