This video discusses structure and organization of Rust projects. Crates and packages (modules) are the building blocks for Rust programs. Programs are composed of sources organized into packages that consist of a directory built with the Cargo build tool.
The CSIAC Podcast
The CSIAC Podcast features discussions with Subject Matter Experts on emerging topics in the fields of cybersecurity, modeling and simulation, software engineering and knowledge management. One-on-one and round-table discussions are held to provide insight into highly technical topics and increase user awareness.
This video discusses Rust “Generic Types”, a language facility for defining types that depend on a parameter specified at compile time. Rust Generics are similar to generic types used in Java and C#, but unlike C++ templates which support specialization.
This video discusses the Rust Object model and language facilities for representing user-defined types. Rust does not have support for classes, but does provide structs, which are similar to classes used in other object-oriented languages like C++. “Traits” are similar to interfaces or abstract classes and support polymorphic operations. Rust provides encapsulation of data members and access control through the use of the “pub” keyword which specifies whether members of a struct are accessible to clients.
Discusses the Rust Language Ownership model which uses a type safety policy for avoiding undefined program behavior. The Rust type system ensures memory safety and prevents data races in multi-thread programs. The language rules for program variable (data) mutation, and the differences between value copies and moves is discussed in detail. Variable data is, by default, immutable. Variables must be annotated with the “mut” keyword in order to be modified.
This video provides an introduction and a brief overview of the Rust Programming Language. It covers the prerequisites required for getting started. This includes: the setup of a development environment using Visual Studio Code, and the Rust package manager and build tool known as “Cargo.”
Part 6 of this 6-part video series describes templates with a focus on the code generation model. Template function overloading and template class specialization are discussed. The conclusions section provides information on where to find the models presentation and the example code.
Part 5 of this 6-part video series discusses methods for building code with the flexibility to support change. Public inheritance coupled with pointers and references, support type substitution and provides one method to enable code to change without breaking existing package dependencies. The virtual function dispatching model is described with an exemplar.
Part 4 of this 6-part video series provides a conceptual overview of the C++ object model with description and exemplars that illustrate the layout of code in memory, and how the layout of memory affects object construction.
Part 3 of this 6-part video series discusses the memory model paradigm, and foundational concepts behind the usage of memory: static, stack, and heap. The Class Model is described using illustrations of the relationships between code residing in static memory, and instances of objects in stack memory.
In this CSIAC podcast, Jim West discusses how the CIA triad has played a part in the management of risk, but lacks the details of considering all aspects of risk. West, describes a 9-point core security principles star that will better prepare many organizations to seek out possible solutions to risks, and provide senior leadership a more detailed visualization of what principles are acceptable risk and which ones are not.