Ask who invented assembly language and when, and you get more than one answer, because the idea was reached independently at several places in the late 1940s. Kathleen Booth is usually credited with the first assembly language, from her 1947 work on coding for the ARC computer at Birkbeck College in London. Two years later, the EDSAC at Cambridge loaded programs through an assembler-style routine written by David Wheeler. From those starting points, assembly language became the layer that every other language eventually rests on.
What assembly language is
An assembly language is a human-readable form of a processor's machine code. Each line usually maps to one machine instruction: a mnemonic such as MOV, ADD or JMP, followed by operands such as registers, memory addresses or constants. A program called an assembler translates the text into binary. Because instruction sets differ, there is no single assembly language. There is x86 assembly, ARM assembly, RISC-V assembly, IBM System/360 assembly and hundreds of others.
Compared with writing binary or octal by hand, even a simple assembler gives the programmer:
- Mnemonics instead of numeric opcodes
- Symbolic labels for addresses, so code can move without recalculating every jump by hand
- Directives for reserving memory and defining constants
- Comments alongside each instruction
- In later tools, macros that expand into several instructions
Who invented assembly language and when: the early record
Kathleen Booth worked with Andrew Donald Booth on the Automatic Relay Calculator (ARC) at Birkbeck. In 1947 she set out a symbolic notation for the machine's instructions, which is why most histories place the birth of assembly language in that year. At Cambridge, the EDSAC's "initial orders", written by David Wheeler for Maurice Wilkes's machine and in use from 1949, read instructions punched with single-letter operation codes and decimal addresses and converted them into binary as they loaded. Wilkes, Wheeler and Stanley Gill described the approach, together with a library of reusable subroutines, in their 1951 book The Preparation of Programs for an Electronic Digital Computer.
Through the 1950s the assembler became a standard product. IBM's SOAP (Symbolic Optimal Assembly Program) for the drum-based IBM 650 also arranged instructions on the drum to reduce waiting time. For the IBM 704, the SHARE user group adopted SAP, the SHARE Assembly Program. By the 1960s, macro assemblers such as the one supplied with IBM System/360 let programmers build their own higher-level shorthand on top of raw instructions.
A short code example
This is a modern example for 64-bit Linux on x86, written for the NASM assembler. It prints a line of text using two system calls:
section .data
msg db "Hello, world", 10 ; text plus newline
len equ $ - msg ; length computed by the assembler
section .text
global _start
_start:
mov rax, 1 ; sys_write
mov rdi, 1 ; file descriptor 1 = stdout
mov rsi, msg ; address of the text
mov rdx, len ; number of bytes
syscall
mov rax, 60 ; sys_exit
xor rdi, rdi ; exit status 0
syscall
Every line corresponds closely to what the processor actually does. That directness is both the attraction and the cost: nothing is hidden, and nothing is done for you.
Where assembly language was used
For the first decades of computing, most serious system software was written in assembly. Notable examples include:
- Operating systems. Early Unix was written in assembly for the PDP-7 and PDP-11 before most of it was rewritten in C in 1973.
- Spaceflight. The Apollo Guidance Computer software was written in the machine's own assembly language.
- Home computer games. Titles for 8-bit machines built on the 6502 and Z80 were almost always hand-written in assembly.
- Late holdouts. RollerCoaster Tycoon (1999) was written almost entirely in x86 assembly by Chris Sawyer.
Influence and legacy
Assembly's main legacy is the motivation it gave everything that followed. Autocode, Fortran and their successors were built precisely because writing large programs one instruction at a time was slow and error-prone. C is often described as a portable assembly language because it keeps a close, predictable mapping to machine operations while hiding the instruction set. Compilers today still emit assembly as an intermediate or inspectable output.
Is assembly language still used today?
Yes, though rarely for entire applications. It remains common in boot code, interrupt handlers and context switching inside kernels, in small microcontrollers, in cryptography and media codecs that use SIMD instructions, and in reverse engineering and malware analysis, where reading disassembly is a core skill. Many developers also read compiler-generated assembly to understand performance problems.
So the honest answer to who invented assembly language and when is a shared one: Kathleen Booth in 1947, with David Wheeler's EDSAC work in 1949 close behind, followed by a decade of assemblers built for each new machine.
Frequently asked questions
Is assembly language the same as machine code?
No. Machine code is the binary the processor executes, while assembly language is a text representation of it using mnemonics and labels. An assembler converts one into the other, usually with a near one-to-one mapping between lines and instructions.
Who wrote the first assembler for the EDSAC?
David Wheeler wrote the EDSAC's initial orders, which translated symbolic instructions into binary as programs were loaded from paper tape. They were in use from 1949 and are often cited as one of the first practical assemblers.
Why do programmers still learn assembly language today?
It explains what compilers produce and how processors really execute code. It is also required for some low-level tasks, such as writing boot code, debugging crashes at the instruction level, optimising hot loops and analysing compiled software without source code.







