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:
Cache Coherency
/kæʃ koʊˈhɪərəns/
noun … “Keeping multiple caches in sync.”
Cache Coherency is the consistency model ensuring that multiple copies of data in different caches reflect the same value at any given time. In multiprocessor or multi-core systems, each CPU may have its own cache, and maintaining coherency prevents processors from operating on stale or conflicting data. Cache coherency is critical for correctness in concurrent programs and high-performance systems.
Firmware
/ˈfɜːrmwɛr/
noun … “Software embedded in hardware.”
Firmware is specialized software stored in non-volatile memory, such as ROM or Flash, that provides low-level control for a device’s hardware. It acts as an intermediary between the hardware and higher-level software, enabling the system to initialize, configure, and operate correctly. Firmware is essential in embedded systems, computers, networking devices, and peripherals.
Memory Management
/ˈmɛməri ˈmænɪdʒmənt/
noun … “Organizing, allocating, and reclaiming memory.”
Memory Management is the process by which a computing system controls the allocation, usage, and reclamation of memory. It ensures that programs receive the memory they require while optimizing performance, preventing leaks, and avoiding conflicts. Effective memory management balances speed, space, and safety, and is implemented via operating system services, language runtimes, and hardware support.
INT64
/ˌaɪˌɛnˈtiːˈsɪksˈtɪi/
noun … “Signed 64-bit integer.”
UINT64
/ˌjuːˌaɪˈɛnˈtiːˈsɪksˈtɪi/
noun … “Unsigned 64-bit integer.”
UINT64 is a fixed-size integer data type representing non-negative whole numbers ranging from 0 to 18,446,744,073,709,551,615 (264 − 1). Being unsigned, UINT64 does not support negative values. It is widely used in systems programming, cryptography, file offsets, and any context requiring precise, large integer representation. UINT64 is typically implemented in memory as 8 bytes, conforming to the platform's endian format.
Variable Hoisting
/ˈvɛəriəbl ˈhoʊstɪŋ/
noun … “Declarations move to the top of their scope.”
Global Scope
/ˈɡloʊbəl skoʊp/
noun … “Variables accessible from anywhere in the program.”
Global Scope refers to the outermost scope in a program where variables, functions, or objects are defined and accessible throughout the entire codebase. Any variable declared in global scope can be read or modified by functions, blocks, or modules unless explicitly shadowed. While convenient for shared state, overusing global scope can increase risk of naming collisions and unintended side effects.
Key characteristics of Global Scope include:
Block Scope
/blɑk skoʊp/
noun … “Variables confined to a specific block of code.”
Block Scope is a scoping rule in which variables are only accessible within the block in which they are declared, typically defined by curly braces { } or similar delimiters. This contrasts with function or global scope, limiting variable visibility and reducing unintended side effects. Block Scope is widely used in modern programming languages like JavaScript (let, const), C++, and Java.
Key characteristics of Block Scope include: