Skip to content
0:00 / 0:00

#formalspecification#quickcheck#testing

A Deep Specification for Dropbox - Benjamin Pierce

ClojureTV

111K subscribers • 136 videos on Hallway

YouTube
  • Recommended by 3 people: 1 on Lobsters and 2 in engineering communities.
  • A classic. People kept recommending it from 2015 to 2020.
  • Presented by Benjamin Pierce, Professor at the University of Pennsylvania

Advanced. Deep dive for people who know the field.

13K views10 years ago3 recommendations

Computer scienceDistributed systemsFormal methods and verificationTesting

Benjamin Pierce presents a formal specification and random testing framework for verifying the core behavior of Dropbox.

Formal specification of software systems is an old endeavor that is now yielding striking successes, in large part due to the availability of powerful new techniques for coupling specifications with running code via formal verification or automated testing. This talk surveys what’s happening in the area broadly and presents one example in more detail: a formal specification of the core behavior of a synchronization service and a specification-based random testing framework for applying it to real-world synchronizers. About the speaker: Benjamin Pierce is Henry Salvatori Professor of Computer and Information Science at the University of Pennsylvania and a Fellow of the ACM. His research interests include programming languages, type systems, language-based security, computer-assisted formal verification, differential privacy, and synchronization technologies. He is the author of the widely used graduate textbooks Types and Programming Languages and Software Foundations. He has served as co-Editor in Chief of the Journal of Functional Programming, as Managing Editor for Logical Methods in Computer Science, and as editorial board member of Mathematical Structures in Computer Science, Formal Aspects of Computing, and ACM Transactions on Programming Languages and Systems. He is also the lead designer of the popular Unison file synchronizer.

Why it's here

3 people recommend this

u/get-your-shineboxin r/haskell • Recommends

Benjamin Pierce - A Deep Specification for Dropbox

u/oilshellin r/ProgrammingLanguages • Recommends

A Deep Specification for Dropbox - Benjamin Pierce

tfon Lobsters • Recommends

A Deep Specification for Dropbox - Benjamin Pierce

u/josephjnkin r/functionalprogramming • Mentions

On “Is there a functional approach to writing tests?”

Look into property-based testing with quickcheck, smallcheck, or hedgehog. There are implementations for one or more of them in just about every major language. They focus on specifying the high-level semantics of code’s behavior in a more precise way. I don’t get to use it much but I’ve really enjoyed the fast-check library for TypeScript in the past. For an example of it being used at high power, check out this Benjamin Pierce talk: link to this video

u/oilshellin r/ProgrammingLanguages • Mentions

On “What does verifying a language mean?”

Nice video I watched yesterday that gives you some context. He talks about CompCert in the beginning, and a bunch of other verified systems. link to this video By Benjamin Pierce of "Types and Programming Langauges"