Skip to content

Programming Terms

Core programming concepts, terms, and vocabulary that every developer should understand.

A class that cannot be instantiated directly and is designed to be inherited by other classes. It may contain abstract methods (without implementation) that must be implemented by derived classes.

A step-by-step procedure or formula for solving a problem. In programming, algorithms define the logic for processing data and producing results.

A set of rules, protocols, and tools that allows different software applications to communicate with each other. See Technical Abbreviations for the abbreviation definition.

A data structure that stores a fixed-size sequential collection of elements of the same type, accessible by index.

A programming model where operations can execute independently of the main program flow, allowing the program to continue executing other code while waiting for long-running operations to complete.

A data type that can only have two values: true or false. Named after mathematician George Boole.

An error, flaw, or fault in a computer program that causes it to produce incorrect or unexpected results.

The process of converting source code into executable software, often involving compilation, linking, and packaging.

A function passed as an argument to another function, which is then invoked inside the outer function to complete some action.

A blueprint or template for creating objects in object-oriented programming. Defines properties (attributes) and methods (behaviors).

A function that has access to variables in its outer (enclosing) function’s scope, even after the outer function has returned.

The systematic examination of source code by peers to find bugs, improve code quality, and share knowledge.

The process of translating source code written in a high-level programming language into machine code or intermediate code.

A special method in a class that is automatically called when an object of that class is created. Used to initialize object properties.

A development practice where developers frequently merge code changes into a central repository, followed by automated builds and tests.

A specialized format for organizing, processing, retrieving, and storing data efficiently. Examples include arrays, linked lists, stacks, queues, trees, and graphs.

The process of identifying, analyzing, and removing errors (bugs) from software.

A statement that introduces a variable, function, class, or other identifier to the compiler or interpreter.

A relationship where one piece of code relies on another piece of code to function properly.

The process of making software available for use in a production environment.

A reusable solution to a commonly occurring problem in software design. Examples include Singleton, Factory, Observer, and Strategy patterns.

A feature of programming languages where variable types are determined at runtime rather than at compile time.

The bundling of data and methods that operate on that data within a single unit (class), and restricting direct access to some of the object’s components.

An event that occurs during program execution that disrupts the normal flow of instructions. Exception handling allows programs to respond to errors gracefully.

A combination of variables, operators, and values that yields a result when evaluated.

A platform providing a foundation of pre-written code that developers can use and customize for creating applications.

A reusable block of code designed to perform a specific task. Functions can accept inputs (parameters) and return outputs.

An automatic memory management feature that reclaims memory occupied by objects that are no longer in use.

A programming feature that allows code to be written for types to be specified later, enabling type-safe code reuse.

A function that converts an input (or ‘key’) into a fixed-size string of bytes, typically used in hash tables for fast data retrieval.

A region of memory used for dynamic memory allocation where variables are allocated and deallocated in random order during program execution.

An object whose state cannot be modified after it is created. Any modification creates a new object.

A mechanism in object-oriented programming where a new class is derived from an existing class, inheriting its properties and methods.

A concrete occurrence of a class. When an object is created from a class, it is called an instance of that class.

A contract that defines a set of methods that a class must implement, without specifying how they should be implemented.

The repetition of a process or set of instructions, typically using loops (for, while, do-while).

An anonymous function (function without a name) that can be used to create delegates or expression tree types.

A collection of pre-compiled code (functions, classes, etc.) that can be used by programs to perform common tasks.

A programming construct that repeats a block of code multiple times until a specified condition is met.

A condition where a program fails to release memory that is no longer needed, gradually consuming available memory.

A function defined within a class that describes the behaviors of objects created from that class.

A self-contained unit of code that can be reused in different parts of a program or in different programs.

An object whose state can be modified after it is created.

A container that holds a set of identifiers (names of types, functions, variables, etc.) and allows the disambiguation of homonym identifiers.

A special value that represents the absence of a value or a reference to nothing.

An instance of a class containing data (properties) and code (methods) that operate on that data.

The ability to define multiple methods with the same name but different parameters within the same class.

The ability of a subclass to provide a specific implementation of a method that is already defined in its parent class.

A variable used in a function or method definition to accept input values when the function is called.

A variable that stores the memory address of another variable.

The ability of objects of different types to be accessed through the same interface, allowing a single action to behave differently based on the object type.

Basic data types provided by a programming language, such as int, float, char, and boolean.

A sequence of program instructions that perform a specific task, packaged as a unit (similar to a function but may not return a value).

A programming technique where a function calls itself to solve a problem by breaking it down into smaller, similar problems.

The process of restructuring existing code without changing its external behavior to improve code readability, maintainability, or performance.

A value that enables a program to indirectly access a particular data item, such as a variable or object, in memory.

The region of code where a variable, function, or object is accessible.

A data structure that follows Last-In-First-Out (LIFO) principle, or a region of memory where local variables and function call information are stored.

A single instruction that performs an action in a program.

A keyword indicating that a member belongs to the class itself rather than to instances of the class.

A sequence of characters used to represent text.

The set of rules that define the structure and grammar of a programming language.

The smallest unit of execution within a process, allowing multiple operations to run concurrently.

A classification that specifies which operations can be performed on a particular data item and how it is stored in memory.

A named storage location in memory that holds a value which can change during program execution.

A method in a base class that can be overridden in derived classes to provide different implementations.

A keyword indicating that a function does not return a value.


This list covers fundamental programming concepts. Understanding these terms provides a solid foundation for learning any programming language.