HN Theater @HNTheaterMonth

The best talks and videos of Hacker News.

Hacker News Comments on
"Vellvm - Verifying the LLVM" by Steve Zdancewic

Strange Loop · Youtube · 29 HN points · 1 HN comments
HN Theater has aggregated all Hacker News stories and comments that mention Strange Loop's video ""Vellvm - Verifying the LLVM" by Steve Zdancewic".
Youtube Summary
LLVM is an industrial-strength compiler that's used for everything from day-to-day iOS development (in Swift) to pie-in-the-sky academic research projects. This makes the LLVM framework a sweet spot for bug-finding and verification technologies--any improvements to it are amplified across its many applications.

This talk asks the question: what does LLVM code mean, and, how can we ensure that LLVM-based tools (compilers, optimizers, code instrumentation passes, etc.) do what they're supposed to -- especially for safety or security critical applications? The Verified LLVM project (Vellvm) is our attempt to provide an answer.

We'll look at the LLVM intermediate representation from the point of view of programming language semantics and see how Vellvm provides a basis for developing machine-checkable formal properties about LLVM IR programs and transformation passes. Along the way, we'll get a taste of what LLVM code looks like, including some of its trickier aspects, and see (at a high level) how modern interactive theorem provers--in this case, Coq--can be used to verify compiler transformations.

No experience with LLVM or formal verification technologies will be assumed.

This is joint work with many collaborators at Penn, and Vellvm is part of the NSF Expeditions project: The Science of Deep Specifications.

Speaker: Steve Zdancewic
HN Theater Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this video.
Oct 21, 2018 · 29 points, 3 comments · submitted by espeed
VictorSCushman
We're looking at formal verification methods as part of my senior design project. For the longest time I thought formal verification was more of an afterthought, but as the project has grown, and as I've seen talks and literature showing the benefits of formal verification, I'm now in the camp that all (or at least all serious production...) languages/implementations should prioritize verification.
jewelry_wolf
When I took one of my first computer science classes, the teacher said never challenge compiler as it's always right. Check your own code. After years of practice in the industry, I'm not that naive boy anymore and I'm pretty sure every system has bug. The only difference is how many times the golden path has been verified, and how wide is that path.
lou1306
"Always right" is indeed hyperbolic, however the "never challenge compilers" is still good advice. I guess it would be very, very difficult for a human to apply the same optimization passes while introducing less bugs than a compiler would.
Type-driven development, meta languages, specs, provably correct code, and automatic code generation were some of the big overlapping themes at Strange Loop [1] this year. All the talks posted online this week [2], and I've posted links to some of the related videos below [3].

It's a good indicator that the time has come for an idea when multiple lines of research and projects from disparate domains begin converging on the same idea from different directions.

Several facets of the puzzle I've been working the last few years have converged towards this area so it's good to see that it's not just me, maybe that means we're all on the right track. But as 'pron and those who have been working in this area have pointed out [4], this part of the puzzle is not yet solved, and one of the primary open issues is how to scale it to the system level (beyond provably correct programs to provably correct systems).

One of the questions I've been pondering is how can we combine provably correct software specs with hardware specs identified for any given system to find the optimal data structures and algorithms given the constraints of that architecture.

Does something similar already exist? What's the best software currently out there for simulating ideal data flow for a given hardware configuration and a given set of system constraints?

[1] Strange Loop https://www.thestrangeloop.com

[2] Strange Loop 2018 talks (80 videos) https://www.youtube.com/playlist?list=PLcGKfGEEONaBUdko326yL...

[3] Related videos...

* Vellvm - Verifying the LLVM, by Steve Zdancewic https://www.youtube.com/watch?v=q6gSC3OxB_8

* All the Languages Together, by Amal Ahmed https://www.youtube.com/watch?v=3yVc5t-g-VU

* Towards Language Support for Distributed Systems, by Heather Miller https://www.youtube.com/watch?v=IeBbiQZYmuY

* Data Driven UIs, Incrementally, by Yaron Minsky https://www.youtube.com/watch?v=R3xX37RGJKE

* Proof Theory Impressionism: Blurring the Curry-Howard Line, by Dan Pittman https://www.youtube.com/watch?v=jrVPB-Ad5Gc

* A Little Taste of Dependent Types, by David Christiansen https://www.youtube.com/watch?v=VxINoKFm-S4

* You are a Program Synthesizer, by James Koppel https://www.youtube.com/watch?v=ldkF-4WNZqA

[4] open issue is how to scale it to the system level https://news.ycombinator.com/item?id=18253680

HN Theater is an independent project and is not operated by Y Combinator or any of the video hosting platforms linked to on this site.
~ yaj@
;laksdfhjdhksalkfj more things
yahnd.com ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.