Update
This commit is contained in:
parent
0d26cac3da
commit
d60f3c941f
15 changed files with 1936 additions and 1926 deletions
|
@ -70,7 +70,7 @@ Besides the standard library there will also exist many third party [libraries](
|
|||
|
||||
## History
|
||||
|
||||
Programmability of the earliest computers was very limited, they were machines with hard-wired functionality and reprogramming them meant physically altering the circuitry or even gears they were made of -- even much later many of the simpler "computers", such as hand held electronic games, weren't running on any programmable [CPU](cpu.md) or chips of similar nature, but were rather a hand-designed electronic circuit "programmed" by the engineer who manually placed all the resistors and capacitors. However, theoretically, the idea of a programming language had been around for a long time -- in 18th century Basile Bouchon created a system for "programming" looms with what were essentially punch cards and in the first half of the 20th century the universal [Turing machine](turing_machine.md) provided a theoretical framework for a fully programmable [digital](digital.md) computer that interpreted a kind of language stored on its memory tape, even before there were any "real" computers to speak of. A big step forward came in 1945 with [John Vom Neumann's](von_neumann.md) description of what's now called the *Von Neumann architecture*, a computer architecture model that relied on relatively simple hardware (the [CPU](cpu.md)) interpreting program stored as numeric instructions in the computer memory (so called *stored program*). One of the first such computers was [EDSAC](edsac.md), made in 1949. This [paradigm](paradigm.md) showed to be crucial for allowing quick and easy modification of programs and thus for more [progress](progress.md) in computing -- this shifted focus from designing individual computers to creating effective, generally usable instructions sets and machine code. Together with more and more abundant [transistors](transistor.md) finally came computers programmable with what we might call a "language" -- the first ones were programmed directly in [machine code](machine_code.md) (the numeric instructions), there weren't even any assemblers and assembly languages around, programming involved tasks such as searching for opcodes in computer manuals, hand-encoding data and getting it all onto punch cards -- in better cases it was possible to use some primitive interface such as a "front panel" to program the computer. These kinds of machine languages that were used back then are now called **first generation languages**.
|
||||
Programmability of the earliest computers was very limited, they were machines with hard-wired functionality and reprogramming them meant physically altering the circuitry or even gears they were made of -- even much later many of the simpler "computers", such as hand held electronic games, weren't running on any programmable [CPU](cpu.md) or chips of similar nature, but were rather a hand-designed electronic circuit "programmed" by the engineer who manually placed all the resistors and capacitors. However, theoretically, the idea of a programming language had been around for a long time -- in 18th century Basile Bouchon created a system for "programming" looms with what were essentially punch cards and in the first half of the 20th century the universal [Turing machine](turing_machine.md) provided a theoretical framework for a fully programmable [digital](digital.md) computer that interpreted a kind of language stored on its memory tape, even before there were any "real" computers to speak of. A big step forward then came in 1945 with [John Vom Neumann's](von_neumann.md) description of what's now called the *Von Neumann architecture*, a computer architecture model relying on relatively simple hardware (the [CPU](cpu.md)) interpreting program stored as numeric instructions in the computer memory (so called *stored program*), which is exactly the principle of the earlier mentioned universal Turing machine. One of the first such computers was [EDSAC](edsac.md) constructed in 1949. This "stored program" [paradigm](paradigm.md) showed itself crucial for quick, simple and cheap modification of programs and led to further [progress](progress.md) of the computing field -- the focus now shifted from designing individual machines to a more abstract endeavor: that of creating effective, generally usable instruction sets, i.e. machine LANGUAGE now came to play a more central role. Together with more and more abundant [transistors](transistor.md) finally came computers programmable with what we might call "true languages" -- the first ones were programmed directly in [machine code](machine_code.md) (the numeric instructions), there weren't even any assemblers and assembly languages around, programming involved tasks such as searching for opcodes in computer manuals, hand-encoding data and getting it all onto punch cards -- in better cases it was possible to use some primitive interface such as a "front panel" to program the computer. These kinds of machine languages that were used back then are now called **first generation languages**.
|
||||
|
||||
The **first higher level programming language** was probably Plankalkul made by Konrad Zuse some time shortly after 1942, though it didn't run on any computer, it was only in stage of specification -- implementation of it would only be made much later, in 1975. It was quite advanced -- it had [functions](function.md), arrays, exceptions and some advanced data structures, though it for example didn't support [recursive](recursion.md) calls. It was important as it planted the seed of an idea of an abstract, higher level, machine independent language.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue