Concepts

Plain-language explanations of the ideas behind software - compilers, garbage collection, objects, types.

628 entries, all primary-sourced
concept

The API Economy

The economic model in which businesses expose their capabilities as programmable, often paid, web APIs so that others can build on them, turning interfaces into products.

concept

The Arithmetic Logic Unit

The combinational circuit at the heart of a processor that performs arithmetic and logical operations on binary operands, the working core of the CPU datapath.

concept

The ASIC

An application-specific integrated circuit: a chip custom-built for a single task, trading the flexibility of a general processor for maximum speed and energy efficiency at that one job.

concept

The Bit

The bit, short for binary digit, is the basic unit of information: a single yes or no, 0 or 1 choice, named in Shannon's 1948 paper and credited to John Tukey.

concept

The Bus Factor

The number of people who would have to be lost before a project stalls, a blunt measure of how concentrated its critical knowledge is.

concept

The Calling Convention

The agreed low-level rules for how functions pass arguments, return values, and preserve registers across calls; part of a platform's ABI, with the System V AMD64 convention governing most Unix-like x86-64 systems.

concept

The Chaos Communication Congress

Europe's long-running hacker conference, held between Christmas and New Year since 1984 and organized by the Chaos Computer Club, blending technical hacking with politics, privacy, and digital rights.

concept

The Church-Turing Thesis

The thesis that anything effectively computable can be computed by a Turing machine, equivalently by the lambda calculus - the claim that the Turing machine captures the intuitive notion of an algorithm.

concept

The Clock Signal

The steady oscillating signal that synchronizes a synchronous digital system, marking the moments when state may change and setting the pace of computation.

concept

The Code Comment

Human-readable annotations in source code that the compiler ignores; their purpose is to explain why code does what it does, the danger is comment rot, and good style favors self-documenting code.

concept

The CPU Register

The small, fastest storage cells located inside the processor itself, holding the operands and results of computation; registers come in general-purpose, special-purpose, and flag varieties, organized into a register file.

concept

The Digital Signal Processor

A processor architected for the math of signal processing, with hardware multiply-accumulate and a memory layout that feeds it, exemplified by Texas Instruments' TMS320 line.

concept

The End of Moore's Law

The slowdown of transistor scaling and the breakdown of Dennard scaling, which ended the era of automatic single-core speedups and pushed the industry toward multicore and specialized hardware like GPUs and TPUs.

concept

The Esoteric Programming Language

A programming language designed to experiment with weird ideas, to be hard to program in, or as a joke, rather than for practical use, a tradition stretching from INTERCAL in 1972 through Brainfuck and Malbolge.

concept

The Flip-Flop

The basic one-bit memory element, built from cross-coupled gates or valves, whose two stable states let a digital circuit remember and form sequential logic.

concept

The FPGA

A field-programmable gate array: an integrated circuit whose logic and interconnect can be reconfigured by the user after manufacturing, sitting between software flexibility and fixed silicon.

concept

The Hacker Ethic

The set of shared principles Steven Levy articulated in his 1984 book Hackers, drawn from the MIT AI Lab: access to computers should be unlimited, information should be free, authority should be mistrusted, and people should be judged by their skill.

concept

The Halting Problem

The proof that no general algorithm can decide, for every program and input, whether it will eventually halt or run forever - the classic example of an undecidable problem.

concept

The Instruction Cycle

The fetch-decode-execute loop a processor repeats endlessly: read the next instruction from memory, interpret it, carry it out, and advance to the next.

concept

The Interrupt

A signal that diverts the CPU from its current work to run a handler, used by hardware to report events and by software to request services; interrupts replace wasteful polling and are dispatched through an interrupt vector table.

concept

The JAR File

The JAR (Java ARchive) is a ZIP-format bundle of compiled Java classes, resources, and a manifest that serves as the unit of distribution for Java libraries and applications.

story

The Konami Code

Up up down down left right left right B A: a cheat sequence left in the 1986 NES port of Gradius that escaped into the released game and became a decades-long pop-culture meme and recurring web easter egg.

concept

The Logic Gate

The physical circuit element that implements a Boolean operation such as AND, OR, NOT, or NAND, turning the algebra of true and false into switching hardware.

concept

The Magic Number

Two senses share a name: an unexplained literal constant in code, treated as a code smell, and a fixed byte signature at the start of a file that identifies its format, used by the file command.

concept

The Mead-Conway Revolution

The late-1970s shift to structured, scalable chip design rules and the multi-project chip, which split chip design from fabrication and let many more people design integrated circuits.

concept

The Multi-Core Processor

Multiple independent CPU cores on a single die, the industry's structural answer to the end of frequency scaling, trading higher clock speeds for more parallel hardware.

concept

The Ninety-Ninety Rule

Tom Cargill's rule, popularized by Jon Bentley, that the first 90 percent of the code takes 90 percent of the time and the remaining 10 percent takes the other 90 percent.

concept

The Null-Pointer Dereference

Accessing memory through a reference that points at nothing, a routine crash and security bug; option types make the absence of a value visible to the type system.

concept

The Off-by-One Error

A fencepost mistake at a loop or array boundary, off by exactly one; Dijkstra argued zero-based half-open ranges make these errors less likely.

concept

The Quine

A program that takes no input and produces an exact copy of its own source code as output, a hands-on demonstration of self-reference whose existence is guaranteed by Kleene's recursion theorem and which Ken Thompson built at the heart of his Trusting Trust attack.

concept

The Race Condition

A bug where correctness depends on the uncontrolled timing or interleaving of concurrent operations; data races are undefined behavior in the C and C++ memory models.

concept

The README File

The front-door documentation of a software project: a file, conventionally named in all capitals so it sorts to the top of a directory listing, that tells a visitor what the project is, why it is useful, and how to get started; on platforms like GitHub the README is rendered automatically as a repository's landing page.

concept

The Regression

A bug where a feature that used to work breaks after a later change; the reason test suites and tools like git bisect exist.

concept

The Robustness Principle

Jon Postel's rule from the early TCP/IP RFCs to be conservative in what you send and liberal in what you accept, along with the later criticism of that advice.

concept

The Shebang (#!)

The two-byte magic at the start of a script, #!, that tells the kernel which interpreter should run the file.

concept

The Shell Script

A plain text file of shell commands run as a program, giving Unix systems automation, control flow, and the glue that ties small tools together.

concept

The Software Bug

An error in code that makes a program behave incorrectly; the term predates computers, and its most famous artifact is a 1947 moth taped into a Harvard logbook.

concept

The TODO Comment

In-code markers such as TODO, FIXME, HACK, and XXX that flag deferred or suspect work; cheap to write, easy to forget, and a common way technical debt accretes inside source files.

milestone

The Transistor

The solid-state switching and amplifying device invented at Bell Labs in 1947 by Bardeen, Brattain, and Shockley, which replaced the vacuum tube and became the building block of all digital electronics.

concept

The Unix Philosophy

The design attitude set out in the 1978 Bell System Technical Journal foreword by McIlroy, Pinson, and Tague: make each program do one thing well, and have programs cooperate by passing text streams through pipes, because text is a universal interface.

concept

The Vector Processor

A processor whose instructions operate on whole arrays of data at once, pioneered by the Cray supercomputers and the conceptual ancestor of modern SIMD and GPU computing.

concept

The Y2K Remediation

The effort to fix the Year 2000 bug was arguably the largest coordinated software-maintenance project in history: a multi-year, worldwide campaign of code inventory, COBOL date audits, field expansion or windowing, and testing, organized in industry and government through staged programs and costing on the order of hundreds of billions of dollars.

concept

Three-Way Merge

A way of combining two changed versions of a file by comparing each against their common ancestor, so non-conflicting edits merge automatically and only true overlaps need human attention.

concept

Time Zone Handling

Local time is a moving political target: offsets and daylight saving rules change by jurisdiction and over history. The IANA Time Zone Database records these rules so software can convert correctly, and the hard-won lesson is to store instants in UTC and apply zone rules only at the edges.

concept

Time-Series Database

A database optimized for timestamped data such as metrics and sensor readings, with fast appends, time-window queries, downsampling, and retention policies.

concept

Time-Sharing

Letting many users share one computer interactively at the same time, instead of submitting jobs one after another in batches.