Data & Memory features
- Definition
- Language structures regarding data structures and memory management

Features
Primitive Types (All languages) Basic data types like integers, floats, booleans, and characters.
Records / Tuples (Haskell, Rust, F#, Python, Elixir, Scala) Fixed-size collections of elements, optionally with named fields.
Objects / Classes (Java, C++, Python, Ruby, C#) Encapsulate data and behavior using object-oriented principles.
Interfaces / Protocols / Traits (Java, C#, Rust, Swift, Python) Abstract types defining method signatures without implementation.
Enumerations / ADTs (Rust, Haskell, Scala, F#, Swift) Custom data types that represent one of many fixed values.
Smart Pointers (C++, Rust) Automatically managed pointers that encapsulate memory management.
Garbage Collection (Java, C#, Go, Python, JavaScript, Ruby) Automatic memory management to reclaim unused memory.
Manual Memory Management (C, C++) Developers allocate and free memory explicitly.
Ownership & Borrowing (Rust) Memory safety without garbage collection using strict ownership rules.
Copy-on-Write (Swift, PHP, Rust) Optimizes memory usage by delaying copying until modification is required.
Lifetimes (Rust) Ensures references are valid and memory-safe during their usage.