Reference Counting

/ˈrɛfərəns ˈkaʊntɪŋ/

noun … “Track object usage to reclaim memory.”

Reference Counting is a memory management technique in which each object maintains a counter representing the number of references or pointers to it. When the reference count drops to zero, the object is no longer accessible and can be safely deallocated from heap memory. This method is used to prevent memory leaks and manage lifetimes of objects in languages like Python, Swift, and Objective-C.

Key characteristics of Reference Counting include:

Dynamic Array

/daɪˈnæmɪk əˈreɪ/

noun … “Resizable contiguous memory collection.”

Dynamic Array is a data structure similar to an array but with the ability to grow or shrink at runtime. Unlike fixed-size arrays, dynamic arrays allocate memory on the heap and can expand when more elements are added, typically by allocating a larger block and copying existing elements. They balance the efficiency of indexed access with flexible memory usage.

Key characteristics of Dynamic Array include:

Array

/əˈreɪ/

noun … “Contiguous collection of elements.”

Array is a data structure consisting of a sequence of elements stored in contiguous memory locations, each identified by an index or key. Arrays allow efficient access, insertion, and modification of elements using indices and are foundational in programming for implementing lists, matrices, and buffers. They can hold primitive types, objects, or other arrays (multidimensional arrays).

Key characteristics of Array include:

Pointer Arithmetic

/ˈpɔɪntər ˌærɪθˈmɛtɪk/

noun … “Calculating addresses with pointers.”

Pointer Arithmetic is a programming technique that performs mathematical operations on pointers to navigate through memory locations. It allows programmers to traverse arrays, structures, and buffers by adding or subtracting integer offsets from a pointer, effectively moving the reference to different memory addresses. This technique is widely used in low-level languages like C and C++ for efficient memory access and manipulation.

Bootloader

/ˈbuːtˌloʊdər/

noun … “Initial program that starts the system.”

Bootloader is a small, specialized program stored in non-volatile memory such as ROM or Flash, responsible for initializing hardware components and loading the operating system or runtime environment into RAM. It serves as the first stage of the boot process, bridging the gap between firmware and the OS, ensuring that the system starts reliably and securely.

Garbage Collection

/ˈɡɑːrbɪdʒ kəˈlɛkʃən/

noun … “Automatic memory reclamation.”

Garbage Collection is a runtime process in programming languages that automatically identifies and reclaims memory occupied by objects that are no longer reachable or needed by a program. This eliminates the need for manual deallocation and reduces memory leaks, particularly in managed languages like Java, C#, and Python. Garbage collection works closely with heap memory, tracking allocations and references to determine which memory blocks can be safely freed.

Heap

/hiːp/

noun … “Dynamic memory area for runtime allocation.”

Heap is a region of memory used for dynamic allocation, where programs request and release blocks of memory at runtime rather than compile-time. Unlike the stack, which operates in a last-in, first-out manner, the heap allows arbitrary allocation sizes and lifetimes. Proper management of the heap is crucial to prevent fragmentation, leaks, and performance degradation.

Key characteristics of Heap include: