In software engineering and computer science, abstraction is.
Ada is a structured, statically typed, imperative, and object-oriented high-level computer programming language, extended from Pascal and other languages.
In IBM System/360 through present day z/Architecture, an address constant or "adcon" is an assembly language data type which contains the address of a location in computer memory.
An anti-pattern is a common response to a recurring problem that is usually ineffective and risks being highly counterproductive.
In computer programming, an application programming interface (API) is a set of subroutine definitions, protocols, and tools for building software.
In computer science, an array data structure, or simply an array, is a data structure consisting of a collection of elements (values or variables), each identified by at least one array index or key.
Language support for array types may include certain built-in array data types, some syntactic constructions (array type constructors) that the programmer may use to define such types and declare array variables, and special notation for indexing array elements.
ASCII, abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication.
An assembly (or assembler) language, often abbreviated asm, is a low-level programming language, in which there is a very strong (but often not one-to-one) correspondence between the assembly program statements and the architecture's machine code instructions.
In computer programming, an assignment statement sets and/or re-sets the value stored in the storage location(s) denoted by a variable name; in other words, it copies a value into the variable.
BASIC (an acronym for Beginner's All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use.
In mathematics and digital electronics, a binary number is a number expressed in the base-2 numeral system or binary numeral system, which uses only two symbols: typically 0 (zero) and 1 (one).
BIOS (an acronym for Basic Input/Output System and also known as the System BIOS, ROM BIOS or PC BIOS) is non-volatile firmware used to perform hardware initialization during the booting process (power-on startup), and to provide runtime services for operating systems and programs.
In digital computer programming, a bitwise operation operates on one or more bit patterns or binary numerals at the level of their individual bits.
Blitz BASIC refers to the programming language dialect that was interpreted by the first Blitz compilers, devised by New Zealand-based developer Mark Sibly.
In computer science, a bounded pointer is a pointer that is augmented with additional information that enable the storage bounds within which it may point to be deduced.
In computer programming, bounds checking is any method of detecting whether a variable is within some bounds before it is used.
A branch is an instruction in a computer program that can cause a computer to begin executing a different instruction sequence and thus deviate from its default behavior of executing instructions in order.
In information security and programming, a buffer overflow, or buffer overrun, is an anomaly where a program, while writing data to a buffer, overruns the buffer's boundary and overwrites adjacent memory locations.
The byte is a unit of digital information that most commonly consists of eight bits, representing a binary number.
Byte addressing refers to hardware architectures which support accessing individual bytes of data rather than only larger units called words, which would be word-addressable.
Bytecode, also termed portable code or p-code, is a form of instruction set designed for efficient execution by a software interpreter.
C (as in the letter ''c'') is a general-purpose, imperative computer programming language, supporting structured programming, lexical variable scope and recursion, while a static type system prevents many unintended operations.
C dynamic memory allocation refers to performing manual memory management for dynamic memory allocation in the C programming language via a group of functions in the C standard library, namely,, and.
C# (/si: ʃɑːrp/) is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.
The C standard library or libc is the standard library for the C programming language, as specified in the ANSI C standard.
C++ ("see plus plus") is a general-purpose programming language.
In the C++ programming language, the C++ Standard Library is a collection of classes and functions, which are written in the core language and part of the C++ ISO Standard itself.
C++11 is a version of the standard for the programming language C++.
C99 (previously known as C9X) is an informal name for ISO/IEC 9899:1999, a past version of the C programming language standard.
Capability-based security is a concept in the design of secure computing systems, one of the existing security models.
Customer Information Control System (CICS) is a family of mixed language application servers that provide online transaction management and connectivity for applications on IBM Mainframe systems under z/OS and z/VSE.
COBOL (an acronym for "common business-oriented language") is a compiled English-like computer programming language designed for business use.
The Color Graphics Adapter (CGA), originally also called the Color/Graphics Adapter or IBM Color/Graphics Monitor Adapter, introduced in 1981, was IBM's first graphics card and first color display card for the IBM PC.
In computer engineering, computer architecture is a set of rules and methods that describe the functionality, organization, and implementation of computer systems.
In computing, memory refers to the computer hardware integrated circuits that store information for immediate use in a computer; it is synonymous with the term "primary storage".
In computing, multitasking is the concurrent execution of multiple tasks (also known as processes) over a certain period of time.
Computer science deals with the theoretical foundations of information and computation, together with practical techniques for the implementation and application of these foundations.
In computer programming, is a fundamental function in most dialects of the Lisp programming language.
In computer science, control flow (or flow of control) is the order in which individual statements, instructions or function calls of an imperative program are executed or evaluated.
Control tables are tables that control the control flow or play a major part in program control.
The Cyclone programming language is intended to be a safe dialect of the C language.
D is an object-oriented, imperative, multi-paradigm system programming language created by Walter Bright of Digital Mars and released in 2001.
Dangling pointers and wild pointers in computer programming are pointers that do not point to a valid object of the appropriate type.
In computer science, a data structure is a data organization and storage format that enables efficient access and modification.
Data structure alignment refers to the way data is arranged and accessed in computer memory.
In computer science and computer programming, a data type or simply type is a classification of data which tells the compiler or interpreter how the programmer intends to use the data.
Delphi is an integrated development environment (IDE) for rapid application development of desktop, mobile, web, and console software, developed by Embarcadero Technologies.
The dereference operator or indirection operator, denoted by "*" (i.e. an asterisk), is a unary operator (one operator) found in C-like languages that include pointer variables.
A Device Register is the view any device presents to a programmer.
Donald Ervin Knuth (born January 10, 1938) is an American computer scientist, mathematician, and professor emeritus at Stanford University.
In computer science, dynamic dispatch is the process of selecting which implementation of a polymorphic operation (method or function) to call at run time.
Eiffel is an object-oriented programming language designed by Bertrand Meyer (an object-orientation proponent and author of Object-Oriented Software Construction) and Eiffel Software.
In computer programming, an entry point is where control is transferred from the operating system to a computer program, at which place the processor enters a program or a code fragment and execution begins.
Exception handling is the process of responding to the occurrence, during computation, of exceptions – anomalous or exceptional conditions requiring special processing – often changing the normal flow of program execution.
Flat memory model or linear memory model refers to a memory addressing paradigm in which "memory appears to the program as a single contiguous address space." The CPU can directly (and linearly) address all of the available memory locations without having to resort to any sort of memory segmentation or paging schemes.
In computing, floating-point arithmetic is arithmetic using formulaic representation of real numbers as an approximation so as to support a trade-off between range and precision.
Fortran (formerly FORTRAN, derived from Formula Translation) is a general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing.
Free Pascal Compiler (FPC) is a compiler for the closely related programming language dialects, Pascal and Object Pascal.
FreeBASIC is a multiplatform, free/open source (GPL) BASIC compiler for Microsoft Windows, protected-mode MS-DOS (DOS extender), Linux, FreeBSD and Xbox.
A function pointer, also called a subroutine pointer or procedure pointer, is a pointer that points to a function.
In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data.
In computer science, garbage collection (GC) is a form of automatic memory management.
A general protection fault (GPF) in the x86 instruction set architectures (ISAs) is a fault (a type of interrupt) initiated by ISA-defined protection mechanisms in response to an access violation caused by some running code, either in the kernel or a user program.
The GNU Compiler Collection (GCC) is a compiler system produced by the GNU Project supporting various programming languages.
Go (often referred to as Golang) is a programming language created at Google in 2009 by Robert Griesemer, Rob Pike, and Ken Thompson.
Harold "Bud" Lawson (born 1937) is a software engineer, computer architect and systems engineer.
Haskell is a standardized, general-purpose compiled purely functional programming language, with non-strict semantics and strong static typing.
In a multithreaded computing environment, hazard pointers are one approach to solving the problems posed by dynamic memory management of the nodes in a lock-free data structure.
In mathematics and computing, hexadecimal (also base, or hex) is a positional numeral system with a radix, or base, of 16.
In computer science, imperative programming is a programming paradigm that uses statements that change a program's state.
The Institute of Electrical and Electronics Engineers (IEEE) is a professional association with its corporate office in New York City and its operations center in Piscataway, New Jersey.
An instruction set simulator (ISS) is a simulation model, usually coded in a high-level programming language, which mimics the behavior of a mainframe or microprocessor by "reading" instructions and maintaining internal variables which represent the processor's registers.
An integer (from the Latin ''integer'' meaning "whole")Integer 's first literal meaning in Latin is "untouched", from in ("not") plus tangere ("to touch").
The Intel 80286 (also marketed as the iAPX 286 and often called Intel 286) is a 16-bit microprocessor that was introduced on 1 February 1982.
The International Organization for Standardization (ISO) is an international standard-setting body composed of representatives from various national standards organizations.
Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible.
In computer science, a linked list is a linear collection of data elements, whose order is not given by their physical placement in memory.
In computer science, a list or sequence is an abstract data type that represents a countable number of ordered values, where the same value may occur more than once.
In computing, a logical address is the address at which an item (memory cell, storage element, network host) appears to reside from the perspective of an executing application program(address generated by CPU).
In computer science, a lookup table is an array that replaces runtime computation with a simpler array indexing operation.
A low-level programming language is a programming language that provides little or no abstraction from a computer's instruction set architecture—commands or functions in the language map closely to processor instructions.
Machine code is a computer program written in machine language instructions that can be executed directly by a computer's central processing unit (CPU).
In computing, a magic cookie, or just cookie for short, is a token or short packet of data passed between communicating programs, where the data is typically not meaningful to the recipient program.
Managed code is computer program code that requires and will execute only under the management of a Common Language Runtime virtual machine, typically the.NET Framework, or Mono.
The megabyte is a multiple of the unit byte for digital information.
In computing, a memory address is a reference to a specific memory location used at various levels by software and hardware.
In computer science, a memory leak is a type of resource leak that occurs when a computer program incorrectly manages memory allocations in such a way that memory which is no longer needed is not released.
Memory management is a form of resource management applied to computer memory.
Memory segmentation is the division of a computer's primary memory into segments or sections.
Memory-mapped I/O (MMIO) and port-mapped I/O (PMIO) (which is also called isolated I/O) are two complementary methods of performing input/output (I/O) between the central processing unit (CPU) and peripheral devices in a computer.
A method in object-oriented programming (OOP) is a procedure associated with a message and an object.
A microcontroller (MCU for microcontroller unit, or UC for μ-controller) is a small computer on a single integrated circuit.
Modula-2 is a computer programming language designed and developed between 1977 and 1985 by Niklaus Wirth at the Swiss Federal Institute of Technology in Zurich (ETH Zurich) as a revision of Pascal to serve as the sole programming language for the operating system and application software for the personal workstation Lilith.
Modula-3 is a programming language conceived as a successor to an upgraded version of Modula-2 known as Modula-2+.
In programming languages, name binding is the association of entities (data and/or code) with identifiers.
In computing, a null pointer has a value reserved for indicating that the pointer does not refer to a valid object.
In programming, nullable types are a feature of the type system of some programming languages which allow the value to be set to the special value NULL instead of the usual possible values of the data type.
Oberon is a general-purpose programming language created in 1986 by Niklaus Wirth and the latest member of the Wirthian family of ALGOL-like languages (Euler, Algol-W, Pascal, Modula, and Modula-2).
Object Pascal refers to a branch of object-oriented derivatives of Pascal, mostly known as the primary programming language of Delphi.
Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods. A feature of objects is that an object's procedures can access and often modify the data fields of the object with which they are associated (objects have a notion of "this" or "self").
In computer science, an offset within an array or other data structure object is an integer indicating the distance (displacement) between the beginning of the object and a given element or point, presumably within the same object.
In computer programming, an opaque pointer is a special case of an opaque data type, a datatype declared to be a pointer to a record or data structure of some unspecified type.
In programming languages (more so functional programming languages) and type theory, an option type or maybe type is a polymorphic type that represents encapsulation of an optional value; e.g., it is used as the return type of functions which may or may not return a meaningful value when they are applied.
The Oxford English Dictionary (OED) is the main historical dictionary of the English language, published by the Oxford University Press.
In computer operating systems, paging is a memory management scheme by which a computer stores and retrieves data from secondary storage for use in main memory.
Pascal is an imperative and procedural programming language, which Niklaus Wirth designed in 1968–69 and published in 1970, as a small, efficient language intended to encourage good programming practices using structured programming and data structuring. It is named in honor of the French mathematician, philosopher and physicist Blaise Pascal. Pascal was developed on the pattern of the ALGOL 60 language. Wirth had already developed several improvements to this language as part of the ALGOL X proposals, but these were not accepted and Pascal was developed separately and released in 1970. A derivative known as Object Pascal designed for object-oriented programming was developed in 1985; this was used by Apple Computer and Borland in the late 1980s and later developed into Delphi on the Microsoft Windows platform. Extensions to the Pascal concepts led to the Pascal-like languages Modula-2 and Oberon.
Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages, Perl 5 and Perl 6.
In computing, a physical address (also real address, or binary address), is a memory address that is represented in the form of a binary number on the address bus circuitry in order to enable the data bus to access a particular storage cell of main memory, or a register of memory mapped I/O device.
In computing, Physical Address Extension (PAE), sometimes referred to as Page Address Extension, is a memory management feature for the x86 architecture.
PL/I (Programming Language One, pronounced) is a procedural, imperative computer programming language designed for scientific, engineering, business and system programming uses.
In computer science, pointer swizzling is the conversion of references based on name or position to direct pointer references.
Procedural programming is a programming paradigm, derived from structured programming, based upon the concept of the procedure call.
In computer architecture, a processor register is a quickly accessible location available to a computer's central processing unit (CPU).
A programmer, developer, dev, coder, or software engineer is a person who creates computer software.
A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output.
In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units (CPUs).
In computer science, a queue is a particular kind of abstract data type or collection in which the entities in the collection are kept in order and the principal (or only) operations on the collection are the addition of entities to the rear terminal position, known as enqueue, and removal of entities from the front terminal position, known as dequeue.
Raw data, also known as primary data, is data (e.g., numbers, instrument readings, figures, etc.) collected from a source.
Recursion occurs when a thing is defined in terms of itself or of its type.
In the C++ programming language, a reference is a simple reference datatype that is less powerful but safer than the pointer type inherited from C. The name C++ reference may cause confusion, as in computer science a reference is a general concept datatype, with pointers and C++ references being specific reference datatype implementations.
In computer science, a reference is a value that enables a program to indirectly access a particular datum, such as a variable's value or a record, in the computer's memory or in some other storage device.
In computer science, reference counting is a technique of storing the number of references, pointers, or handles to a resource such as an object, block of memory, disk space or other resource.
In computer programming, run-time type information or run-time type identification (RTTI) is a feature of the C++ programming language that exposes information about an object's data type at runtime.
Rust is a systems programming language sponsored by Mozilla which describes it as a "safe, concurrent, practical language," supporting functional and imperative-procedural paradigms.
In computing, a segmentation fault (often shortened to segfault) or access violation is a fault, or failure condition, raised by hardware with memory protection, notifying an operating system (OS) the software has attempted to access a restricted area of memory (a memory access violation).
In computer science, a smart pointer is an abstract data type that simulates a pointer while providing added features, such as automatic memory management or bounds checking.
Software architecture refers to the high level structures of a software system, the discipline of creating such structures, and the documentation of these structures.
A software bug is an error, flaw, failure or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways.
SQL (S-Q-L, "sequel"; Structured Query Language) is a domain-specific language used in programming and designed for managing data held in a relational database management system (RDBMS), or for stream processing in a relational data stream management system (RDSMS).
In computer science, a stack is an abstract data type that serves as a collection of elements, with two principal operations.
Static program analysis is the analysis of computer software that is performed without actually executing programs.
In computing a storage violation is a hardware or software fault that occurs when a task attempts to access an area of computer storage which it is not permitted to access.
In computer programming, a string is traditionally a sequence of characters, either as a literal constant or as some kind of variable.
In computer programming, programming languages are often colloquially classified as to whether the language's type system makes it strongly typed or weakly typed (loosely typed).
In computer programming, a subroutine is a sequence of program instructions that performs a specific task, packaged as a unit.
In computer programming languages, a switch statement is a type of selection control mechanism used to allow the value of a variable or expression to change the control flow of program execution via a multiway branch.
In computer science, the syntax of a computer language is the set of rules that defines the combinations of symbols that are considered to be a correctly structured document or fragment in that language.
In computing, a system call is the programmatic way in which a computer program requests a service from the kernel of the operating system it is executed on.
System Development Corporation (SDC) was a computer software company based in Santa Monica, California.
In computer science, a tagged pointer is a pointer (concretely a memory address) with additional data associated with it, such as an indirection bit or reference count.
The C Programming Language (sometimes termed K&R, after its authors' initials) is a computer programming book written by Brian Kernighan and Dennis Ritchie, the latter of whom originally designed and implemented the language, as well as co-designed the Unix operating system with which development of the language was closely intertwined.
In computer science, a tree is a widely used abstract data type (ADT)—or data structure implementing this ADT—that simulates a hierarchical tree structure, with a root value and subtrees of children with a parent node, represented as a set of linked nodes.
Turbo Pascal is a software development system that includes a compiler and an integrated development environment (IDE) for the Pascal programming language running on CP/M, CP/M-86, and MS-DOS.
In computer science, type conversion, type casting, and type coercion are different ways of changing an entity of one data type into another.
In computer science, type safety is the extent to which a programming language discourages or prevents type errors.
In programming languages, a type system is a set of rules that assigns a property called type to the various constructs of a computer program, such as variables, expressions, functions or modules.
In computer programming, undefined behavior (UB) is the result of executing computer code whose behavior is not prescribed by the language specification to which the code adheres, for the current state of the program.
In computer programming, a variable or scalar is a storage location (identified by a memory address) paired with an associated symbolic name (an identifier), which contains some known or unknown quantity of information referred to as a value.
In computing, a virtual address space (VAS) or address space is the set of ranges of virtual addresses that an operating system makes available to a process.
In computing, virtual memory (also virtual storage) is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a very large (main) memory." The computer's operating system, using a combination of hardware and software, maps memory addresses used by a program, called virtual addresses, into physical addresses in computer memory.
A virtual method table (VMT), virtual function table, virtual call table, dispatch table, vtable, or vftable is a mechanism used in a programming language to support dynamic dispatch (or run-time method binding).
The Void type, in several programming languages derived from C and Algol68, is the type for the result of a function that returns normally, but does not provide a result value to its caller.
Waste collection is a part of the process of waste management.
In computer programming, a wild branch is a GOTO instruction where the target address is indeterminate, random or otherwise unintended.
In computing, a word is the natural unit of data used by a particular processor design.
Word-addressable is a computer architecture term.
A wrapper function is a subroutine in a software library or a computer program whose main purpose is to call a second subroutine or a system call with little or no additional computation.
x86 is a family of backward-compatible instruction set architectures based on the Intel 8086 CPU and its Intel 8088 variant.
x86-64 (also known as x64, x86_64, AMD64 and Intel 64) is the 64-bit version of the x86 instruction set.
.NET Framework (pronounced dot net) is a software framework developed by Microsoft that runs primarily on Microsoft Windows.
Back-pointer, C++ Pointers, Data pointer, Pointer (computer science), Pointer (computing), Pointer (programming), Pointer arithmetic, Pointer error, Pointer structure, Pointer type, Raw pointer, Software pointer, Void pointer.