An introduction to the Rust Programming Language (Workshop)
Low-level systems programming is dominated by two languages, C and C++. Even though there are dozens of programming languages out there, if you wish to write some embedded systems code or design an operating system kernel, you really have no choice beyond C/C++.
Writing safe and secure code in C/C++ is extremely challenging. Buffer overflows, dangling pointers, use-after-free, null dereferences: these are defects found in abundance in any large C/C++ codebase. Languages like Java, Python etc solve some of these issues through automatic memory management; but that makes these languages unsuitable for writing close-to-the-metal programs like operating system kernels or embedded systems software.
Mozilla Rust is a programming language in which you can write all kinds of low-level code without any of the memory unsafety issues present in C/C++; the code will also run as fast as C/C++. Rust achieves this through some innovative ideas obtained from research in static type systems. This workshop will provide a hands-on introduction to the Rust programming language to participants who have some exposure to C and C++.
Here are some of the topics which will be covered:
- Rust basics - static typing, type inference, functions, basic data types, control structures
- Sum and Product types
- Pattern Matching
- Generics, Traits
- Iterators, Closures
- Zero Cost Abstractions
- Ownership, Borrowing and Lifetimes
- Unsafe code