Programming Language

A set of rules we use to communicate with computers and to write programs (programming). Designed to be either interpreted (directly output using an interpreter, ex. Lisp) or compiled (transformed into a runnable form different with every machine model (using a compiler) which is then ran, e.g. C). Both is possible with some. A programming language is defined by a specification, which outlines its syntax (how exactly it is written) and semantics (rules).

                        preprocessor            object                         
source  --------------  directives  ----------  file    --------     executable
code -->|PREPROCESSOR| ---------->  |COMPILER| -------> |LINKER| --> code      
        --------------              ----------          --------               

Paradigm

Basic concepts and foundations in a programming language - e.g. the functional paradigm in programming is based on lambda calculus which performs calculations by combining pure mathematical functions -- this then shapes the language for mostly writing mathematical functions and comes with the natural philosophy of subsequently viewing everything as a function, even loops or numbers.

Dictionary

General

Dependency
Something a piece of software depends on to run. Dependencies should be minimal to help portability.
Future-proof technology
Technology meant to last a long time
Standard
An established way of doing something. Unlike ie. a math formula, a standard is not based on fact but rather generally agreed-upon for convenience, and can be malluable. There can be official (de jure) standards approved by a committee such as ANSI (American National Standards Institute), example: ASCII; and unofficial (de facto) standards not noted by any official entity, but used widely. Example: Markdown.
User interface (UI)
Interface used to simplify communication between a human and a computer. Types of user interfaces: CLI - command-line interface, TUI - text-based user interface, GUI - graphical UI.

Randomness

Pseudorandom number generator - an algorithm that generates a string of numbers based on a seed - another, smaller string of numbers. This makes the output obviously predictable if one has the seed. This seed can be, for example, the current time of the operating system.

Programming

Abstraction
Viewing the bigger picture instead of looking at smaller details. A higher level of abstraction means higher distance from core issue.
Black box abstraction
The ability to enclose whatever problem you have solved into a box so that the programmer does not have to look in anymore
Comment
Part of source code that is readable by the programmer, but ignored by compiler/interpreter. A file should include a global file comment (describng what it does, license, year, author), and keywords at specific parts of code and hebavior of functions.
Implementation
A particular set of software, running in a particular environment under particular options
Markup language
A language that defines the layout of a document - headings, paragraphs... Unlike programming languages, they cannot be used to calculate. Examples: Markdown, HTML
Monospace font
A font where each letter takes up the same size of space is a monospace font
Portability
Designing software to easily be ran on other platforms with minimal change. To do this, minimize dependencies, and create your own I/O abstraction layer - custom functions for drawpixel, writemessage, keypressed, readfile... - which can then be tied to platform-specific libraries.
Plaintext
Form of data that contains only text with no graphical representation. It is different from formatted text stylized using markup. Plaintext documents on computers are common, especially .txt. After some stylization has been applied (ex. bold, italicized, fonts, color, spread..), it becomes rich text.
Syntactic sugar
A more human-friendly, less machine-adjacent way of notation
Turing machine
A model for generally thinking about mathematical algorithms, using formal logic. It consists of a theoretical endless tape (memory tape), where each cell contains a binary number (0/1); a read/write head which can move left or right and manipulate the cells, and a set of instructions - control unit. The machine halts when it reaches an end state - tries to leave the tape (go left from memory cell 0), or when it encounters a situation with no defined rule.
Turing-complete
A mark used for computer systems that are complete enough to calculate anything, they do not have to resemble a turing machine.