Please log in to watch this conference skillscast.
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.
YOU MAY ALSO LIKE:
- Haskell eXchange 2021: Pro Track (Online Conference on 16th - 17th November 2021)
- Hashing Modulo Alpha Equivalence (SkillsCast recorded in May 2021)
- F# eXchange 2021 (Online Conference on 20th October 2021)
- ScalaCon 2021: November Edition (Online Conference on 2nd - 5th November 2021)
- In The Belly Of The Whale: Tales From Haskell In The Enterprise (SkillsCast recorded in May 2021)
Keynote from Simon Peyton Jones - Into the Core: Understanding GHC’s Intermediate Language
Senior Principal Researcher
Microsoft Research, Cambridge
Simon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. Simon was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages.
After two years in industry, he spent seven years as a lecturer at University College London, and nine years as a professor at Glasgow University before moving to Microsoft Research (Cambridge) in 1998.
His main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused around the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines.
More generally, he is interested in language design, rich type systems, software component architectures, compiler technology, code generation, runtime systems, virtual machines, and garbage collection. He is particularly motivated by direct use of principled theory to practical language design and implementation -- that's one reason he loves functional programming so much.