University of Cambridge > Talks.cam > Cambridge University Computing and Technology Society (CUCaTS) > Inside the beast: GHC’s intermediate lambda language

Inside the beast: GHC’s intermediate lambda language

Add to your list(s) Download to your calendar using vCal

If you have a question about this talk, please contact Swaraj Dash.

GHC translates all of Haskell into a tiny intermediate language called Core, does a lot of optimisations on Core, and then generates executable code. In this talk I’ll take you on a journey into Core, with several goals. First, if you ever do performance-debugging of a Haskell program you may well find yourself staring at Core dumps to understand the program that the computer is executing (it may look nothing like the one you wrote!). Second, one way to extend GHC is to write a Core-to-Core plugin to do some cool optimisation or transformation that you want; and you can only do that if you understand Core.

Lastly, even if you want to do none of these things, I think you may enjoy the adventure. Core is a tiny but super-expressive language that can express all of Haskell, including all the types, and more beside. It pulls off this trick by drawing directly on System F, a mathematical calculus from type theory. Functional programming is amazing: serious theory leads directly to beautiful implementations.

This talk is part of the Cambridge University Computing and Technology Society (CUCaTS) series.

Tell a friend about this talk:

This talk is included in these lists:

Note that ex-directory lists are not shown.

 

© 2006-2020 Talks.cam, University of Cambridge. Contact Us | Help and Documentation | Privacy and Publicity