No video

Into the Core - Squeezing Haskell into Nine Constructors by Simon Peyton Jones

  Рет қаралды 39,449

Erlang Solutions

Erlang Solutions

Күн бұрын

Keynote talk from Erlang USer Conference 2016 www.erlang-fact...
Erlang and Haskell are childhood friends who grew up together. Throughout the years, they have learnt a lot from each other. And just because they have become adults does not mean the learning stops.
GHC translates all of Haskell into a tiny but super-expressive intermediate language called Core, does a lot of optimisations on Core, and then generates executable code. Core is statically typed, making GHC one of the very few production compilers that is statically typed all the way through to code generation. 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.
In this talk I’ll take you on a journey into Core and its design choices. I’ll sketch Core’s type system, and the optimisations that GHC implements in Core, including let-floating, strictness analysis, specialisation, inlining, and the case-of-case transformation.
Haskell and Erlang are both functional languages, albeit with significant differences (strict vs lazy, untyped vs typed). I hope that the talk may lead to dialogue about how these similarities and differences show up in a compiler.

Пікірлер: 39
@Yetipfote
@Yetipfote 3 жыл бұрын
14:48 "I just wanted to build a sweaty compiler." - Simon Peyton Jones, 2016
@Yetipfote
@Yetipfote 3 жыл бұрын
"Immutability changes everything" me, an intellectual with a sense of humor: *exhales audibly through my nose*
@Ryan-xq3kl
@Ryan-xq3kl 2 жыл бұрын
translation for regular people: "not being able to change anything changes everything"
@neilbedwell7763
@neilbedwell7763 7 жыл бұрын
added Simon Peyton Jones to the list of my heroes
@_Huperniketes_
@_Huperniketes_ 7 жыл бұрын
Whoever had the bright idea to zoom the camera out at 56:24…your camera direction is not appreciated.
@JonathanGonzalez-mx5bp
@JonathanGonzalez-mx5bp 8 жыл бұрын
SIMON PEYTON JONES!
@ietsization
@ietsization 2 жыл бұрын
I watched this video last year, after just completing a master level course about functional programming. I should've been as ready as I ever would be to understand this and I didn't. Yet, exactly one year later it suddenly all clicks! Feeling very satisfied.
@madgenvideos7589
@madgenvideos7589 7 жыл бұрын
8:08 it's like he's about to say "BUT IT AIN'T RAGHT"
@MrPopinjay
@MrPopinjay 8 жыл бұрын
Is there a version where we can see the slides more clearly?
@Rozenkrantzz
@Rozenkrantzz 7 жыл бұрын
On the website linked in the description, if you click on Simon's picture, you can find a PDF of the slides
@charliebevis7719
@charliebevis7719 7 жыл бұрын
They are here: www.erlang-factory.com/static/upload/media/1488806820775921euc2016intothecoresimonpeytonjones.pdf
@arhyth
@arhyth 6 жыл бұрын
this makes a lot of sense and i see this too in Elixir where much of the language desugars to a very minimal API surface. it’s one of the things that make elixir a joy to program in.
@wliaputs
@wliaputs 3 жыл бұрын
He's very enthusiastic and I like it
@heteroskedasticity99
@heteroskedasticity99 8 жыл бұрын
Slides please.
@syedabdul4515
@syedabdul4515 8 жыл бұрын
Not able to see the slides
@Rozenkrantzz
@Rozenkrantzz 7 жыл бұрын
On the website linked in the description, if you click on Simon's picture, you can find a PDF of the slides
@charliebevis7719
@charliebevis7719 7 жыл бұрын
www.erlang-factory.com/static/upload/media/1488806820775921euc2016intothecoresimonpeytonjones.pdf
@ratfuk9340
@ratfuk9340 6 ай бұрын
Erlang doesn't have null? Why?
@shamrockfrost1856
@shamrockfrost1856 8 жыл бұрын
I was actually thinking of making a (toy) language that targets core!
@mc4ndr3
@mc4ndr3 7 жыл бұрын
Link to slides? They're a bit zoomed out in this recording
@ErlangSolutions
@ErlangSolutions 7 жыл бұрын
Hi Andrew, great question! You can find the slides here: www.erlang-factory.com/euc2016/simon-peyton-jones
@changshengwu6795
@changshengwu6795 3 жыл бұрын
How I wish the slides could look bigger
@Dus3826
@Dus3826 4 жыл бұрын
Enthusiastic presentation, thank you ! Otherwise I think it would have become boring for me :)
@florianwicher
@florianwicher 4 жыл бұрын
He *always* uses Comic Sans for his presentations. What a troll 😄
@Yetipfote
@Yetipfote 3 жыл бұрын
he definitely is not a front-end developer ^^
@AlexRodriguez-gb9ez
@AlexRodriguez-gb9ez 3 ай бұрын
Simon Peyton Jones right next to Isaac Newton
@glialcell6455
@glialcell6455 7 жыл бұрын
Wait isn't LLVM also a statically typed IR?
@hannessteffenhagen61
@hannessteffenhagen61 5 жыл бұрын
It is, although it is far less useful in LLVM IR because there most things are statements, for which it is much easier to do transformations that are wrong but type correct than in Core where most things are expressions.
@CherishedMe
@CherishedMe 5 жыл бұрын
What's a lambda?
@Yetipfote
@Yetipfote 3 жыл бұрын
a function. ps: that's not the whole story but sufficient for a start.
@zloidooraque0
@zloidooraque0 7 жыл бұрын
inlining ftw.. storm in a glass
@FlameHue
@FlameHue 8 жыл бұрын
How the fuck do I do manual zoom to see the slides if I'm watching this on KZfaq. Get it right already, it's 2016, and you people are programmers.
@elleimhoff
@elleimhoff 8 жыл бұрын
I use the Accessibility > Zoom in OSX for videos like this and for CodeMesh talks. Unfortunately, the resolution is too low on this video to work at the end.
@AndrewConsroe
@AndrewConsroe 8 жыл бұрын
Not sure if the example is identical at the end, but this paper covers it in sections 4.2 & 4.3 www.microsoft.com/en-us/research/wp-content/uploads/2016/04/sequent-calculus-icfp16.pdf
@charliebevis7719
@charliebevis7719 7 жыл бұрын
slides here: www.erlang-factory.com/static/upload/media/1488806820775921euc2016intothecoresimonpeytonjones.pdf
@bocckoka
@bocckoka 6 жыл бұрын
I just use this to not kill myself when writing MATLAB instead of heroin.
@jirehjirehjireh
@jirehjirehjireh 2 жыл бұрын
Simon Peyton Jones is the cutest pointy headed academic hahaha
How things are, and how they could be by Fred Hebert
46:53
Erlang Solutions
Рет қаралды 4,8 М.
Into the Core Squeezing Haskell into nine Constructors - Simon Peyton Jones | ZuriHac 2022
1:27:37
OST – Ostschweizer Fachhochschule
Рет қаралды 2,8 М.
The Joker kisses Harley Quinn underwater!#Harley Quinn #joker
00:49
Harley Quinn with the Joker
Рет қаралды 13 МЛН
managed to catch #tiktok
00:16
Анастасия Тарасова
Рет қаралды 47 МЛН
My Cheetos🍕PIZZA #cooking #shorts
00:43
BANKII
Рет қаралды 28 МЛН
Before VS during the CONCERT 🔥 "Aliby" | Andra Gogan
00:13
Andra Gogan
Рет қаралды 10 МЛН
Simon Peyton-Jones: Escape from the ivory tower: the Haskell journey
1:04:16
Churchill College, University of Cambridge
Рет қаралды 160 М.
Simon Peyton Jones - Compiling without continuations
22:17
ECOOPLDI 2017
Рет қаралды 4,6 М.
GHC Core Optimisations - Sebastian Graf - 2023 GHC Contributor's Workshop
1:38:27
Hashing Modulo Alpha Equivalence • Simon Peyton Jones • YOW! 2021
48:01
"Building Haskell Programs with Fused Effects" by Patrick Thomson
40:44
Strange Loop Conference
Рет қаралды 17 М.
Category Theory for the Working Hacker by Philip Wadler
50:52
Lambda World
Рет қаралды 92 М.
Haskell is Not For Production and Other Tales
38:19
Linux.conf.au 2016 -- Geelong, Australia
Рет қаралды 100 М.
The Joker kisses Harley Quinn underwater!#Harley Quinn #joker
00:49
Harley Quinn with the Joker
Рет қаралды 13 МЛН