Skip to content
Glossary of Software Development

Glossary of Software Development

All technical terms of the article The History of Software Development in alphabetical order. The number at the end names the section in which the term is introduced.

A

  • Agile development – Approach following the manifesto of 2001: deliver in short increments, each time working software, adjust the plan after every delivery. 6
  • Algol 60 – Language of an international committee (1960) with blocks, recursive procedures and a formal grammar; ancestor of Pascal, C and Java. 2
  • Analytical Engine – Babbage’s mechanical calculating machine (around 1837) with arithmetic unit, store and control, never finished. 1
  • Assembler – Program that accepts commands as short words such as ADD instead of numeric codes and translates them into machine language. 1
  • Automated test – Program that checks another program: a call with known inputs, compared with the expected result. 6

B

  • Backus–Naur form – Formal notation in which the grammar of a programming language can be written down exactly; introduced in the Algol 60 report. 2
  • BASIC – Language for beginners by Kemeny and Kurtz (Dartmouth 1964), usable in dialogue at a teletype; ten years later the language of home computers. 2
  • Branch – Working line in version control that forks off the main line and receives its own changes; cheap to create in Git. 6
  • Brooks’s law – Adding people to a late software project makes it later, because training and coordination grow. 3
  • Browser – Program for reading web pages; Berners-Lee wrote the first in 1990. 5
  • Bug – Error in a program; the word is older than the computer, Hopper’s moth of 1947 made it famous. 1
  • Bytecode – Intermediate code produced by the Java compiler and executed by a virtual machine on any computer. 5

C

  • C – Language by Dennis Ritchie (1972), close to the machine but with the structures of Algol; Unix was rewritten in C in 1973. 3
  • C++ – Stroustrup’s extension of C with classes (1983); language for operating systems, databases and games. 4
  • Class – Blueprint for objects of the same kind; a class can inherit from another. 4
  • Cloud – Computers and storage as a service, rented by the minute and ordered by program call; Amazon from 2006. 6
  • COBOL – Language for the business world (1959) with English sentences; still processes a large part of payment traffic. 2
  • Coding agent – Language model with tools that reads a project, changes files, runs tests, reads errors and corrects until the tests pass. 7
  • Compiler – Program that translates programs from a form readable by humans into machine language; Hopper coined the word in 1952. 2
  • Container – Packaging of a program with everything it needs so that it runs the same on any machine; Docker 2013. 6
  • Continuous integration – Every contribution is automatically built into the overall project and tested, many times a day. 6
  • Copilot – GitHub tool (2021) that proposes the next lines of code as you type, built on the Codex model. 7

D

  • Debugging – Searching for and fixing errors in a program. 1
  • Dependencies – Foreign building blocks a program needs, which a tool downloads together with their own dependencies, often thousands. 6
  • DevOps – Developers and operators work as one team, and the pipeline from source code to running service is automated throughout; the term dates from 2009. 6

F

  • Fortran – First widely used high-level language (IBM, 1957), built for formulas; still used in numerical simulation. 2

G

  • Garbage collection – Automatic memory management: the system releases memory that is no longer needed by itself; introduced with Lisp. 2
  • Git – Version control system by Torvalds (2005) without a central server; everyone has the whole project history, branches and merges are cheap. 6
  • GNU General Public License – Stallman’s licence (1989): anyone who changes and passes on free software must pass on the source code and the freedom. 4

H

  • High-level language – Programming language that abstracts from the machine and can be the same for different computers. 2
  • HTML – Page description language of the web, designed by Berners-Lee in 1990. 5

I

  • Information hiding – The inside of a module stays hidden so that it can be changed without other modules noticing; Parnas 1972. 3
  • Integrated development environment (IDE) – Editor, compiler and debugger in one program; Turbo Pascal (1983) was the first widely used one. 4
  • Interface – Fixed set of calls through which other parts talk to a module. 3
  • Interpreter – Program that does not translate source code but executes it line by line as it reads. 2

J

  • Java – Language from Sun (1995) whose compiler produces bytecode for a virtual machine; language of enterprise servers and of Android. 5
  • JavaScript – Language that runs in the browser; written by Brendan Eich in ten days in 1995, today the most used in the world. 5
  • Jump instruction – goto: instruction that makes a program jump to any other place; declared harmful by Dijkstra in 1968. 3

