Skip to content

Glossary

These are concepts I find especially confusing, ambiguous, or difficult to remember.

abstraction
mass noun
A process or result of generalization, removal of properties, or distancing of ideas from objects.2
calculate
verb
To determine mathematically in the case of a number or amount, or in the case of an abstract problem to deduce the answer using logic, reason or common sense.22 23
complacent
adjective
Apathetic with regard to an apparent need or problem.24
greenfield project
count noun
A project that lacks constraints imposed by prior work.
The analogy is to that of construction on greenfield land where there is no need to work within the constraints of existing buildings or infrastructure.79 80
intelligence
mass noun
The ability to perceive or infer information, and to retain it as knowledge to be applied towards adaptive behaviors within an environment or context.90
obsolescence
mass noun
The state of being which occurs when an object, service, or practice is no longer wanted even though it may still be in good working order.107
playback
mass noun
The replaying of something previously recorded, especially sound or moving images.113
rabbit hole
count noun
A time-consuming tangent or detour, often from which it is difficult to extricate oneself.116
system
count noun
A group of interacting or interrelated entities that form a unified whole.147 A system is delineated by its spatial and temporal boundaries, surrounded and influenced by its environment, described by its structure and purpose and expressed in its functioning.148
vacuous
adjective
Empty; void; lacking meaningful content.153

computer science glossary

accumulator
count noun
A variable whose contents are incremented to represent the results of a running total.3
Hyponym of variable.
arity
mass noun
The number of operands a subroutine takes.4
array
count noun
A collection of same-type data items that can be selected by indices computed at run-time.5
Hypernym of array data structure.
array data structure
count noun
A data structure consisting of a collection of elements (values or variables, each identified by at least one array index or key. An array is stored such that the position of each element can be computed from its index tuple by a mathematical formula.7 8 9 The simplest type of data structure is a linear array, also called one-dimensional array. The memory address of the first element of an array is called first address or foundation address.6
The term array is often used to mean array data type, a kind of data type provided by most high-level programming languages that consists of a collection of values or variables that can be selected by one or more indices computed at run-time. Array types are often implemented by array structures; however, in some languages they may be implemented by hash tables, linked lists, search trees, or other data structures.6
Because the mathematical concept of a matrix can be represented as a two-dimensional grid, two-dimensional arrays are also sometimes called matrices. In some cases the term "vector" is used in computing to refer to an array, although tuples rather than vectors are the more mathematically correct equivalent. Tables are often implemented in the form of arrays, especially lookup tables; the word table is sometimes used as a synonym of array.6
Arrays are among the oldest and most important data structures, and are used by almost every program. They are also used to implement many other data structures, such as lists and strings. They effectively exploit the addressing logic of computers. In most modern computers and many external storage devices, the memory is a one-dimensional array of words, whose indices are their addresses. Processors, especially vector processors, are often optimized for array operations.6
Arrays are useful mostly because the element indices can be computed at run time. Among other things, this feature allows a single iterative statement to process arbitrarily many elements of an array. For that reason, the elements of an array data structure are required to have the same size and should use the same data representation. The set of valid index tuples and the addresses of the elements (and hence the element addressing formula) are usually,9 11 but not always,8 fixed while the array is in use.6
The term is also used, especially in the description of algorithms, to mean associative array or "abstract array", a theoretical computer science model (an abstract data type or ADT) intended to capture the essential properties of arrays.
An array data structure is also known simply as an array.6
For example, an array of 10 32-bit integer variables, with indices 0 through 9, may be stored as 10 words at memory addresses 2000, 2004, 2008, ... 2036, so that the element with index i has the address 2000 + 4 × i.10 6
Hyponym of array.
assignment construct
A construct that 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). In most imperative programming languages it is a fundamental construct. Assignment constructs can be expressions, statements, or operators.12
Hypernym of assignment operator.
assignment operator
count noun
An assignment construct that is an operator.
In C++, the operator is an equality sign (=).13
Hypernym of augmented assignment operator.
Hyponym of assignment construct and operator.
associativity
mass noun
The property of an operator which determines how it is grouped with operators of the same precedence in the absence of parentheses.14
atomicity
mass noun
The state of a system (often a database system) in which either all stages complete or none complete.15
augmented assignment operator
count noun
An assignment operator that is generally used to replace a statement where an operator takes a variable as one of its arguments and then assigns the result back to the same variable. In expression-oriented programming languages such as C, assignment and augmented assignment are expressions, which have a value. This allows their use in complex expressions. However, this can produce sequences of symbols that are difficult to read or understand, and worse, a mistype can easily produce a different sequence of gibberish that although accepted by the compiler does not produce desired results. In other languages, such as Python, assignment and augmented assignment are statements, not expressions, and thus cannot be used in complex expressions. As with assignment, in these languages augmented assignment is a form of right-associative assignment.
For example, x += 1 is expanded to x = x + (1).16
Hyponym of assignment operator.
binary file
count noun
A type of file that is not a text file.17 Binary files are usually thought of as being a sequence of octets, and typically contain octets that are intended to be interpreted as something other than text characters. Compiled computer programs are typical examples; indeed, compiled applications are sometimes referred to, particularly by programmers, as binaries. But binary files can also mean that they contain any type of file content17, including (but not limited to) images, sounds, and compressed versions of other files.
Some binary files contain headers, blocks of metadata used by a computer program to interpret the data in the file. The header often contains a signature or magic number which can identify the format. For example, a GIF file can contain multiple images, and headers are used to identify and describe each block of image data. The leading bytes of the header would contain text like GIF87a or GIF89a that can identify the binary as a GIF file. If a binary file does not contain any headers, it may be called a flat binary file.18
Hyponym of file.
block
count noun
A group of one or more expressions, declarations, statements or other units of code that are related in such a way as to comprise a whole. A programming language that permits the creation of blocks, including blocks nested within other blocks, is called a block-structured programming language. Blocks are fundamental to structured programming, where control structures are formed from blocks.
The function of blocks in programming is to enable groups of statements to be treated as if they were one statement, and to narrow the lexical scope of objects such as variables and subroutines declared in a block so that they do not conflict with those having the same name used elsewhere. In a block-structured programming language, the objects named in outer blocks are visible inside inner blocks, unless they are masked by an object declared with the same name.19
In C++, blocks are delimited by curly brackets ({ ... }).
Boolean
adjective
Having one of two possible values (usually denoted true and false), intended to represent the two truth values of logic and Boolean algebra.21
Boolean data type
proper noun
A data type limited to Boolean values. The Boolean data type is primarily associated with conditional statements, which allow different actions by changing control flow depending on whether a programmer-specified Boolean condition evaluates to true or false.20
For its etymology, it is named after George Boole, who first defined an algebraic system of logic in the mid 19th century.20
Hyponym of data type.
condition-controlled loop construct
count noun
A loop construct that iterates while some condition is met.30
Hypernym of do-while-loop construct and while-loop construct.
Hyponym of loop construct.
condition
count noun
A Boolean logical clause or phrase.31
conditional
count noun
An instruction that branches depending on the truth value of a condition at that point.25
conditional expression
count noun
An expression that is similar to an if-construct, but returns a value as a result.76
if (condition) then
    (consequent)
