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:
Lexical Scoping
/ˈlɛksɪkəl ˈskoʊpɪŋ/
noun … “Scope determined by code structure, not runtime calls.”
Lexical Scoping is a scoping rule in which the visibility of variables is determined by their position within the source code. In languages with lexical scoping, a function or block can access variables defined in the scope in which it was written, regardless of where it is called at runtime. This is fundamental to closures and scope management.
Scope
/skoʊp/
noun … “Where a variable is visible and accessible.”
Scope is the region of a program in which a variable, function, or object is accessible and can be referenced. Scope determines visibility, lifetime, and the rules for resolving identifiers, and it is a fundamental concept in programming languages. Understanding scope is essential for managing state, avoiding naming collisions, and enabling features like closures and modular code.
Key characteristics of scope include: