Software Carpentry Glossary [A]
A
absolute path: A path that refers to a particular location in a file system. Absolute paths are usually written with respect to the file system's root directory, and begin with either “/” (on Unix) or “\” (on Microsoft Windows).
absolute reference: A spreadsheet cell reference that is not automatically adjusted when a formula is moved from one location to another. Absolute references are created by putting "$" in front of the row and/or column designation, as in $C$4. See also: relative_reference.
abstract data type (ADT): A specification of a set of values, and the operations that can be performed on them. The term “abstract” means that the implementation of the ADT is hidden from other code.
abstract syntax tree (AST): A data structure that represents the structure of a program or program fragment. Its leaves are literals, such as numbers and variable names, while its internal nodes represent higher-level structures, such as loops and expressions.
access control: A way to specify who has permission to view, edit, delete, run, or otherwise interact with something, by explicitly listing what rights each individual or group has. This is in contrast with the standard Unix authorization mechanism, which only allows a fixed set of privileges to be listed for owner, one group, and everyone else.
access control list (ACL): A list that explicitly describes who can do what to a file, directory, or other entity. ACLs permit finer control over a computer's resources than Unix's classic user/group/all system, but are more complicated to administer.
ACID: An acronym for atomic, consistent, isolated, and durable, which are the properties that a database transaction must guarantee.
acquire a lock: To claim a lock in order to establish exclusive access to some resource. See also: release a lock.
action: The steps a build tool must take to bring a file or other object up to date. See also: dependency, prerequisite, target.
actual outcome: The actual result of a unit test. If this matches the expected outcome, the test passes.
aggregate: To create a single value by combining multiple values, e.g. by adding or averaging.
algorithmic complexity: The rate at which the work performed by an algorithm grows as a function of problem size, ignoring constant factors. Algorithmic complexity is usually expressed using O-notation; for example, the time required to compare each value in a list to each other value is O(N2).
alias: A second (or subsequent) reference to a single piece of data. Aliasing can make programs more difficult to understand, since changes made through one reference “magically” affect the other.
analysis and estimation (A&E): The step in a software development process in which developers figure out how they're going to implement the desired features, and how long they expect it will take. The term is also applied to the summary documents this process produces.
anchor: An element of a regular expression that matches a location, rather than a sequence of characters. «^» matches the beginning of a line, «\b» matches the break between word and non-word characters, and «$» matches the end of a line.
Application Binary Interface (API): The calling conventions, data structures, and other interface elements that compiled code exposes to other programs. See also: Application Programming Interface (API).
Application Programming Interface (API): The source-level external interface that a library or operating system provides for other programs to use. See also: Application Binary Interface (API).
arc: A connection between two nodes in a graph. Arcs may be directed (i.e., unidirectional) or undirected (i.e., bidirectional).
assertion: An expression which is supposed to be true at a particular point in a program. Programmers typically put assertions in their code to check for errors; if the assertion fails (i.e., if the expression evaluates as false), the program halts and produces an error message.
asymmetric cipher: A cipher which has two keys, each of which undoes the other's effects. See also: symmetric cipher.
atomic: Not interruptible. An atomic operation is one that always takes effect as a whole, no matter what else the system is doing.
attribute: An extra property added to an XML element. Attributes are represented as name/value pairs; a given name may appear at most once for any particular element.
authentication: The act of establishing someone's identity. This is almost always done by requiring them to produce some credentials, such as a password. See also: authorization, access control.
authorization: The part of a computer security system that keeps track of who's allowed to do what. See also: authentication, access control.
automatic variable: In Make, a variable whose value is automatically redefined for each rule. Automatic variables include $@, which holds the rule's target, and $^, which holds its prerequisites. Automatic variables are typically used in pattern rules.