else
    (alternative)
(condition) ? (consequent) : (alternative)
The two pseudocode constructs above are equivalent.26
Hyponym of expression.
conditional operator
count noun
A ternary operator that is part of the syntax for basic conditional expressions in several programming languages.29 A conditional operator is similar to, but not equivalent to, a logical operator.27 28 It is commonly referred to as an inline if (iif), or ternary if.29
For example, a ? b : c evaluates to b if the value of a is true, and otherwise to c.29
In C++, the operator is a question mark and a colon (?:).
Hyponym of operator.
constant
count noun
An identifier that is bound to an invariant value; a fixed value given a name to aid in readability of source code.32
In C++, there is a convention of naming constants with all caps.33
control flow
mass noun
The order in which individual statements, instructions or function calls of an imperative program are executed or evaluated. The emphasis on explicit control flow distinguishes an imperative programming language from a declarative programming language. Within an imperative programming language, a control structure is a construct that directs the control flow, and a control flow statement is a statement, the execution of which results in a choice being made as to which of two or more paths to follow. For non-strict functional languages, functions and language constructs exist to achieve the same result, but they are usually not termed control flow statements. A set of statements is in turn generally structured as a block which, in addition to grouping, also defines a lexical scope. Interrupts and signals are low-level mechanisms that can alter the flow of control in a way similar to a subroutine, but usually occur as a response to some external stimulus or event (that can occur asynchronously), rather than execution of an in-line control flow statement.34
Control flow is also known as flow of control.34
control structure
count noun
A construct, made up of one or more blocks, that directs the control flow of a program when given certain conditions and parameters. It is the basic decision-making process in computing. Its initial conditions and parameters are called preconditions. Preconditions are the state of variables before entering a control structure. Based on those preconditions, the computer runs an algorithm (the control structure) to determine what to do. The result is called a postcondition. Postconditions are the state of variables after the algorithm is run.35
By analogy, suppose the flow of control is the flow of traffic, and the control structure is an intersection. A vehicle is arriving at the intersection, and the traffic light at the intersection is red. The control structure must determine the proper course of action to assign to the vehicle. Precondition: The vehicle is in motion. Treatment of information through a control structure begins. Is the traffic light green? If so, then the vehicle may stay in motion. Is the traffic light red? If so, then the vehicle must stop. Treatment ends. Postcondition: The vehicle comes to a stop. Thus, upon exiting the control structure, the vehicle is stopped.35
control variable
count noun
A variable that is used to regulate the flow of control of a program. In definite iteration, control variables are variables which are successively assigned (or bound to) values from a predetermined sequence of values.36 37
Hyponym of variable.
count-controlled loop construct
count noun
A loop construct that iterates a certain number of times.38
Hypernym of for-loop construct.
Hyponym of loop construct.
counter
count noun
A variable whose contents are incremented or decremented40 by a fixed number39 to represent the results of counting.41
Hypernym of loop counter.
Hyponym of variable.
data type
count noun
An attribute of data which tells the compiler or interpreter how the programmer intends to use the data. Most programming languages support common data types of real, integer and Boolean. A data type constrains the values that an expression, such as a variable or a subroutine, might take. This data type defines the operations that can be done on the data, the meaning of the data, and the way values of that type can be stored. A type of value from which an expression may take its value.42 43 44
Hypernym of Boolean data type.
data validation
mass noun
The process of ensuring data have undergone data cleansing to ensure they have data quality, that is, that they are both correct and useful. It uses routines, often called "validation rules" "validation constraints" or "check routines", that check for correctness, meaningfulness, and security of data that are input to the system.45
datum
count noun, plurally data
Any sequence of one or more symbols given meaning by one or more specific acts of interpretation.
A datum requires interpretation to become information. To translate it to information, there must be several known factors considered. The factors involved are determined by the creator of the datum and the desired information. The term metadata is used to reference the data about the data. Metadata may be implied, specified or given. Data relating to physical events or processes will also have a temporal component. In almost all cases this temporal component is implied. This is the case when a device such as a temperature logger receives data from a temperature sensor. When the temperature is received it is assumed that the data has a temporal references of "now". So the device records the date, time and temperature together. When the data logger communicates temperatures, it must also report the date and time (metadata) for each temperature.
Digital data is data that is represented using the binary number system of ones (1) and zeros (0), as opposed to analog representation. In modern (post 1960) computer systems, all data is digital. Data within a computer, in most cases, moves as parallel data. Data moving to or from a computer, in most cases, moves as serial data. See Parallel communication and Serial communication. Data sourced from an analog device, such as a temperature sensor, must pass through an "analog to digital converter" or "ADC" (see [Analog-to-digital converter] to convert the analog data to digital data.
Data representing quantities, characters, or symbols on which operations are performed by a computer are stored and recorded on magnetic, optical, or mechanical recording media, and transmitted in the form of digital electrical signals.46
A program is a set of data that consists of a series of coded software instructions to control the operation of a computer or other machine.47 Physical computer memory elements consist of an address and a byte/word of data storage. Digital data are often stored in relational databases, like tables or SQL databases, and can generally be represented as abstract key/value pairs.
Data can be organized in many different types of data structures, including arrays, graphs, and objects. Data structures can store data of many different types, including numbers, strings and even other data structures. Data pass in and out of computers via peripheral devices. The total amount of digital data in 2007 was estimated to be 281 billion gigabytes (= 281 exabytes).48 49 Digital data comes in these three states: data at rest, data in transit and data in use. 50
declaration
count noun
A language construct that introduces an identifier, specifies its properties, and declares its meaning.51 Declarations are most commonly used for subroutines, variables, constants, and classes, but can also be used for other entities such as enumerations and type definitions.51 Beyond the name (the identifier itself) and the kind of entity (subroutine, variable, etc.), declarations typically specify the data type for variables and constants, or the type signature for subroutines. Types may also include dimensions, such as for arrays. A declaration is used to announce the existence of the entity to the compiler; this is important in those strongly typed languages that require functions, variables, and constants, and their types to be specified with a declaration before use, and is used in forward declaration.52 The term "declaration" is frequently contrasted with the term "definition",51 but meaning and usage varies significantly between programming languages.53
In informal usage, it refers only to a pure declaration (types only, no value or body).53
In C++, declarations introduce (or re-introduce) names into a C++ program. Each kind of entity is declared differently. Definitions are declarations that are sufficient to use the entity identified by the name.54 A declaration of a function that does not include a body is called a function prototype.53
decrement
verb
To decrease in value by a basic quantity unit, especially by 1.57
decrement operator
count noun
A unary operator that decreases the value of its operand by 1. The operand must have an arithmetic or pointer data type, and must refer to a modifiable data object. Pointer values are decreased by an amount that makes them point to the next element adjacent in memory.55
In C++, the operator is two hyphen-minuses (--), and its operand must be an lvalue 56. It can be used as a prefix (--foo) or a postfix (foo--). As a prefix, it decreases the value of its operand by 1, and the value of the expression is the resulting decremented value. As a postfix, it decreases the value of its operand by 1, but the value of the expression is the operand's original value prior to the decrement operation.55
Hyponym of operator.
definition
count noun
A language construct that instantiates or implements an identifier.58
In informal usage, it refers to a declaration that includes a value or body.58
In C++, definitions are declarations that fully define the entity introduced by the declaration.59
direct access
mass noun
The ability to access an arbitrary element of a sequence in equal time or any item of data from a population of addressable elements roughly as easily and efficiently as any other, no matter how many elements may be in the set. It is typically contrasted to sequential access.
For example, data might be stored notionally in a single sequence like a row, in two dimensions like rows and columns on a surface, or in multiple dimensions. However, given all the coordinates, a program can access each record about as quickly and easily as any other. In this sense the choice of data item is arbitrary in the sense that no matter which item is sought, all that is needed to find it, is its address, that is to say, the coordinates at which it is located, such as its row and column (or its track and record number on a magnetic drum). The opposite is sequential access, where a remote element takes longer time to access.[1] For example, compare an ancient [scroll](https://en.wikipedia.org/wiki/Scroll_(parchment) (sequential: all material prior to the data needed must be unrolled) and a book (direct: can be immediately flipped open to any arbitrary page). A more modern example is a cassette tape (sequential: one must fast forward through earlier songs to get to later ones) and a CD (direct access: one can skip to the track wanted, knowing that it would be the one retrieved).
In data structures, direct access implies the ability to access any entry in a list in constant time (independent of its position in the list and of list's size). Very few data structures can guarantee this, other than arrays (and related structures like dynamic arrays). Direct access is required, or at least valuable, in many algorithms such as binary search, integer sorting or certain versions of sieve of Eratosthenes.62 Other data structures, such as linked lists, sacrifice direct access to permit efficient inserts, deletes, or reordering of data. Self-balancing binary search trees may provide an acceptable compromise, where access time is not equal for all members of a collection, but the maximum time to retrieve a given member grows only logarithmically with its size.63
It is also less precisely known as random access. At first the term was used because the process had to be capable of finding records no matter in which sequence they were required.60 However, soon the term "direct access" gained favor because one could directly retrieve a record, no matter what its position might be.61 The operative attribute however is that the device can access any required record immediately on demand.63
do-while-loop construct
count noun
A control flow construct that executes a block of code at least once, and then repeatedly executes the block, or not, depending on a given Boolean condition at the end of the block. Because the do-while-loop construct checks the condition after the block is executed, the control structure is often also known as a posttest loop. Compare this with the while loop construct, which tests the condition before the code within the block is executed.64
Hyponym of condition-controlled loop construct.
else-clause
count noun
Part of an if-construct following an if-clause.83 84
else
    (alternative)
Meronym of if-construct.
else-if-clause
count noun
Part of an if-construct following an if-clause.83 84
else if (condition) then
    (consequent 2)
Meronym of if-construct.
entity
count noun
Anything that claims independent existence, as opposed to merely being part of a whole. It can exist as a subject or as an object, actually or potentially, concretely or abstractly.65
In computer science, entities include classes, constants, data types, enumerations, labels, packages, subroutines, type definitions, variables.67
In C++, entities include values, objects, references, structured bindings (since C++17), functions, enumerators, types, class members, templates, template specializations, namespaces, and parameter packs. Preprocessor macros are not C++ entities.66
entry point
count noun
The point in a program where the first instructions are executed, and where the program has access to command line arguments.68 Python-Markdown has a different, unclear definition in the context of extensions.
expression
A combination of one or more constants, variables, operators, and subroutines that a programming language interprets (according to its particular rules of precedence and of association) and computes to produce ("to return", in a stateful environment) another value. This process, as for mathematical expressions, is called evaluation. In simple settings, the resulting value is usually one of various primitive types, such as numerical, string, and logical; in more elaborate settings, it can be an arbitrary complex data type.71
For example, 2+3 is an arithmetic and programming expression which evaluates to 5. A variable is an expression because it denotes a value in memory, so y+6 is an expression. An example of a relational expression is 4≠4, which evaluates to false.71 69 70
Hypernym of conditional expression and relational expression.
file
count noun
An aggregation of data on a storage device, identified by a name. On most modern operating systems, files are organized into one-dimensional arrays of bytes. By using computer programs, a person can open, read, change, save, and close a computer file. Computer files may be reopened, modified, and copied an arbitrary number of times. Typically, files are organised in a file system, which keeps track of where the files are located on disk and enables user access. The format of a file is defined by its content since a file is solely a container for data, although, on some platforms the format is usually indicated by its filename extension, specifying the rules for how the bytes must be organized and interpreted meaningfully. For example, the bytes of a plain text file (.txt in Windows) are associated with either ASCII or UTF-8 characters, while the bytes of image, video, and audio files are interpreted otherwise. Most file types also allocate a few bytes for metadata, which allows a file to carry some basic information about itself.72
The six most basic file operations a program can perform on a file are: create a new file, change the access permissions and attributes of a file, open a file and make the file contents available to the program, read data from a file, write data to a file, or close a file and terminate the association between it and the program.
Hypernym of binary file and text file.
flag
count noun
A variable or memory location that stores a Boolean value, typically either recording the fact that a certain event has occurred or requesting that a certain optional action take place.73
Hyponym of variable.
for-loop construct
count noun
A control flow construct that allows a block of code to be executed repeatedly, typically when the number of iterations is known before entering the loop. A for-loop construct can be thought of as shorthand for a while-loop construct. A for-loop construct has two parts: a for-loop header specifying the iteration, and a for-loop body which is executed once per iteration. The header often declares an explicit loop counter, which allows the body to know which iteration is being executed.74
In C++, the for-loop construct is a pretest-loop construct.77 75
Hyponym of count-controlled loop construct.
identifier
count noun
A lexical token that names an entity. Identifiers are used extensively in virtually all information processing systems. Identifying entities makes it possible to refer to them, which is essential for any kind of symbolic processing.81
In computer languages, an identifier is a token that names a computer language entity. Some of the kinds of entities an identifier might denote include variables, constants, data types, labels, subroutines, and packages.81
In C++ identifiers are labels used for various things, including functions, classes, namespaces, and variables. The rules for identifiers are the same whether the identifier refers to a variable, function, or whatever else. In general, the name of an identifier must consist of the characters a-z, A-Z, 0-9 and _, not begin with a digit or _ and not be a keyword. There are more rules that must be followed.
Identifiers are usually not stored in the final program (unless certain debugging settings are used) so the user need not worry about descriptive names giving hackers clues. They also don't have to worry about the size of identifiers; if they're stripped out, they take up no space in the final program.82
if-clause
count noun
Part of an if-construct.83 84
if (condition) then
    (consequent)
Meronym of if-construct.
if-construct
count noun
A conditional construct made up of an if-clause and optionally one or more else-if-clauses and an else-clause.
if (condition) then
    (consequent)
else
    (alternative)
end if
In the pseudocode construct above, (condition) represents a conditional statement, (consequent) represents an expression or statement, and (alternative) represents an expression or statement.
When an interpreter finds an if, it expects a condition ((condition)) and evaluates that condition. If the condition is true, the statements following the then ((consequent)) are executed. Otherwise, the execution continues in the following clause, either in the else clause (which is usually optional, and in this case contains (alternative)) or, if there is no else clause, then after the end if. After either clause has been executed, control returns to the point after the end if.85
if (condition) then
    (consequent 1)
else if (condition) then
    (consequent 2)
else
    (alternative)
end if
In the pseudocode construct above, else if is added, making it possible to combine several conditionals. Only the statements following the first (condition) that is found to be true will be executed. All other statements will be skipped.86
Holonym of else-clause, else-if-clause, and if-clause.
increment
verb
To increase in value by a basic quantity unit, especially by 1.87
increment operator
count noun
A unary operator that increases the value of its operand by 1. The operand must have an arithmetic or pointer data type. Pointer values are increased by an amount that makes them point to the next element adjacent in memory.88
In C++, the operator is two plus signs (++), and its operand must be an lvalue 89. It can be used as a prefix (++foo) or a postfix (foo++). As a prefix, it increases the value of its operand by 1, and the value of the expression is the resulting incremented value. As a postfix, it increases the value of its operand by 1, but the value of the expression is the operand's original value prior to the increment operation.88
Hyponym of operator.
iteration
count noun
A single repetition of the statements within a repetitive process, especially a loop construct.91
leading
adjective
Occuring at the beginning92 of a line.
⋅⋅For example, this line contains two leading dots.
literal
count noun
A notation for representing a fixed value in source code.93
logical operator
count noun
An operator used to connect two or more relational expressions97, such that the value of the expression produced depends only on that of the relational expressions. It is also called a logical connective, sentential connective, or sentential operator.
The most common logical operators are binary operators (also called dyadic connectives) which join two sentences. Also commonly, negation is considered to be a unary operator.94 95
In C++, the logical negation (NOT) reverses the truth of an expression.97 The operator is an exclamation mark (!), for example !a means not a.96
In C++, the logical AND operator connects the logic of multiple expressions using short-circuit evaluation.97 The operator is two ampersands (&&), for example a && b means a and b.96
In C++, the logical inclusive OR operator connects the logic of multiple expressions using short-circuit evaluation.97 The operator is two pipe characters (||), for example a || b means a or b.96
Hyponym of operator.
loop construct
count noun
A construct, made up of one or more statements, that may be carried out multiple successive times in a sequence of iterations. The statements “inside” the loop construct (also known as the body of the loop construct) are executed in one of four possible ways: a specified number of times, once for each of a collection of items, while some condition is met, or indefinitely.98
A loop construct has a loop counter.
Hypernym of condition-controlled loop construct and count-controlled loop construct.
loop counter
count noun
A counter that controls the iterations of a loop construct. Most uses of a loop construct result in the loop counter taking on a range of integer values in some orderly sequences (for example, starting at 0 and ending at 10 in increments of 1). Loop counters change with each iteration of a loop, providing a unique value for each individual iteration. The loop counter is used to decide when the loop should terminate and for the program flow to continue to the next instruction after the loop.99 A loop counter must be initialized before it is used.100
Hyponym of counter.
lvalue
count noun
A value that refers to a data object that persists beyond a single expression.102 In many languages, notably the C family, an lvalue has a storage address that is programmatically accessible to the running program (for example, via some address-of operator like & in C/C++), meaning that it is a variable or dereferenced reference to a certain memory location.104
For its etymology, it comes from L +‎ value, where L stands for left-hand side, deriving from the typical mode of evaluation on the left and right hand side of an assignment statement.104 In context of the C programming language it is usually expanded as locator value.103
In C, if an lvalue refers to a modifiable data object, it is called a modifiable lvalue.101
Hyponym of value.
nest
verb
To contain an object within a similar object.105
To organize information into layers.105
object
count noun
A value in memory referenced by an identifier, such as a variable, a data structure, a subroutine, or a method.106
In object-oriented programming (a class-based paradigm), object refers to a particular instance of a class, where the object can be a combination of variables, subroutines, and data structures.106
octet
count noun
A unit of digital information that consists of eight bits. The term is often used when the term byte might be ambiguous, as the byte has historically been used for storage units of a variety of sizes.108
operand
count noun
The part of a computer instruction which specifies what data is to be manipulated or operated on, while at the same time representing the data itself.
operator
count noun
A construct which behaves generally like a subroutine, but which differs syntactically or semantically from a usual subroutine.110
Operators have associativity. They may be associative, left-associative, right-associative or non-associative. For associative operators, the operations can be grouped arbitrarily. For left-associative operators, the operations are grouped from the left. For right-associative operators, the operations are grouped from the right. For non-associative operators, the operations cannot be chained, often because the output type is incompatible with the input types.111
Hypernym of assignment operator, conditional operator, decrement operator, increment operator, logical operator, and relational operator.
performant
adjective
Capable of or characterized by an adequate or excellent level of performance or efficiency.
Usage notes: In computing jargon, something performant is not necessarily efficient or optimal; it is “good enough” in a sense that performance levels meet or exceed the expectations of end users.112
programmatical freedom
mass noun
The ability to run a program for any purpose and to study, change, and distribute it and any adapted versions.114 This ability can be explained in more detail with four freedoms that specify the actions that can be taken on or with a program. The first action that can be performed (or freedom zero) is to run a program as one wishes, for any purpose. The second action that can be performed (or freedom one) is to study how a program works and change it to do one's computing as one wishes. The third action that can be performed (or freedom two) is to redistribute copies of a program. The fourth action that can be performed (or freedom three) is to distribute copies of a program one has changed. Freedoms one and three require the program's source code to be available.115 Taken together, freedoms zero, one, and three make forking possible.
refresh
verb
To retrieve data from a storage medium and place it into into computer memory, replacing previously-retrieved data from the same storage medium.117
relational expression
count noun
An expression created using a relational operator, also called a condition.118
Hyponym of expression.
relational operator
count noun
A programming language construct or operator that tests or defines some kind of relation between two entities. These include numerical equality (e.g., [5 = 5]) and inequality (e.g., [4 ≥ 3]). Relational operators can be seen as special cases of logical predicates.119
Hyponym of operator.
running total
A summation of a sequence of numbers which is updated each time a new number is added to the sequence, by adding the value of the new number to the previous running total. Another term for it is partial sum.1
rvalue
count noun
A temporary value that does not persist beyond the expression that uses it.120
For its etymology, it comes from R +‎ value, where R stands for right-hand side, deriving from the typical mode of evaluation on the left and right hand side of an assignment statement.121
Hyponym of value.
sentinel value
count noun
A value that marks the end of sequence, typically in a loop construct or recursive algorithm.123
A sentinel value is also referred to as a flag value, trip value, rogue value, signal value, or dummy data122, and is sometimes known as an Elephant in Cairo due to a joke where this is used as a physical sentinel. In safe languages, most uses of sentinel values could be replaced with option types, which enforce explicit handling of the exceptional case.
Hyponym of value.
separator
count noun
A token that demarcates boundaries between two separate statements. A separator is also known as a punctuator.124
sequential access
mass noun
Accessing a group of elements (such as data in a memory array or a disk file or on magnetic tape data storage in a predetermined, ordered sequence. Sequential access is sometimes the only way of accessing the data, for example if it is on a tape. It may also be the access method of choice, for example if all that is wanted is to process a sequence of data elements in order.125 However, there is no consistent definition of sequential access or sequentiality.126 127 128 129 130 131 132 133 In fact, different sequentiality definitions can lead to different sequentiality quantification results. In spatial dimension, request size, strided distance, backward accesses, re-accesses can affect sequentiality. For temporal sequentiality, characteristics such as multi-stream and inter-arrival time threshold has impact on the definition of sequentiality.134 135
In data structures, a data structure is said to have sequential access if one can only visit the values it contains in one particular order. The canonical example is the linked list. Indexing into a list that has sequential access requires O(n) time, where n is the index. As a result, many algorithms such as quicksort and binary search degenerate into bad algorithms that are even less efficient than their naive alternatives; these algorithms are impractical without direct access. On the other hand, some algorithms, typically those that do not have index, require only sequential access, such as mergesort, and face no penalty.135
statement
count noun
A syntactic unit of an imperative programming language that changes the program state or performs some kind of action.136 138 It also has meaning.139 A program written in such a language is formed by a sequence of one or more statements. A statement may have internal components (e.g., expressions). Boundaries between statements are demarcated by separators, and the end of a statement is demarcated by a terminator. 137
subroutine
count noun
A sequence of program instructions that performs a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed. It may be defined within a single program, or separately in a library that can be used by many programs. In different programming languages, a subroutine may be called a procedure, a function, a routine, a method, or a subprogram. The generic term callable unit is sometimes used.140 142
A subroutine has arity.
In C++, subroutines are called functions (further classified as member functions when associated with a class, or free functions141 when not). These languages use the special keyword void to indicate that a function takes no parameters or does not return any value. Note that C++ functions can have side-effects, including modifying any variables whose addresses are passed as parameters (that is, passed by reference).142
switch construct
count noun 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 search and map.144
symbol
count noun
A waveform, a state or a significant condition of a communication channel that persists for a fixed period of time. It may be described as either a pulse in digital baseband transmission or a tone in passband transmission using modems. A sending device places symbols on the channel at a fixed and known symbol rate, and the receiving device has the job of detecting the sequence of symbols in order to reconstruct the transmitted data. There may be a direct correspondence between a symbol and a small unit of data. For example, each symbol may encode one or several binary digits or 'bits'. The data may also be represented by the transitions between symbols, or even by a sequence of many symbols.145
syntax highlighting
mass noun
The displaying of text, especially source code, in different colors and fonts to indicate syntactic structure.146
terminator
count noun
A token that demarcates the end of an individual statement.149
In C++, it is a semicolon (;).
text file
count noun
A type of file that is structured as a sequence of lines of electronic text. A text file exists stored as data within a file system. It refers to a type of container, while plain text refers to a type of content.150
Hyponym of file.
trailing
adjective
Occuring at the end151 of a line.
For example, this line contains two trailing dots.⋅⋅
truncate
verb
To shorten a decimal number by removing trailing or leading digits.152
value
count noun
A known or unknown quantity of information.154
Hypernym of lvalue, rvalue, and sentinel value.
variable
count noun
An object whose value can change. This is in contrast with a constant, whose value cannot change. Variables are fundamental to programming, because without them, a program's behavior could not change (it would run the same way every time) and even simple programs would require enormous amounts of memory because, if objects' values cannot change, each new value needed would need a new object.
The variable identifier is the usual way to reference the stored value, in addition to referring to the variable itself, depending on the context. This separation of identifier and content allows the identifier to be used independently of the exact information it represents. The variable identifier in computer source code can be bound to a value during run time, and the value of the variable may thus change during the course of program execution.155 156 157
A variable is also known as a scalar.157
In C++, a variable is a quantity of memory that has been reserved for the program's use. It is referred to using a variable identifier, so the user doesn't need to worry about where it is in memory (though they can find out its memory address, and even specify its location, if they want). The C++ type system keeps track of the size of the memory block, and how to interpret the value in it (that is, it will know whether the value 65 in a certain memory block actually refers to the number 65, the letter 'A' (the ASCII/Unicode code number for the character 'A' is 65), or even perhaps a complex number with real part 6 and imaginary part 5). Creating a variable in C++ requires at least two things: a variable identifier and a type.158
Hypernym of accumulator, control variable, counter, and flag.
while-loop construct
count noun
A control flow construct that allows a block of code to be executed repeatedly based on a given Boolean condition. It can be thought of as a repeating if-construct. It consists of a block of code and a condition/expression.159 The condition/expression is evaluated, and if the condition/expression is true,159 the code within the block is executed. This repeats until the condition/expression becomes false. Because the while loop construct checks the condition/expression before the block is executed, the control structure is often also known as a pretest-loop construct. Compare this with the do while loop construct, which tests the condition/expression after the loop has executed.161
int x = 0;
while (x < 5) 
{
    printf ("x = %d\n", x);
    x++;
}
For example, the code fragment above first checks whether x is less than 5, which it is, so then the loop body within the curly brackets is entered, where the printf subroutine is run and x is incremented by 1. After completing all the statements in the loop body, the condition, (x < 5), is checked again, and the loop is executed again, this process repeating until the variable x has the value 5.
while (true)
{
    //do complicated stuff
    if (someCondition) break;
    //more stuff
}
The code fragment above shows that it is possible, and in some cases desirable, for the condition to always evaluate to true, creating an infinite loop. When such a loop is created intentionally, there is usually another control structure (such as a break statement) that controls termination of the loop.
The code fragments above are written in the C programming language (as well as Java, C#,160 Objective-C, and C++, which use the same syntax in this case).
Hyponym of condition-controlled loop construct.

protologism section

post-endmost-slash path component
compound count noun
The path component of a URL after the endmost slash (/).
For example, the Git page on Wikibooks URL is https://en.wikibooks.org/wiki/Git, so its post-endmost-slash path component would be Git.
I have created this word because I could not find an existing word specificially referring to the path component of a URL after the endmost slash.

licensing

Some rights reserved: CC BY-SA 3.0.78 Includes significant content from:

on Wikipedia, with changes made, and:

on Wikiversity, with changes made, and:

on Wiktionary, with changes made, and:

on Stack Overflow, with changes made, and:

on cppreference.com, with changes made.


  1. This definition is based on Wikipedia's definition

  2. This definition is based on information from Wikipedia's definition of “abstraction”

  3. This definition is based on an answer on Stack Overflow by Alberto Moriconi and on information from page 257 of “Starting Out with C++: From Control through Objects - Edition: 8th”, ISBN 978-0-13-4037325. 

  4. This definition is the same as Wiktionary's definition, except for the removal of the words “arguments” and “operation”, which do not seem to apply in a computer science context. 

  5. This definition is based on information from Wikipedia's definition of an array in the context of computer science

  6. This definition is based on information from Wikipedia's definition of “array data structure”

  7. Black, Paul E. (13 November 2008). "array". Dictionary of Algorithms and Data Structures. National Institute of Standards and Technology. Retrieved 22 August 2010. 

  8. Bjoern Andres; Ullrich Koethe; Thorben Kroeger; Hamprecht (2010). "Runtime-Flexible Multi-dimensional Arrays and Views for C++98 and C++0x". arXiv:1008.2909 [cs.DS]. 

  9. Garcia, Ronald; Lumsdaine, Andrew (2005). "MultiArray: a C++ library for generic programming with arrays". Software: Practice and Experience. 35 (2): 159–188. doi:10.1002/spe.630. ISSN 0038-0644

  10. David R. Richardson (2002), The Book on Data Structures. iUniverse, 112 pages. ISBN 0-595-24039-9 978-0-595-24039-5

  11. Veldhuizen, Todd L. (December 1998). Arrays in Blitz++ (PDF). Computing in Object-Oriented Parallel Environments. Lecture Notes in Computer Science. 1505. Springer Berlin Heidelberg. pp. 223–230. doi:10.1007/3-540-49372-7_24. ISBN 978-3-540-65387-5

  12. This definition is essentially the same as Wikipedia's definition

  13. This definition is essentially the same as Wikipedia's definition

  14. This definition is the same as Wiktionary's definition

  15. This definition is the same as Wiktionary's definition

  16. This definition is based on Wikipedia's definition

  17. "Binary file definition by The Linux Information Project (LINFO)". www.linfo.org. Retrieved 2017-10-12. 

  18. This definition is based on Wikipedia's definition

  19. This definition is based on Wikipedia's definition of a block as a page and as a section of a page

  20. This definition is based on Wikipedia's definition of Boolean data type and Data type

  21. This definition is based on Wikipedia's definition

  22. "calculate | Definition of calculate in English by Oxford Dictionaries". Oxford Dictionaries | English. Retrieved 2018-08-30. 

  23. This definition is based on information from the “Calculation” page on Wikipedia

  24. This definition is based on information from Wiktionary's definition of “complacent”

  25. This definition is the same as Wiktionary's definition

  26. Based on information from page 199 of “Starting Out with C++: From Control through Objects - Edition: 8th”, ISBN 978-0-13-4037325. 

  27. Cogwheel. "What is the difference between logical and conditional /operator/". Stack Overflow. Retrieved 9 April 2015. 

  28. This definition is based on a definition from Wikipedia

  29. This definition is based on a definition from Wikipedia

  30. This definition is loosely based on Wikipedia's definition

  31. This definition is based on definitions from Wiktionary and Wikipedia

  32. This definition is the same as Wiktionary's definition

  33. This definition is based on information from an answer on Stack Overflow by Mnementh

  34. This definition is based on information from Wikipedia's definition of “control flow”

  35. This definition is based on information from the “Category:Control Structures” page on Rosetta Code, Control structures and statements in C and C++, and Wikiversity's definition of “control structure”

  36. Watt, David A. (2004). Programming Language Design Concepts. Wiley. pp. 84–85. 

  37. This definition is based on Wikipedia's definition

  38. This definition is based on Wikipedia's definition

  39. https://stackoverflow.com/questions/12983063/what-is-the-difference-between-a-counter-and-an-accumulator/12983603#12983603 

  40. Based on information from page 241 of “Starting Out with C++: From Control through Objects - Edition: 8th”, ISBN 978-0-13-4037325. 

  41. This definition is based on a definition from Wiktionary

  42. type at the Free On-line Dictionary of Computing 

  43. [Shaffer, C. A. (2011). Data Structures & Algorithm Analysis in C++ (3rd ed.). Mineola, NY: Dover. 1.2. ISBN 978-0-486-48582-9

  44. This definition is based on Wikipedia's definition

  45. This definition is essentially the same as Wikipedia's definition

  46. "data". Oxford Dictionaries. Archived from the original on 2012-10-06. Retrieved 2012-10-11. 

  47. "computer program". The Oxford Pocket Dictionary of Current English. Archived from the original on 2011-11-28. Retrieved 2012-10-11. 

  48. Paul, Ryan (March 12, 2008). "Study: amount of digital info > global storage capacity". Ars Technics. Archived from the original on March 13, 2008. Retrieved 2008-03-12. 

  49. Gantz, John F.; et al. (2008). "The Diverse and Exploding Digital Universe". International Data Corporation via EMC. Archived from the original on 2008-03-11. Retrieved 2008-03-12. 

  50. This definition is based on Wikipedia's definition

  51. "A declaration specifies the interpretation and attributes of a set of identifiers. A definition of an identifier is a declaration for that identifier that:

    • for an object [variable or constant], causes storage to be reserved for that object;
    • for a function, includes the function body;
    • for an enumeration constant, is the (only) declaration of the identifier;
    • for a typedef name, is the first (or only) declaration of the identifier."

    C11 specification, 6.7: Declarations, paragraph 5. 

  52. Mike Banahan. "2.5. Declaration of variables". http://publications.gbdirect.co.uk/c_book/: GBdirect. Retrieved 2011-06-08. “[A] declaration [...] introduces just the name and type of something but allocates no storage[...].” 

  53. This definition is based on Wikipedia's definition of a declaration and an answer on Stack Overflow by sbi

  54. This definition is based on information from the “Declarations” page on cppreference.com

  55. This definition is based on Wikipedia's definition

  56. Based on information from page 231 of “Starting Out with C++: From Control through Objects - Edition: 8th”, ISBN 978-0-13-4037325. 

  57. This definition is based on Wiktionary's definition of “increment” and Wiktionary's definition of “decrement”

  58. This definition is based on Wikipedia's definition of a declaration and an answer on Stack Overflow by sbi

  59. This definition is based on information from the “Definitions and ODR” page on cppreference.com

  60. National Computer Conference and Exposition (1957). Proceedings. Retrieved 2 October 2013. 

  61. International Business Machines Corporation. Data Processing Division (1966). Introduction to IBM Direct-access Storage Devices and Organization Methods. International Business Machines Corporation. pp. 3–. Retrieved 2 October 2013. 

  62. D. E. KNUTH (1969). The Art of Computer Programming. Vol. 3. Sorting and Searching. Addison-Wesley. ISBN 978-0-201-03803-3. Retrieved 2 October 2013. 

  63. This definition is essentially the same as Wikipedia's definition

  64. This definition is based on Wikipedia's definition of “Do while loop” and Wikipedia's definition of “While loop”

  65. This definition is essentially the same as Wikipedia's definition

  66. This definition is based on information from the “Basic concepts” page on cppreference.com

  67. This definition is based on Wikipedia's definition of a declaration and Wikipedia's definition of an identifier

  68. This definition is essentially the same as Wikipedia's definition, with some rewording. 

  69. Javascript expressions, Mozilla Accessed July 6, 2009] 

  70. Programming in C Accessed July 6, 2009 

  71. This definition is similar to Wikipedia's definition, with changes made. 

  72. This definition is based on Wiktionary's definition and Wikipedia's definition

  73. This definition is based on Wiktionary's definition

  74. This definition is based on Wikipedia's definition

  75. Based on information from page 251 of “Starting Out with C++: From Control through Objects - Edition: 8th”, ISBN 978-0-13-4037325. 

  76. This definition is based on Wikipedia's definition

  77. https://en.cppreference.com/w/cpp/language/for 

  78. https://en.cppreference.com/w/Cppreference:FAQ 

  79. Gupta, Rajeev (2011). Project Management. Prentice-Hall of India. p. 21. ISBN 978-8120344259

  80. This definition is essentially the same as Wikipedia's definition

  81. This definition is based on Wikipedia's definition

  82. This definition is based on a definition from the “Identifiers” section of the “Variables” page on cppreference.com

  83. This definition is based on an answer on Stack Overflow by tvanfosson

  84. This definition is based on an answer on Software Engineering Stack Exchange by Robert Harvey

  85. This definition is based on Wikipedia's definition

  86. This definition is based on Wikipedia's definition 

  87. This definition is based on Wiktionary's definition of “increment” and Wiktionary's definition of “decrement”

  88. This definition is based on Wikipedia's definition

  89. Based on information from page 231 of “Starting Out with C++: From Control through Objects - Edition: 8th”, ISBN 978-0-13-4037325. 

  90. This definition is based on information from the “Intelligence” page on Wikipedia

  91. This definition is based on Wiktionary's definition

  92. https://stackoverflow.com/questions/959215/how-do-i-remove-leading-whitespace-in-python 

  93. This definition is the same as Wikipedia's definition

  94. This definition is based on Wikipedia's definition

  95. This definition is based on Wikipedia's definition

  96. Requires iso646.h in C. See C++ operator synonyms 

  97. Based on information from pages 182-187 of “Starting Out with C++: From Control through Objects - Edition: 8th”, ISBN 978-0-13-4037325. 

  98. This definition is based on Wikipedia's definition

  99. This definition is based on Wikipedia's definition

  100. Based on information from page 242 of “Starting Out with C++: From Control through Objects - Edition: 8th”, ISBN 978-0-13-4037325. 

  101. https://www.geeksforgeeks.org/lvalue-and-rvalue-in-c-language/ 

  102. "Lvalues and Rvalues (Visual C++)". Microsoft Developer Network. Retrieved 3 September 2016. 

  103. This definition is essentially the same as Wiktionary's definition

  104. This definition is based on Wikipedia's definition

  105. This definition is loosely based on Wikipedia's definition of “nesting”

  106. This definition is based on Wikipedia's definition

  107. This definition is based on information from Wikipedia's definition of “obsolescence”

  108. This definition is the same as Wikipedia's definition, except for the removal of the phrase “in computing and telecommunications”. 

  109. This definition is the same as Wikipedia's definition

  110. This definition is the same as [Wikipedia's definition](https://en.wikipedia.org/wiki/Operator_(computer_programming), except for modification of the grammatical number (plural to singular). 

  111. Based on information from Wikipedia

  112. This definition is essentially the same as Wiktionary's definition

  113. This definition is the same as Wiktionary's definition of “playback”

  114. This definition is based on Wikipedia's definition of free software and Wikipedia's definition of freedom

  115. This definition is based on the GNU prject's definition of free software

  116. This definition is based on information from Wiktionary's definition of “rabbit hole”

  117. This definition is based on information from Wiktionary's definition of “load§Verb”

  118. This definition similar to Wikipedia's definition

  119. This definition is essentially the same as Wikipedia's definition

  120. "Lvalues and Rvalues (Visual C++)". Microsoft Developer Network. Retrieved 3 September 2016. 

  121. This definition is based on Wikipedia's definition

  122. Knuth, Donald (1973). The Art of Computer Programming, Volume 1: Fundamental Algorithms (second edition). Addison-Wesley. pp. 213–214, also p. 631. ISBN 0-201-03809-9

  123. This definition is based on Wikipedia's definition of a sentinel value and an answer on Stack Overflow by Tony the Pony

  124. This definition is based on Wikipedia's definition of a token and Wikipedia's definition of a statement separator

  125. Random and Sequential Data Access, Microsoft TechNet 

  126. Irfan Ahmad, Easy and Efficient Disk I/O Workload Characterization in VMware ESX Server, IISWC, 2007. 

  127. Eric Anderson, Capture, Conversion, and Analysis of an Intense NFS Workload, FAST, 2009. 

  128. Yanpei Chen et al. Design Implications for Enterprise Storage Systems via Multi-dimensional Trace Analysis. SOSP. 2011 

  129. Andrew Leung et al. Measurement and Analysis of Large-scale Network File System Workloads. USENIX ATC. 2008 

  130. Frank Schmuck and Roger Haskin, GPFS: A Shared-Disk File System for Large Computing Clusters, FAST. 2002 

  131. Alan Smith. Sequentiality and Prefetching in Database Systems. ACM TOS 

  132. Hyong Shim et al. Characterization of Incremental Data Changes for Efficient Data Protection. USENIX ATC. 2013. 

  133. Avishay Traeger et al. A Nine Year Study of File System and Storage Benchmarking. ACM TOS. 2007. 

  134. Cheng Li et al. Assert(!Defined(Sequential I/O)). HotStorage. 2014 

  135. This definition is based on Wikipedia's definition 

  136. "statement". webopedia. Retrieved 2015-03-03. 

  137. This definition is based on Wikipedia's definition

  138. This definition is based on Wikipedia's definition

  139. This definition is based on Wikipedia's definition

  140. U.S. Election Assistance Commission (2007). "Definitions of Words with Special Meanings". Voluntary Voting System Guidelines. Archived from the original on 2012-12-08. Retrieved 2013-01-14. 

  141. ""what is meant by a free function""

  142. This definition is essentially the same as Wikipedia's definition, with some rewording. 

  143. This definition is based on Wikipedia's definition

  144. This definition is essentially the same as Wikipedia's definition

  145. This definition is based on Wikipedia's definition

  146. This definition is based on information from the “Syntax highlighting” page on Wikipedia and the “syntax highlighting” page on Wiktionary

  147. "Definition of system". Merriam-Webster. Springfield, MA, USA. Retrieved 2019-01-13. 

  148. This definition is based on information from the “System” page on Wikipedia

  149. This definition is based on Wikipedia's definition of a token and Wikipedia's definition of a statement terminator

  150. This definition is based on Wikipedia's definition

  151. https://stackoverflow.com/questions/22273233/what-is-meant-by-trailing-space-and-whats-the-difference-between-it-and-a-blank/22273264#22273264 

  152. This definition is essentially the same as Wiktionary's definition

  153. This definition is the same as Wiktionary's definition

  154. This definition is based on information from Wikipedia's definition of a variable

  155. Compilers: Principles, Techniques, and Tools, pp. 26–28 

  156. Knuth, Donald (1997). The Art of Computer Programming. 1 (3rd ed.). Reading, Massachusetts: Addison-Wesley. p. 3-4. ISBN 0-201-89683-4

  157. This definition is based on a definition from the “Variables” page on cppreference.com and a definition from Wikipedia's “Variable (computer science” page

  158. This definition is based on a definition from the “Variables in C++” section of the “Variables” page on cppreference.com 

  159. "The while and do-while Statements (The Java™ Tutorials > Learning the Java Language > Language Basics)". Dosc.oracle.com. Retrieved 2016-10-21. 

  160. "while (C# reference)". Msdn.microsoft.com. Retrieved 2016-10-21. 

  161. This definition is based on Wikipedia's definition