K

  • Killer application – Program for which people buy a computer; VisiCalc (1979) was the first. 4

L

  • Licence – Permission to use, change and pass on software under certain conditions. 4
  • Linux – Free operating-system kernel by Torvalds (1991), grown into a complete system with the GNU tools; runs on almost every server. 5
  • Lisp – Language by McCarthy (1958) that treats programs as data; introduced recursion and automatic memory management. 2

M

  • Machine language – Set of commands the hardware understands directly, as numbers: load cell 100, add cell 101, jump to instruction 7. 1
  • Merge – Bringing two development states together, for instance a branch with the main line. 6
  • Microservices – Many small services that talk to each other over the network, each individually replaceable, instead of one large program. 6
  • Module – Part of a program with a clear task and an interface through which other parts talk to it; Parnas 1972. 3

O

  • Object – Unit that carries its data and the operations on it together within itself; Simula 1967. 4
  • Object-oriented programming – Software as a society of cooperating objects that send each other messages; Smalltalk, C++, Java. 4
  • Open source – Software whose source code lies open and which anyone may use, change and pass on; the term dates from 1998. 5
  • Operating system – Program that manages the other programs: loads them, allocates memory and devices, runs several tasks side by side. 3

P

  • Pascal – Language by Niklaus Wirth (1970), built around structured programming and long a teaching language. 3
  • Patch – Text containing only the changed lines of a program, submitted by e-mail or pull request. 5
  • Pipe – Unix mechanism that feeds the output of one program into the input of the next; this creates a chain of tools. 3
  • Plankalkül – Zuse’s design of a high-level programming language (1942–1945), published only in 1972. 1
  • Program – Sequence of instructions a machine is to carry out; Lovelace wrote the first in 1843. 1
  • Pull request – Request to adopt a change into a project, on GitHub as a discussion about a patch. 6
  • Python – Scripting language by Guido van Rossum (1991), as readable as pseudocode; language of data analysis and AI. 5

S

  • Scripting language – Interpreted language for quick, short programs, such as Python, Perl, PHP. 5
  • Scrum – Framework for agile teams (1995): sprints of two to four weeks, a short daily meeting, a demonstration at the end. 6
  • Smalltalk – Language by Alan Kay (1972–1980) in which everything is an object and objects send each other messages. 4
  • Software – The instructions a computer carries out; the part of the computer you cannot touch. Introduction
  • Software crisis – State from the late 1960s in which the demand for programs and their size grew faster than the ability to build them reliably. 3
  • Software development – The work of writing software, testing it and keeping it alive over years. Introduction
  • Software engineering – Designing and building software like bridges, with methods, measurements and responsibility; title of the NATO conference of 1968. 3
  • Source code – The program written by a human, which compilers or interpreters process. 2
  • Sprint – Work period of two to four weeks in Scrum, at the end of which what is finished is shown. 6
  • Structured programming – Composing programs only from sequence, branch and loop, each block with one entry and one exit. 3
  • Subroutine – Piece of program that performs one task and can be called from anywhere; Wheeler 1949. 1
  • Supply chain – Chain of building blocks, tools and services from which a program is made; a target of attack since SolarWinds (2020). 6
  • SWE-bench – Collection of real bug reports from open-source projects against which coding agents are measured (2023). 7

T

  • Test-driven development – First write the test that still fails, then just enough code to make it pass, then tidy up; Beck 2002. 6
  • Time-sharing – Operation in which many users work on one computer at the same time and it switches between them so fast that each believes they have it to themselves. 2

U

  • Unbundling – IBM’s separation of the prices of hardware and software (1969), birth of the software industry. 3
  • Unix – Operating system by Thompson and Ritchie (1969), small, meant for programmers, made of many small tools; model for Linux. 3

V

  • Version control system – Keeps every state of a project and allows changes to be compared, reverted and merged; CVS, Subversion, Git. 5
  • Vibe coding – Way of working (Karpathy 2025) in which one tells the model what one wants, no longer reads the code and judges only the result. 7
  • Virtual machine – Program that executes bytecode so that the same compiled code runs on any computer that has the virtual machine; Java 1995. 5

W

  • Waterfall model – Project sequence in completed stages: requirements, design, programming, test, operation; described and criticised by Royce in 1970, so named in 1976, made a military standard in 1985. 3
Last updated on