INF205: Glossary

abstract class, interface

argument passing by reference

Elucidation: "Passing by reference" can refer to any mode of passing an argument to a function that permits the called function to access the original data item, at the same address in memory, rather than receiving only a copy.

argument passing by value

Elucidation: When an argument is passed by value to a function, a copy of the argument values is created in memory (on the stack, in the stack frame of the called function). The function works with its own copy; it cannot access the original variable.

call stack, program stack, stack

class

Elucidation: "A class defines a datatype and describes content and properties of objects of that datatype. The data fields of the class are storage unites for the object's values, and the methods of the class describe the operations that can be done on or by the objects" (from the SNL entry on object orientation by E. H. Vihovde).

collective operation

command-line argument

compilation

Definition: process of transforming a human-readable source code into a lower-level machine code, using a compiler

constructor

Definition: method called in order to allocate an object

container

Definition: "class with the main purpose of holding objects" (Stroustrup)

destructor

Definition: method called upon deallocating an object

dynamic library

Definition: library of compiled program code, separate from the executable file of the program, that can be accessed by the latter at runtime

entity-relationship diagram (ER diagram)

global variable

Definition: variable that can be accessed through a name with an unrestricted scope - it has a name that resolves everywhere in the code

graph

Definition: "collection of nodes (points) and edges (lines) that connect some or all of the edges" (T. Aambø in SNL on graph theory)

heap [memory management]

Definition: memory region where data are allocated dynamically, without being directly tied to the program's call stack

knowledge graph, ABox

linked list

load balancing

moving

namespace

Definition: globally accessible collection of names, i.e., rigid designators for functions, variables, classes, etc.

object

Definition: "basic building block […] in object-oriented software systems; […] module consisting of data and processing rules" (E. H. Vihovde in SNL)

object-oriented programming

overloading

Definition: use of multiple functions with the same function name and different parameter types

ownership

Elucidation: In the context of manual memory management, one object x taking ownership of another object y means that the memory use of y is managed through x. It usually implies that x acts as a container for y.

pointer

Definition: variable that has a memory address as its value

queue

Definition: sequential (list-like) dynamic data structure that functions by the principle first in, first out (FIFO)

rank [parallel programming]

relationship

relationship type, relation

Elucidation: A relation specifies how objects from given classes can be connected to each other.

rule of five

rule of three

stack

Definition: sequential (list-like) dynamic data structure that functions by the principle last in, first out (LIFO)

static array

Elucidation: An array is a variable referring to a contiguous region in memory that can hold the content of multiple elementary variables or objects. A static array is just that, without any special additional functionality, as opposed to a dynamic array which provides the additional functionality that it can be resized.

strong scaling

template

tree

Definition: hierarchical linked data structure given as a graph in which there is a unique path between each pair of nodes

typing

Definition: mechanism by which a data type is assigned to data items

weak scaling

wild pointer

Definition: pointer that unintentionally holds an invalid memory address as its value

Index