Call-by-push-value and Ownership

Talk at OderskyFest 2023-09-05 EPFL Lausanne

Who is Burak Emir?

  • at LAMP 2002-2007, translation of pattern matching in scalac
    • extractor patterns aka "unapply"
  • occasionally applying programming language technology at work
    • e.g. Mangle, an extended datalog with types
    • Rust for large-scale distributed systems

"A scientist builds in order to learn; an engineer learns in order to build." (Fred Brooks)

This talk: towards simple formalization of Rust's ownership and borrowing

  • evaluation order, call-by-push-value (CBPV)
  • linear logic: types as resources
  • ownership, memory safety (with examples in Rust)
  • early ideas on how it could fit together

Disclaimer: The views expressed here are my own and do not represent my employer.