1. 1. Syllabus
    ❱
    1. 1.1. Administrative Information
    2. 1.2. Course Schedule
    3. 1.3. Class Prep
    4. 1.4. Programming Assignments
    5. 1.5. Course Project
    6. 1.6. Paper Discussion
    7. 1.7. Approval Instructions
  2. 2. Week 1: Rust
    ❱
    1. 2.1. System Setup
    2. 2.2. Basic Syntax of Rust
    3. 2.3. Safety Features of Rust
    4. 2.4. Expressive Power and Unsafe Rust
    5. 2.5. More on Struct and Traits
  3. 3. Week 2: Rust (Continued)
    ❱
    1. 3.1. Lifetimes
    2. 3.2. ?, dyn, and Macros
    3. 3.3. Useful Crates and Tools
    4. 3.4. Idioms and Design Patterns
      ❱
      1. 3.4.1. Use Expressions
      2. 3.4.2. Use Pattern Matching and Destructuring
      3. 3.4.3. Use Iterators
      4. 3.4.4. Avoid Declaring First
      5. 3.4.5. Think About clone() Before Using It
      6. 3.4.6. Use the Debug Formatter
      7. 3.4.7. Use #[derive()]
      8. 3.4.8. Implement the Display Trait
      9. 3.4.9. Implement new()
      10. 3.4.10. Implement the Default Trait Along with new()
      11. 3.4.11. match De-Nesting
      12. 3.4.12. Processing Collections of Items Using Functional Language Features
      13. 3.4.13. Use Method Chaining
      14. 3.4.14. Error Handling
      15. 3.4.15. New Type Idiom
      16. 3.4.16. Use &str, &T, and &[T] for Function Parameters
  4. 4. Week 3: Fuzz Testing, Property-Based Testing, Symbolic Execution, and SAT/SMT
  5. 5. Week 5: Rust analyses
  6. 6. Week 6: Rust OSes
  7. 7. Week 7: Symbolic Execution
  8. 8. Week 8: Hybrid Fuzzing
  9. 9. Week 9: Formal Methods
  10. 10. Week 10: Formal Methods (Continued)
  11. 11. Week 11: Interactive Verification
  12. 12. Week 12: Automated Verification

CMPT 479/982

Week 7: Symbolic Execution

  • KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs
  • Verifying Dynamic Trait Objects in Rust
  • SAGE: Whitebox Fuzzing for Security Testing
  • S2E: A Platform for In-Vivo Multi-Path Analysis of Software Systems
  • Symbolic Execution with SymCC: Don’t Interpret, Compile!