You are on page 1of 2

Code-breaking algorithms have existed for centuries.

In the 9th century, the Arab


mathematician Al-Kindi described a cryptographic algorithm for deciphering
encrypted code, in A Manuscript On Deciphering Cryptographic Messages. He gave the
first description of cryptanalysis by frequency analysis, the earliest code-
breaking algorithm.[2]

Early programmable machines


The earliest programmable machines preceded the invention of the digital computer.
As early as the 9th century, a programmable music sequencer was invented by the
Persian Banu Musa brothers, who described an automated mechanical flute player in
the Book of Ingenious Devices.[3][4] In 1206, the Arab engineer Al-Jazari invented
a programmable drum machine where musical mechanical automata could be made to play
different rhythms and drum patterns.[5] In 1801, Joseph-Marie Jacquard devised a
loom that would weave a pattern by following a series of perforated cards. Patterns
could be woven and repeated by arranging the cards.[6]

Analytical Engine

Lovelace's diagram from Note G, the first published computer algorithm


In 1837, Charles Babbage was inspired by Jacquard's loom to attempt to build the
Analytical Engine.[6] The names of the components of the calculating device were
borrowed from the textile industry. In the textile industry, yarn was brought from
the store to be milled. The device would have had a "store"—memory to hold 1,000
numbers of 40 decimal digits each. Numbers from the "store" would then have then
been transferred to the "mill" (analogous to the CPU of a modern machine), for
processing. A "thread" is the execution of programmed instructions by the device.
It was programmed using two sets of perforated cards—one to direct the operation
and the other for the input variables.[6] [7] However, after more than 17,000
pounds of the British government's money, the thousands of cogged wheels and gears
never fully worked together.[8]

During a nine-month period in 1842–43, Ada Lovelace translated the memoir of


Italian mathematician Luigi Menabrea. The memoir covered the Analytical Engine. The
translation contained Note G which completely detailed a method for calculating
Bernoulli numbers using the Analytical Engine. This note is recognized by some
historians as the world's first written computer program.[9]

Universal Turing machine


In 1936, Alan Turing introduced the Universal Turing machine—a theoretical device
that can model every computation that can be performed on a Turing complete
computing machine.[10] It is a finite-state machine that has an infinitely long
read/write tape. The machine can move the tape back and forth, changing its
contents as it performs an algorithm. The machine starts in the initial state, goes
through a sequence of steps, and halts when it encounters the halt state.[11] This
machine is considered by some to be the origin of the stored-program computer—used
by John von Neumann (1946) for the "Electronic Computing Instrument" that now bears
the von Neumann architecture name.[12]

Early programmable computers


The Z3 computer, invented by Konrad Zuse (1941) in Germany, was a digital and
programmable computer.[13] A digital computer uses electricity as the calculating
component. The Z3 contained 2,400 relays to create the circuits. The circuits
provided a binary, floating-point, nine-instruction computer. Programming the Z3
was through a specially designed keyboard and punched tape.

The Electronic Numerical Integrator And Computer (Fall 1945) was a Turing complete,
general-purpose computer that used 17,468 vacuum tubes to create the circuits. At
its core, it was a series of Pascalines wired together.[14] Its 40 units weighed 30
tons, occupied 1,800 square feet (167 m2), and consumed $650 per hour (in 1940s
currency) in electricity when idle.[14] It had 20 base-10 accumulators. Programming
the ENIAC took up to two months.[14] Three function tables were on wheels and
needed to be rolled to fixed function panels. Function tables were connected to
function panels using heavy black cables. Each function table had 728 rotating
knobs. Programming the ENIAC also involved setting some of the 3,000 switches.
Debugging a program took a week.[14] The programmers of the ENIAC were women who
were known collectively as the "ENIAC girls"[15] and included Jean Jennings Bartik,
Betty Holberton, Marlyn Wescoff, Kathleen McNulty, Ruth Teitelbaum, and Frances
Spence. [16] The ENIAC featured parallel operations. Different sets of accumulators
could simultaneously work on different algorithms. It used punched card machines
for input and output, and it was controlled with a clock signal. It ran for eight
years, calculating hydrogen bomb parameters, predicting weather patterns, and
producing firing tables to aim artillery guns.

The Manchester Baby (June 1948) was a stored-program computer.[17] Programming


transitioned away from moving cables and setting dials; instead, a computer program
was stored in memory as numbers. Only three bits of memory were available to store
each i

You might also like