Programming


Typing

Value

Entity that can be manipulated by a program

Data

Value containing digital data, that is, some binary string. It is the role of a datatype to define how some data value can be handled by a program.

Datatype

Classification of a category of data defined by:

A primitive datatype is a datatype buint into a language

Examples

Iterable

Datatype where a function can be applied to several objects within the datatype, such as a list.

Type system

Typed and untyped

Static typing and dynamic typing

Weak typing and strong typing

Programming constructs

Sytactically allowable parts of a program that may be formed of one or multiple lexical tokens in accordance with the rules of the programming language

It's essentially a piece of code

Allocating constructs

Variable

Construct that is an abstract storage space for value

Pointer variable

Programming construct that holds an address to a specific object, possibly limited to holding addresses of a certain object type. It is a type of object

Iterator

Pointer variable for a sequence container that one defines by a function pointing to the address of the first data value and another pointing to the address after the final data value

Function

Callable construct that executes a sequence of statements when called, possibly returning a value

Void function

Function that does not return an object once execution is completed

Functor

Callable construct allowing objects to be called like a function

Statement

Construct that executes while a certain condition is met or the datatype is exhausted, such as if statements and for loops

Expression

Construct that evaluates to some value

Statement

Construct that represents some control flow, possibly containing smaller statements and expressions

Examples

Comment

Construct of text ignored by compilers and interpreters for annotation purposes

Data structure

An implementation of a sequence container with specific behaviour, such as a stack, queue, heap, array, hash map, linked list, BST and many more. See Data Structures and Algorithms for more information

First In Last Out (FILO)

Data structure behaviour where only the least recent data value to be inserted into the data structure can be accessed. Queue data structures maintain this behaviour.

First In First Out (FIFO)

Data structure behaviour where only the the most recent data value to be inserted into the data structure can be accessed. Stack data structures maintain this behaviour.

Array

Data structure that holds a collection of data objects contiguously

Implementation

Memory

Memory allocation

Endianess

The order in which high and low address bytes of pointers are read in contiguous memory

Garbage Collection (GC)

Automatic memory management system that frees memory that is no longer referenced by the program

Object Oriented Programming (OOP)

Class

Construct that defines a datatype by defining:

Instance

Also ambiguously called an 'object', value with the datatype defined by a class that:

Method

Function associatied with a class or the class' instances

Instance method

Method passed with some class instance

Class method

Method implicitly passed with the class

Static method

Method which is within the scope of a class but is not passed with a class or some class instance

Interface

Polymorphism

Concept of having child classes that are variants of their parent class. As an analogy, Ferrari, Honda and Mitsubishi may be child classes of a class Car

Super class

Class in the polymorphism from which 'child classes' are created from

Abstract class

Parent class that cannot create instances, however its child classes may create instances

Such a constraint can ensure that objects are of the most specific type possible, hence type erros don't occur

Constructor

Method that creates an instance of a class; it may return this instance on completion or simply allocate the instance's memory and return void

Destructor

Method that deletes an instance of a class, disposing it from memory

Concurrency

Global

Type of variable that applies outside of classes in the main code.

Thread

A process of code. Multiple threads mean that multiple processes are being done at once, therefore there is concurrency.

Recursion

Concept of a function calling itself

Dereferencing

Accessing a variable, object, or function through a pointer variable's held address, in other words, accessing an object through a pointer variable

Lexical analysis

Syntax

Rules for combining symbols to create legal statements and expressions and other constructs

Semantics

Meaning of statements and expressions computationally

Lexical analysis

Method of some implementation for analysing the syntax of a program and assigning semantics to each construct

Lexical tokenization

Method of dividing program up into small syntactical units called tokens and applying some set of syntactic grammar rules to infer the semantic construct they represent

Token

Construct representing some syntactical unit

Key word

Alphanumeric token that is associated with a certain construct

Operator

Symbolic character token associated with a function. They act as syntactic sugar for built in functions

Syntactic sugar

Syntax used to abbreviate a complicated construct into a more human-friendly form

Lexical scope

Level on which a construct is recognised. For example, within the construct of a function, can it reference a variable declared outside the function?

Structure of programming languages

Level of abstraction

Programming paradigms

Class of programming language that have features that align with a certain programming philosophy

Imperative programming

Paradigm classifying languages that gives explicit control flow instructions to execute

Declarative programming

Paradigm classifying languages that give the logical properties of a computation but without control flow

Functional programming

Languge types

Assembly (ASM)

Operand

Instruction defined by the CPU

Opcode

Binary string representing an operand that is parsed to the CPU

Subroutine

Markup

Tag

Form used by HTML to specify the type of media that will be displayed

Attribute

Variables used within HTML tags to describe the nature of the data that a tag will display