Safe, Low-Level Programming with Rust

Safe, Low-Level Programming with Rust

CMSC 330: Organization of Programming Languages Safe, Low-level Programming with Rust CMSC330 Spring 2018 1 The C programming language • Was invented in the 70s but is still among the most popular languages. Why? – Low-level control, careful memory management – Despite serious risks • Why not a type-safe language? – GC de-facto requirement of type safety • Increases memory footprint • Adds unpredictable pauses – Also: important limitations on concurrency patterns • Can’t we do better? 2 Type safety and low-level control • Several research projects in the 90s and 2000s on type safety without GC – MLKit, Vault (Microsoft), Cyclone (Cornell, AT&T, UMD, UW) – see http://cyclone.thelanguage.org • Likewise, lots of work on safe concurrency – Cyclone (in principle), Java dialects, software transactions (language add-on) • Big challenge: Sufficient expressiveness – Cyclone made it the furthest, but fizzled – Finding the right tradeoffs and balance is a big task 3 ust • Begun in 2006 by Graydon Hoare • Sponsored as full-scale project and announced by Mozilla in 2010 – Changed a lot since then; source of frustration – But now: most loved programming language in Stack Overflow annual surveys of 2016, 2017, and 2018 • Takes ideas from functional and OO languages, and recent research • Key properties: Type safety despite use of concurrency and manual memory management – And: No data races 4 Features of Rust • Lifetimes and Ownership – Key feature for ensuring safety • Traits as core of object system • Variable default is immutability • Data types and pattern matching • Type inference – No need to write types for local variables • Generics (aka parametric polymorphism) • First-class functions • Efficient C bindings 5 Rust in the real world • Firefox Quantum and Servo components – https://servo.org • REmacs port of Emacs to Rust – https://github.com/Wilfred/remacs • Amethyst game engine – https://www.amethyst.rs/ • Magic Pocket filesystem from Dropbox – https://www.wired.com/2016/03/epic-story-dropboxs- exodus-amazon-cloud-empire/ • OpenDNS malware detection components • https://www.rust-lang.org/en-US/friends.html 6 Information on Rust • Rust book free online – https://doc.rust- lang.org/book/ – We will follow it in these lectures • More references via Rust site – https://www.rust- lang.org/en- US/documentation.html 7.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    7 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us