The Computer Historic Collections(Koleksi sejarah Komputer)

MUSEUM DUNIA MAYA DR IWAN S.

Dr IWAN ‘S CYBERMUSEUM

 THE FIRST INDONESIAN CYBERMUSEUM

  MUSEUM DUNIA MAYA PERTAMA DI INDONESIA

   DALAM PROSES UNTUK MENDAPATKAN SERTIFIKAT MURI

     PENDIRI DAN PENEMU IDE

      THE FOUNDER

    Dr IWAN SUWANDY, MHA

                     

The Driwan’s  Cybermuseum

                    

(Museum Duniamaya Dr Iwan)

Showroom :

Dr Iwan Book Exhibition

The Computer Historic Collections

(Koleksi Sejarah Komputer)

Created By

Dr Iwan suwandy

Private Limited Edition for Computer Collectors.

English Version:

TABLE OF CONTENT

Introduction

The short history of Computer

Book One : THE HARDWARE HISTORIC COLLECTIONS

Part One: The Hardware Historic Collection Before the Modern computer Part Two: The Hardware Historic Collection Before Windows Exist

Book Two : THE SOFT WARE HISTPROIC COLLECTIONS

Part One : The SofteWare Historic colections Before Wordstar software     Part two: The Software Historic collections after  Wordstar software

I.INTRODUCTION.

Everybody used computer now, but not many understand the history of computer develomment and the collections related with the computer.

I have made a reasearch about that,and starting write ths guidance book for the computer histic collectors .

I know that this book  still not complete that is why all cumpters realted colloors will send comment and help to add the illustrations of this amizing collections.

Jakarta August 2011

Dr Iwan Suwandy,MHA

II.THE SHORT HISTORY OF COMPUTER

 

 
Computer
Acer Aspire 8920 Gemstone by Georgy.JPGColumbia Supercomputer - NASA Advanced Supercomputing Facility.jpgDell PowerEdge Servers.jpg 2010-01-26-technikkrempel-by-RalfR-05.jpgDelta-C personal computer.jpg Centcom20040818.jpg

A computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem.

Conventionally a computer consists of some form of memory for data storage, at least one element that carries out arithmetic and logic operations, and a sequencing and control element that can change the order of operations based on the information that is stored. Peripheral devices allow information to be entered from an external source, and allow the results of operations to be sent out.

A computer’s processing unit executes series of instructions that make it read, manipulate and then store data. Conditional instructions change the sequence of instructions as a function of the current state of the machine or its environment.

The first electronic computers were developed in the mid-20th century (1940–1945). Originally, they were the size of a large room, consuming as much power as several hundred modern personal computers (PCs).[1]

Modern computers based on integrated circuits are millions to billions of times more capable than the early machines, and occupy a fraction of the space.[2] Simple computers are small enough to fit into mobile devices, and mobile computers can be powered by small batteries. Personal computers in their various forms are icons of the Information Age and are what most people think of as “computers”. However, the embedded computers found in many devices from mp3 players to fighter aircraft and from toys to industrial robots are the most numerous.

History of computing

The first use of the word “computer” was recorded in 1613, referring to a person who carried out calculations, or computations, and the word continued with the same meaning until the middle of the 20th century. From the end of the 19th century onwards, the word began to take on its more familiar meaning, describing a machine that carries out computations.[3]

Limited-function early computers

The Jacquard loom, on display at the Museum of Science and Industry in Manchester, England, was one of the first programmable devices.

The history of the modern computer begins with two separate technologies—automated calculation and programmability—but no single device can be identified as the earliest computer, partly because of the inconsistent application of that term. A few devices are worth mentioning though, like some mechanical aids to computing, which were very successful and survived for centuries until the advent of the electronic calculator, like the Sumerian abacus, designed around 2500 BC[4] which descendant won a speed competition against a modern desk calculating machine in Japan in 1946,[5] the slide rules, invented in the 1620s, which were carried on five Apollo space missions, including to the moon[6] and arguably the astrolabe and the Antikythera mechanism, an ancient astronomical computer built by the Greeks around 80 BC.[7] The Greek mathematician Hero of Alexandria (c. 10–70 AD) built a mechanical theater which performed a play lasting 10 minutes and was operated by a complex system of ropes and drums that might be considered to be a means of deciding which parts of the mechanism performed which actions and when.[8] This is the essence of programmability.

Around the end of the tenth century, the French monk Gerbert d’Aurillac brought back from Spain the drawings of a machine invented by the Moors that answered Yes or No to the questions it was asked (binary arithmetic).[9] Again in the thirteenth century, the monks Albertus Magnus and Roger Bacon built talking androids without any further development (Albertus Magnus complained that he had wasted forty years of his life when Thomas Aquinas, terrified by his machine, destroyed it).[10]

In 1642, the Renaissance saw the invention of the mechanical calculator,[11] a device that could perform all four arithmetic operations without relying on human intelligence.[12] The mechanical calculator was at the root of the development of computers in two separate ways ; initially, it is in trying to develop more powerful and more flexible calculators[13] that the computer was first theorized by Charles Babbage[14][15] and then developed,[16] leading to the development of mainframe computers in the 1960s, but also the microprocessor, which started the personal computer revolution, and which is now at the heart of all computer systems regardless of size or purpose,[17] was invented serendipitously by Intel[18] during the development of an electronic calculator, a direct descendant to the mechanical calculator.[19]

First general-purpose computers

In 1801, Joseph Marie Jacquard made an improvement to the textile loom by introducing a series of punched paper cards as a template which allowed his loom to weave intricate patterns automatically. The resulting Jacquard loom was an important step in the development of computers because the use of punched cards to define woven patterns can be viewed as an early, albeit limited, form of programmability.

The Most Famous Image in the Early History of Computing[20]

This portrait of Jacquard was woven in silk on a Jacquard loom and required 24,000 punched cards to create (1839). It was only produced to order. Charles Babbage owned one of these portraits ; it inspired him in using perforated cards in his analytical engine[21]

It was the fusion of automatic calculation with programmability that produced the first recognizable computers. In 1837, Charles Babbage was the first to conceptualize and design a fully programmable mechanical computer, his analytical engine.[22] Limited finances and Babbage’s inability to resist tinkering with the design meant that the device was never completed ; nevertheless his son, Henry Babbage, completed a simplified version of the analytical engine’s computing unit (the mill) in 1888. He gave a successful demonstration of its use in computing tables in 1906. This machine was given to the Science museum in South Kensington in 1910.

In the late 1880s, Herman Hollerith invented the recording of data on a machine readable medium. Prior uses of machine readable media, above, had been for control, not data. “After some initial trials with paper tape, he settled on punched cards …”[23] To process these punched cards he invented the tabulator, and the keypunch machines. These three inventions were the foundation of the modern information processing industry. Large-scale automated data processing of punched cards was performed for the 1890 United States Census by Hollerith’s company, which later became the core of IBM. By the end of the 19th century a number of ideas and technologies, that would later prove useful in the realization of practical computers, had begun to appear: Boolean algebra, the vacuum tube (thermionic valve), punched cards and tape, and the teleprinter.

During the first half of the 20th century, many scientific computing needs were met by increasingly sophisticated analog computers, which used a direct mechanical or electrical model of the problem as a basis for computation. However, these were not programmable and generally lacked the versatility and accuracy of modern digital computers.

Alan Turing is widely regarded to be the father of modern computer science. In 1936 Turing provided an influential formalisation of the concept of the algorithm and computation with the Turing machine, providing a blueprint for the electronic digital computer.[24] Of his role in the creation of the modern computer, Time magazine in naming Turing one of the 100 most influential people of the 20th century, states: “The fact remains that everyone who taps at a keyboard, opening a spreadsheet or a word-processing program, is working on an incarnation of a Turing machine”.[24]

The Zuse Z3, 1941, considered the world’s first working programmable, fully automatic computing machine.

The ENIAC, which became operational in 1946, is considered to be the first general-purpose electronic computer.

EDSAC was one of the first computers to implement the stored program (von Neumann) architecture.

Die of an Intel 80486DX2 microprocessor (actual size: 12×6.75 mm) in its packaging.

The Atanasoff–Berry Computer (ABC) was among the first electronic digital binary computing devices. Conceived in 1937 by Iowa State College physics professor John Atanasoff, and built with the assistance of graduate student Clifford Berry,[25] the machine was not programmable, being designed only to solve systems of linear equations. The computer did employ parallel computation. A 1973 court ruling in a patent dispute found that the patent for the 1946 ENIAC computer derived from the Atanasoff–Berry Computer.

The inventor of the program-controlled computer was Konrad Zuse, who built the first working computer in 1941 and later in 1955 the first computer based on magnetic storage.[26]

George Stibitz is internationally recognized as a father of the modern digital computer. While working at Bell Labs in November 1937, Stibitz invented and built a relay-based calculator he dubbed the “Model K” (for “kitchen table”, on which he had assembled it), which was the first to use binary circuits to perform an arithmetic operation. Later models added greater sophistication including complex arithmetic and programmability.[27]

A succession of steadily more powerful and flexible computing devices were constructed in the 1930s and 1940s, gradually adding the key features that are seen in modern computers. The use of digital electronics (largely invented by Claude Shannon in 1937) and more flexible programmability were vitally important steps, but defining one point along this road as “the first digital electronic computer” is difficult.Shannon 1940 Notable achievements include.

  • Konrad Zuse‘s electromechanical “Z machines”. The Z3 (1941) was the first working machine featuring binary arithmetic, including floating point arithmetic and a measure of programmability. In 1998 the Z3 was proved to be Turing complete, therefore being the world’s first operational computer.[28]
  • The non-programmable Atanasoff–Berry Computer (commenced in 1937, completed in 1941) which used vacuum tube based computation, binary numbers, and regenerative capacitor memory. The use of regenerative memory allowed it to be much more compact than its peers (being approximately the size of a large desk or workbench), since intermediate results could be stored and then fed back into the same set of computation elements.
  • The secret British Colossus computers (1943),[29] which had limited programmability but demonstrated that a device using thousands of tubes could be reasonably reliable and electronically reprogrammable. It was used for breaking German wartime codes.
  • The Harvard Mark I (1944), a large-scale electromechanical computer with limited programmability.[30]
  • The U.S. Army’s Ballistic Research Laboratory ENIAC (1946), which used decimal arithmetic and is sometimes called the first general purpose electronic computer (since Konrad Zuse‘s Z3 of 1941 used electromagnets instead of electronics). Initially, however, ENIAC had an inflexible architecture which essentially required rewiring to change its programming.

Stored-program architecture

Several developers of ENIAC, recognizing its flaws, came up with a far more flexible and elegant design, which came to be known as the “stored program architecture” or von Neumann architecture. This design was first formally described by John von Neumann in the paper First Draft of a Report on the EDVAC, distributed in 1945. A number of projects to develop computers based on the stored-program architecture commenced around this time, the first of these being completed in Great Britain. The first working prototype to be demonstrated was the Manchester Small-Scale Experimental Machine (SSEM or “Baby”) in 1948. The Electronic Delay Storage Automatic Calculator (EDSAC), completed a year after the SSEM at Cambridge University, was the first practical, non-experimental implementation of the stored program design and was put to use immediately for research work at the university. Shortly thereafter, the machine originally described by von Neumann’s paper—EDVAC—was completed but did not see full-time use for an additional two years.

Nearly all modern computers implement some form of the stored-program architecture, making it the single trait by which the word “computer” is now defined. While the technologies used in computers have changed dramatically since the first electronic, general-purpose computers of the 1940s, most still use the von Neumann architecture.

Beginning in the 1950s, Soviet scientists Sergei Sobolev and Nikolay Brusentsov conducted research on ternary computers, devices that operated on a base three numbering system of −1, 0, and 1 rather than the conventional binary numbering system upon which most computers are based. They designed the Setun, a functional ternary computer, at Moscow State University. The device was put into limited production in the Soviet Union, but supplanted by the more common binary architecture.

Semiconductors and microprocessors

Computers using vacuum tubes as their electronic elements were in use throughout the 1950s, but by the 1960s had been largely replaced by transistor-based machines, which were smaller, faster, cheaper to produce, required less power, and were more reliable. The first transistorised computer was demonstrated at the University of Manchester in 1953.[31] In the 1970s, integrated circuit technology and the subsequent creation of microprocessors, such as the Intel 4004, further decreased size and cost and further increased speed and reliability of computers. By the late 1970s, many products such as video recorders contained dedicated computers called microcontrollers, and they started to appear as a replacement to mechanical controls in domestic appliances such as washing machines. The 1980s witnessed home computers and the now ubiquitous personal computer. With the evolution of the Internet, personal computers are becoming as common as the television and the telephone in the household[citation needed].

Modern smartphones are fully programmable computers in their own right, and as of 2009 may well be the most common form of such computers in existence[citation needed].

Programs

The defining feature of modern computers which distinguishes them from all other machines is that they can be programmed. That is to say that some type of instructions (the program) can be given to the computer, and it will carry process them. While some computers may have strange concepts “instructions” and “output” (see quantum computing), modern computers based on the von Neumann architecture often have machine code in the form of an imperative programming language.

In practical terms, a computer program may be just a few instructions or extend to many millions of instructions, as do the programs for word processors and web browsers for example. A typical modern computer can execute billions of instructions per second (gigaflops) and rarely makes a mistake over many years of operation. Large computer programs consisting of several million instructions may take teams of programmers years to write, and due to the complexity of the task almost certainly contain errors.

Stored program architecture

A 1970s punched card containing one line from a FORTRAN program. The card reads: “Z(1) = Y + W(1)” and is labelled “PROJ039″ for identification purposes.

This section applies to most common RAM machine-based computers.

In most cases, computer instructions are simple: add one number to another, move some data from one location to another, send a message to some external device, etc. These instructions are read from the computer’s memory and are generally carried out (executed) in the order they were given. However, there are usually specialized instructions to tell the computer to jump ahead or backwards to some other place in the program and to carry on executing from there. These are called “jump” instructions (or branches). Furthermore, jump instructions may be made to happen conditionally so that different sequences of instructions may be used depending on the result of some previous calculation or some external event. Many computers directly support subroutines by providing a type of jump that “remembers” the location it jumped from and another instruction to return to the instruction following that jump instruction.

Program execution might be likened to reading a book. While a person will normally read each word and line in sequence, they may at times jump back to an earlier place in the text or skip sections that are not of interest. Similarly, a computer may sometimes go back and repeat the instructions in some section of the program over and over again until some internal condition is met. This is called the flow of control within the program and it is what allows the computer to perform tasks repeatedly without human intervention.

Comparatively, a person using a pocket calculator can perform a basic arithmetic operation such as adding two numbers with just a few button presses. But to add together all of the numbers from 1 to 1,000 would take thousands of button presses and a lot of time—with a near certainty of making a mistake. On the other hand, a computer may be programmed to do this with just a few simple instructions. For example:

      mov #0, sum     ; set sum to 0
      mov #1, num     ; set num to 1
loop: add num, sum    ; add num to sum
      add #1, num     ; add 1 to num
      cmp num, #1000  ; compare num to 1000
      ble loop        ; if num <= 1000, go back to 'loop'
      halt            ; end of program. stop running

Once told to run this program, the computer will perform the repetitive addition task without further human intervention. It will almost never make a mistake and a modern PC can complete the task in about a millionth of a second.[32]

Bugs

Main article: software bug

The actual first computer bug, a moth found trapped on a relay of the Harvard Mark II computer

Errors in computer programs are called “bugs“. Bugs may be benign and not affect the usefulness of the program, or have only subtle effects. But in some cases they may cause the program – or the entire system – to “hang“—become unresponsive to input such as mouse clicks or keystrokes, or to completely fail or “crash“. Otherwise benign bugs may sometimes be harnessed for malicious intent by an unscrupulous user writing an “exploit“—code designed to take advantage of a bug and disrupt a computer’s proper execution. Bugs are usually not the fault of the computer. Since computers merely execute the instructions they are given, bugs are nearly always the result of programmer error or an oversight made in the program’s design.[33]

Rear Admiral Grace Hopper is credited for having first used the term ‘bugs’ in computing after a dead moth was found shorting a relay of the Harvard Mark II computer in September 1947.[34]

Machine code

In most computers, individual instructions are stored as machine code with each instruction being given a unique number (its operation code or opcode for short). The command to add two numbers together would have one opcode, the command to multiply them would have a different opcode and so on. The simplest computers are able to perform any of a handful of different instructions; the more complex computers have several hundred to choose from—each with a unique numerical code. Since the computer’s memory is able to store numbers, it can also store the instruction codes. This leads to the important fact that entire programs (which are just lists of these instructions) can be represented as lists of numbers and can themselves be manipulated inside the computer in the same way as numeric data. The fundamental concept of storing programs in the computer’s memory alongside the data they operate on is the crux of the von Neumann, or stored program, architecture. In some cases, a computer might store some or all of its program in memory that is kept separate from the data it operates on. This is called the Harvard architecture after the Harvard Mark I computer. Modern von Neumann computers display some traits of the Harvard architecture in their designs, such as in CPU caches.

While it is possible to write computer programs as long lists of numbers (machine language) and while this technique was used with many early computers,[35] it is extremely tedious and potentially error-prone to do so in practice, especially for complicated programs. Instead, each basic instruction can be given a short name that is indicative of its function and easy to remember—a mnemonic such as ADD, SUB, MULT or JUMP. These mnemonics are collectively known as a computer’s assembly language. Converting programs written in assembly language into something the computer can actually understand (machine language) is usually done by a computer program called an assembler. Machine languages and the assembly languages that represent them (collectively termed low-level programming languages) tend to be unique to a particular type of computer. For instance, an ARM architecture computer (such as may be found in a PDA or a hand-held videogame) cannot understand the machine language of an Intel Pentium or the AMD Athlon 64 computer that might be in a PC.[36]

Higher-level languages and program design

Though considerably easier than in machine language, writing long programs in assembly language is often difficult and is also error prone. Therefore, most practical programs are written in more abstract high-level programming languages that are able to express the needs of the programmer more conveniently (and thereby help reduce programmer error). High level languages are usually “compiled” into machine language (or sometimes into assembly language and then into machine language) using another computer program called a compiler.[37] High level languages are less related to the workings of the target computer than assembly language, and more related to the language and structure of the problem(s) to be solved by the final program. It is therefore often possible to use different compilers to translate the same high level language program into the machine language of many different types of computer. This is part of the means by which software like video games may be made available for different computer architectures such as personal computers and various video game consoles.

The task of developing large software systems presents a significant intellectual challenge. Producing software with an acceptably high reliability within a predictable schedule and budget has historically been difficult; the academic and professional discipline of software engineering concentrates specifically on this challenge.

Function

A general purpose computer has four main components: the arithmetic logic unit (ALU), the control unit, the memory, and the input and output devices (collectively termed I/O). These parts are interconnected by busses, often made of groups of wires.

Inside each of these parts are thousands to trillions of small electrical circuits which can be turned off or on by means of an electronic switch. Each circuit represents a bit (binary digit) of information so that when the circuit is on it represents a “1”, and when off it represents a “0” (in positive logic representation). The circuits are arranged in logic gates so that one or more of the circuits may control the state of one or more of the other circuits.

The control unit, ALU, registers, and basic I/O (and often other hardware closely linked with these) are collectively known as a central processing unit (CPU). Early CPUs were composed of many separate components but since the mid-1970s CPUs have typically been constructed on a single integrated circuit called a microprocessor.

Control unit

Main articles: CPU design and Control unit

Diagram showing how a particular MIPS architecture instruction would be decoded by the control system.

The control unit (often called a control system or central controller) manages the computer’s various components; it reads and interprets (decodes) the program instructions, transforming them into a series of control signals which activate other parts of the computer.[38] Control systems in advanced computers may change the order of some instructions so as to improve performance.

A key component common to all CPUs is the program counter, a special memory cell (a register) that keeps track of which location in memory the next instruction is to be read from.[39]

The control system’s function is as follows—note that this is a simplified description, and some of these steps may be performed concurrently or in a different order depending on the type of CPU:

  1. Read the code for the next instruction from the cell indicated by the program counter.
  2. Decode the numerical code for the instruction into a set of commands or signals for each of the other systems.
  3. Increment the program counter so it points to the next instruction.
  4. Read whatever data the instruction requires from cells in memory (or perhaps from an input device). The location of this required data is typically stored within the instruction code.
  5. Provide the necessary data to an ALU or register.
  6. If the instruction requires an ALU or specialized hardware to complete, instruct the hardware to perform the requested operation.
  7. Write the result from the ALU back to a memory location or to a register or perhaps an output device.
  8. Jump back to step (1).

Since the program counter is (conceptually) just another set of memory cells, it can be changed by calculations done in the ALU. Adding 100 to the program counter would cause the next instruction to be read from a place 100 locations further down the program. Instructions that modify the program counter are often known as “jumps” and allow for loops (instructions that are repeated by the computer) and often conditional instruction execution (both examples of control flow).

It is noticeable that the sequence of operations that the control unit goes through to process an instruction is in itself like a short computer program—and indeed, in some more complex CPU designs, there is another yet smaller computer called a microsequencer that runs a microcode program that causes all of these events to happen.

Arithmetic/logic unit (ALU)

Main article: Arithmetic logic unit

The ALU is capable of performing two classes of operations: arithmetic and logic.[40]

The set of arithmetic operations that a particular ALU supports may be limited to adding and subtracting or might include multiplying or dividing, trigonometry functions (sine, cosine, etc.) and square roots. Some can only operate on whole numbers (integers) whilst others use floating point to represent real numbers—albeit with limited precision. However, any computer that is capable of performing just the simplest operations can be programmed to break down the more complex operations into simple steps that it can perform. Therefore, any computer can be programmed to perform any arithmetic operation—although it will take more time to do so if its ALU does not directly support the operation. An ALU may also compare numbers and return boolean truth values (true or false) depending on whether one is equal to, greater than or less than the other (“is 64 greater than 65?”).

Logic operations involve Boolean logic: AND, OR, XOR and NOT. These can be useful both for creating complicated conditional statements and processing boolean logic.

Superscalar computers may contain multiple ALUs so that they can process several instructions at the same time.[41] Graphics processors and computers with SIMD and MIMD features often provide ALUs that can perform arithmetic on vectors and matrices.

Memory

Main article: Computer data storage

Magnetic core memory was the computer memory of choice throughout the 1960s, until it was replaced by semiconductor memory.

A computer’s memory can be viewed as a list of cells into which numbers can be placed or read. Each cell has a numbered “address” and can store a single number. The computer can be instructed to “put the number 123 into the cell numbered 1357″ or to “add the number that is in cell 1357 to the number that is in cell 2468 and put the answer into cell 1595″. The information stored in memory may represent practically anything. Letters, numbers, even computer instructions can be placed into memory with equal ease. Since the CPU does not differentiate between different types of information, it is the software’s responsibility to give significance to what the memory sees as nothing but a series of numbers.

In almost all modern computers, each memory cell is set up to store binary numbers in groups of eight bits (called a byte). Each byte is able to represent 256 different numbers (2^8 = 256); either from 0 to 255 or −128 to +127. To store larger numbers, several consecutive bytes may be used (typically, two, four or eight). When negative numbers are required, they are usually stored in two’s complement notation. Other arrangements are possible, but are usually not seen outside of specialized applications or historical contexts. A computer can store any kind of information in memory if it can be represented numerically. Modern computers have billions or even trillions of bytes of memory.

The CPU contains a special set of memory cells called registers that can be read and written to much more rapidly than the main memory area. There are typically between two and one hundred registers depending on the type of CPU. Registers are used for the most frequently needed data items to avoid having to access main memory every time data is needed. As data is constantly being worked on, reducing the need to access main memory (which is often slow compared to the ALU and control units) greatly increases the computer’s speed.

Computer main memory comes in two principal varieties: random-access memory or RAM and read-only memory or ROM. RAM can be read and written to anytime the CPU commands it, but ROM is pre-loaded with data and software that never changes, so the CPU can only read from it. ROM is typically used to store the computer’s initial start-up instructions. In general, the contents of RAM are erased when the power to the computer is turned off, but ROM retains its data indefinitely. In a PC, the ROM contains a specialized program called the BIOS that orchestrates loading the computer’s operating system from the hard disk drive into RAM whenever the computer is turned on or reset. In embedded computers, which frequently do not have disk drives, all of the required software may be stored in ROM. Software stored in ROM is often called firmware, because it is notionally more like hardware than software. Flash memory blurs the distinction between ROM and RAM, as it retains its data when turned off but is also rewritable. It is typically much slower than conventional ROM and RAM however, so its use is restricted to applications where high speed is unnecessary.[42]

In more sophisticated computers there may be one or more RAM cache memories which are slower than registers but faster than main memory. Generally computers with this sort of cache are designed to move frequently needed data into the cache automatically, often without the need for any intervention on the programmer’s part.

Input/output (I/O)

Main article: Input/output

Hard disk drives are common storage devices used with computers.

I/O is the means by which a computer exchanges information with the outside world.[43] Devices that provide input or output to the computer are called peripherals.[44] On a typical personal computer, peripherals include input devices like the keyboard and mouse, and output devices such as the display and printer. Hard disk drives, floppy disk drives and optical disc drives serve as both input and output devices. Computer networking is another form of I/O.

Often, I/O devices are complex computers in their own right with their own CPU and memory. A graphics processing unit might contain fifty or more tiny computers that perform the calculations necessary to display 3D graphics[citation needed]. Modern desktop computers contain many smaller computers that assist the main CPU in performing I/O.

Multitasking

Main article: Computer multitasking

While a computer may be viewed as running one gigantic program stored in its main memory, in some systems it is necessary to give the appearance of running several programs simultaneously. This is achieved by multitasking i.e. having the computer switch rapidly between running each program in turn.[45]

One means by which this is done is with a special signal called an interrupt which can periodically cause the computer to stop executing instructions where it was and do something else instead. By remembering where it was executing prior to the interrupt, the computer can return to that task later. If several programs are running “at the same time”, then the interrupt generator might be causing several hundred interrupts per second, causing a program switch each time. Since modern computers typically execute instructions several orders of magnitude faster than human perception, it may appear that many programs are running at the same time even though only one is ever executing in any given instant. This method of multitasking is sometimes termed “time-sharing” since each program is allocated a “slice” of time in turn.[46]

Before the era of cheap computers, the principal use for multitasking was to allow many people to share the same computer.

Seemingly, multitasking would cause a computer that is switching between several programs to run more slowly — in direct proportion to the number of programs it is running. However, most programs spend much of their time waiting for slow input/output devices to complete their tasks. If a program is waiting for the user to click on the mouse or press a key on the keyboard, then it will not take a “time slice” until the event it is waiting for has occurred. This frees up time for other programs to execute so that many programs may be run at the same time without unacceptable speed loss.

Multiprocessing

Main article: Multiprocessing

Cray designed many supercomputers that used multiprocessing heavily.

Some computers are designed to distribute their work across several CPUs in a multiprocessing configuration, a technique once employed only in large and powerful machines such as supercomputers, mainframe computers and servers. Multiprocessor and multi-core (multiple CPUs on a single integrated circuit) personal and laptop computers are now widely available, and are being increasingly used in lower-end markets as a result.

Supercomputers in particular often have highly unique architectures that differ significantly from the basic stored-program architecture and from general purpose computers.[47] They often feature thousands of CPUs, customized high-speed interconnects, and specialized computing hardware. Such designs tend to be useful only for specialized tasks due to the large scale of program organization required to successfully utilize most of the available resources at once. Supercomputers usually see usage in large-scale simulation, graphics rendering, and cryptography applications, as well as with other so-called “embarrassingly parallel” tasks.

Networking and the Internet

Main articles: Computer networking and Internet

Visualization of a portion of the routes on the Internet.

Computers have been used to coordinate information between multiple locations since the 1950s. The U.S. military’s SAGE system was the first large-scale example of such a system, which led to a number of special-purpose commercial systems like Sabre.[48]

In the 1970s, computer engineers at research institutions throughout the United States began to link their computers together using telecommunications technology. This effort was funded by ARPA (now DARPA), and the computer network that it produced was called the ARPANET.[49] The technologies that made the Arpanet possible spread and evolved.

In time, the network spread beyond academic and military institutions and became known as the Internet. The emergence of networking involved a redefinition of the nature and boundaries of the computer. Computer operating systems and applications were modified to include the ability to define and access the resources of other computers on the network, such as peripheral devices, stored information, and the like, as extensions of the resources of an individual computer. Initially these facilities were available primarily to people working in high-tech environments, but in the 1990s the spread of applications like e-mail and the World Wide Web, combined with the development of cheap, fast networking technologies like Ethernet and ADSL saw computer networking become almost ubiquitous. In fact, the number of computers that are networked is growing phenomenally. A very large proportion of personal computers regularly connect to the Internet to communicate and receive information. “Wireless” networking, often utilizing mobile phone networks, has meant networking is becoming increasingly ubiquitous even in mobile computing environments.

Misconceptions

A computer does not need to be electric, nor even have a processor, nor RAM, nor even hard disk. The minimal definition of a computer is anything that transforms information in a purposeful way.[citation needed] However the traditional definition of a computer is a device having memory, mass storage, processor (CPU), and Input & Output devices.[50] Anything less would be a simple processor.

Required technology

Computational systems as flexible as a personal computer can be built out of almost anything. For example, a computer can be made out of billiard balls (billiard ball computer); this is an unintuitive and pedagogical example that a computer can be made out of almost anything. More realistically, modern computers are made out of transistors made of photolithographed semiconductors.

Historically, computers evolved from mechanical computers and eventually from vacuum tubes to transistors.

There is active research to make computers out of many promising new types of technology, such as optical computing, DNA computers, neural computers, and quantum computers. Some of these can easily tackle problems that modern computers cannot (such as how quantum computers can break some modern encryption algorithms by quantum factoring).

Computer architecture paradigms

Some different paradigms of how to build a computer from the ground-up:

RAM machines
These are the types of computers with a CPU, computer memory, etc., which understand basic instructions in a machine language. The concept evolved from the Turing machine.
Brains
Brains are massively parallel processors made of neurons, wired in intricate patterns, that communicate via electricity and neurotransmitter chemicals.
Programming languages
Such as the lambda calculus, or modern programming languages, are virtual computers built on top of other computers.
Cellular automata
For example, the game of Life can create “gliders” and “loops” and other constructs that transmit information; this paradigm can be applied to DNA computing, chemical computing, etc.
Groups and committees
The linking of multiple computers (brains) is itself a computer

Logic gates are a common abstraction which can apply to most of the above digital or analog paradigms.

The ability to store and execute lists of instructions called programs makes computers extremely versatile, distinguishing them from calculators. The Church–Turing thesis is a mathematical statement of this versatility: any computer with a minimum capability (being Turing-complete) is, in principle, capable of performing the same tasks that any other computer can perform. Therefore any type of computer (netbook, supercomputer, cellular automaton, etc.) is able to perform the same computational tasks, given enough time and storage capacity.

Limited-function computers

Conversely, a computer which is limited in function (one that is not “Turing-complete“) cannot simulate arbitrary things. For example, simple four-function calculators cannot simulate a real computer without human intervention. As a more complicated example, without the ability to program a gaming console, it can never accomplish what a programmable calculator from the 1990s could (given enough time); the system as a whole is not Turing-complete, even though it contains a Turing-complete component (the microprocessor). Living organisms (the body, not the brain) are also limited-function computers designed to make copies of themselves; they cannot be reprogrammed without genetic engineering.

Virtual computers

A “computer” is commonly considered to be a physical device. However, one can create a computer program which describes how to run a different computer, i.e. “simulating a computer in a computer”. Not only is this a constructive proof of the Church-Turing thesis, but is also extremely common in all modern computers. For example, some programming languages use something called an interpreter, which is a simulated computer built on top of the basic computer; this allows programmers to write code (computer input) in a different language than the one understood by the base computer (the alternative is to use a compiler). Additionally, virtual machines are simulated computers which virtually replicate a physical computer in software, and are very commonly used by IT. Virtual machines are also a common technique used to create emulators, such game console emulators.

Further topics

Artificial intelligence

A computer will solve problems in exactly the way they are programmed to, without regard to efficiency nor alternative solutions nor possible shortcuts nor possible errors in the code. Computer programs which learn and adapt are part of the emerging field of artificial intelligence and machine learning.

Hardware

The term hardware covers all of those parts of a computer that are tangible objects. Circuits, displays, power supplies, cables, keyboards, printers and mice are all hardware.

History of computing hardware
First Generation (Mechanical/Electromechanical) Calculators Antikythera mechanism, Difference engine, Norden bombsight
Programmable Devices Jacquard loom, Analytical engine, Harvard Mark I, Z3
Second Generation (Vacuum Tubes) Calculators Atanasoff–Berry Computer, IBM 604, UNIVAC 60, UNIVAC 120
Programmable Devices Colossus, ENIAC, Manchester Small-Scale Experimental Machine, EDSAC, Manchester Mark 1, Ferranti Pegasus, Ferranti Mercury, CSIRAC, EDVAC, UNIVAC I, IBM 701, IBM 702, IBM 650, Z22
Third Generation (Discrete transistors and SSI, MSI, LSI Integrated circuits) Mainframes IBM 7090, IBM 7080, IBM System/360, BUNCH
Minicomputer PDP-8, PDP-11, IBM System/32, IBM System/36
Fourth Generation (VLSI integrated circuits) Minicomputer VAX, IBM System i
4-bit microcomputer Intel 4004, Intel 4040
8-bit microcomputer Intel 8008, Intel 8080, Motorola 6800, Motorola 6809, MOS Technology 6502, Zilog Z80
16-bit microcomputer Intel 8088, Zilog Z8000, WDC 65816/65802
32-bit microcomputer Intel 80386, Pentium, Motorola 68000, ARM architecture
64-bit microcomputer[51] Alpha, MIPS, PA-RISC, PowerPC, SPARC, x86-64
Embedded computer Intel 8048, Intel 8051
Personal computer Desktop computer, Home computer, Laptop computer, Personal digital assistant (PDA), Portable computer, Tablet PC, Wearable computer
Theoretical/experimental Quantum computer, Chemical computer, DNA computing, Optical computer, Spintronics based computer
Other Hardware Topics
Peripheral device (Input/output) Input Mouse, Keyboard, Joystick, Image scanner, Webcam, Graphics tablet, Microphone
Output Monitor, Printer, Loudspeaker
Both Floppy disk drive, Hard disk drive, Optical disc drive, Teleprinter
Computer busses Short range RS-232, SCSI, PCI, USB
Long range (Computer networking) Ethernet, ATM, FDDI

Software

Main article: Computer software

Software refers to parts of the computer which do not have a material form, such as programs, data, protocols, etc. When software is stored in hardware that cannot easily be modified (such as BIOS ROM in an IBM PC compatible), it is sometimes called “firmware” to indicate that it falls into an uncertain area somewhere between hardware and software.

Computer software
Operating system Unix and BSD UNIX System V, IBM AIX, HP-UX, Solaris (SunOS), IRIX, List of BSD operating systems
GNU/Linux List of Linux distributions, Comparison of Linux distributions
Microsoft Windows Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7
DOS 86-DOS (QDOS), PC-DOS, MS-DOS, DR-DOS, FreeDOS
Mac OS Mac OS classic, Mac OS X
Embedded and real-time List of embedded operating systems
Experimental Amoeba, Oberon/Bluebottle, Plan 9 from Bell Labs
Library Multimedia DirectX, OpenGL, OpenAL
Programming library C standard library, Standard Template Library
Data Protocol TCP/IP, Kermit, FTP, HTTP, SMTP
File format HTML, XML, JPEG, MPEG, PNG
User interface Graphical user interface (WIMP) Microsoft Windows, GNOME, KDE, QNX Photon, CDE, GEM, Aqua
Text-based user interface Command-line interface, Text user interface
Application Office suite Word processing, Desktop publishing, Presentation program, Database management system, Scheduling & Time management, Spreadsheet, Accounting software
Internet Access Browser, E-mail client, Web server, Mail transfer agent, Instant messaging
Design and manufacturing Computer-aided design, Computer-aided manufacturing, Plant management, Robotic manufacturing, Supply chain management
Graphics Raster graphics editor, Vector graphics editor, 3D modeler, Animation editor, 3D computer graphics, Video editing, Image processing
Audio Digital audio editor, Audio playback, Mixing, Audio synthesis, Computer music
Software engineering Compiler, Assembler, Interpreter, Debugger, Text editor, Integrated development environment, Software performance analysis, Revision control, Software configuration management
Educational Edutainment, Educational game, Serious game, Flight simulator
Games Strategy, Arcade, Puzzle, Simulation, First-person shooter, Platform, Massively multiplayer, Interactive fiction
Misc Artificial intelligence, Antivirus software, Malware scanner, Installer/Package management systems, File manager

Programming languages

Main article: Programming language

Programming languages provide various ways of specifying programs for computers to run. Unlike natural languages, programming languages are designed to permit no ambiguity and to be concise. They are purely written languages and are often difficult to read aloud. They are generally either translated into machine code by a compiler or an assembler before being run, or translated directly at run time by an interpreter. Sometimes programs are executed by a hybrid method of the two techniques. There are thousands of different programming languages—some intended to be general purpose, others useful only for highly specialized applications.

Programming languages
Lists of programming languages Timeline of programming languages, List of programming languages by category, Generational list of programming languages, List of programming languages, Non-English-based programming languages
Commonly used Assembly languages ARM, MIPS, x86
Commonly used high-level programming languages Ada, BASIC, C, C++, C#, COBOL, Fortran, Java, Lisp, Pascal, Object Pascal
Commonly used Scripting languages Bourne script, JavaScript, Python, Ruby, PHP, Perl

Professions and organizations

As the use of computers has spread throughout society, there are an increasing number of careers involving computers.

Computer-related professions
Hardware-related Electrical engineering, Electronic engineering, Computer engineering, Telecommunications engineering, Optical engineering, Nanoengineering
Software-related Computer science, Desktop publishing, Human–computer interaction, Information technology, Information systems, Computational science, Software engineering, Video game industry, Web design

The need for computers to work well together and to be able to exchange information has spawned the need for many standards organizations, clubs and societies of both a formal and informal nature.

Organizations
Standards groups ANSI, IEC, IEEE, IETF, ISO, W3C
Professional Societies ACM, AIS, IET, IFIP, BCS
Free/Open source software groups Free Software Foundation, Mozilla Foundation, Apache Software Foundation

See also

Notes

  1. ^ In 1946, ENIAC required an estimated 174 kW. By comparison, a modern laptop computer may use around 30 W; nearly six thousand times less. “Approximate Desktop & Notebook Power Usage”. University of Pennsylvania. http://www.upenn.edu/computing/provider/docs/hardware/powerusage.html. Retrieved 2009-06-20. 
  2. ^ Early computers such as Colossus and ENIAC were able to process between 5 and 100 operations per second. A modern “commoditymicroprocessor (as of 2007) can process billions of operations per second, and many of these operations are more complicated and useful than early computer operations. “Intel Core2 Duo Mobile Processor: Features”. Intel Corporation. http://www.intel.com/cd/channel/reseller/asmo-na/eng/products/mobile/processors/core2duo_m/feature/index.htm. Retrieved 2009-06-20. 
  3. ^ computer, n.. Oxford English Dictionary (2 ed.). Oxford University Press. 1989. http://dictionary.oed.com/. Retrieved 2009-04-10 
  4. ^ * Ifrah, Georges (2001). The Universal History of Computing: From the Abacus to the Quantum Computer. New York: John Wiley & Sons. ISBN 0471396710.  From 2700 to 2300 BC, Georges Ifrah, pp.11
  5. ^ Berkeley, Edmund (1949). Giant Brains, or Machines That Think. John Wiley & Sons. pp. 19.  Edmund Berkeley
  6. ^ According to advertising on Pickett’s N600 slide rule boxes.“Pickett Apollo Box Scans”. Copland.udel.edu. http://copland.udel.edu/~mm/sliderule/lem/. Retrieved 2010-02-20. 
  7. ^ “Discovering How Greeks Computed in 100 B.C.”. The New York Times. 31 July 2008. http://www.nytimes.com/2008/07/31/science/31computer.html?hp. Retrieved 27 March 2010. 
  8. ^ “Heron of Alexandria”. http://www.mlahanas.de/Greeks/HeronAlexandria2.htm. Retrieved 2008-01-15. 
  9. ^ Felt, Dorr E. (1916). Mechanical arithmetic, or The history of the counting machine. Chicago: Washington Institute. pp. 8. http://www.archive.org/details/mechanicalarithm00feltrichDorr E. Felt
  10. ^ “Speaking machines”. The parlour review, Philadelphia 1 (3). January 20, 1838. http://books.google.co.uk/books?id=Xt4PAAAAYAAJ&pg=PT38&dq=the+parlour+review+january+1838&hl=en&ei=0yqzTN3kLMTHswa2wMjSDQ&sa=X&oi=book_result&ct=result&resnum=1&ved=0CCsQ6AEwAA#v=onepage&q&f=false. Retrieved October 11, 2010. 
  11. ^ Felt, Dorr E. (1916). Mechanical arithmetic, or The history of the counting machine. Chicago: Washington Institute. pp. 10. http://www.archive.org/details/mechanicalarithm00feltrichDorr E. Felt
  12. ^ “Pascal and Leibnitz, in the seventeenth century, and Diderot at a later period, endeavored to construct a machine which might serve as a substitute for human intelligence in the combination of figures” The Gentleman’s magazine, Volume 202, p.100
  13. ^ Babbage’s Difference engine in 1823 and his Analytical engine in the mid 1830s
  14. ^ “It is reasonable to inquire, therefore, whether it is possible to devise a machine which will do for mathematical computation what the automatic lathe has done for engineering. The first suggestion that such a machine could be made came more than a hundred years ago from the mathematician Charles Babbage. Babbage’s ideas have only been properly appreciated in the last ten years, but we now realize that he understood clearly all the fundamental principles which are embodied in modern digital computers” Faster than thought, edited by B. V. Bowden, 1953, Pitman publishing corporation
  15. ^ “…Among this extraordinary galaxy of talent Charles Babbage appears to be one of the most remarkable of all. Most of his life he spent in an entirely unsuccessful attempt to make a machine which was regarded by his contemporaries as utterly preposterous, and his efforts were regarded as futile, time-consuming and absurd. In the last decade or so we have learnt how his ideas can be embodied in a modern digital computer. He understood more about the logic of these machines than anyone else in the world had learned until after the end of the last war” Foreword, Irascible Genius, Charles Babbage, inventor by Maboth Moseley, 1964, London, Hutchinson
  16. ^ In the proposal that Aiken gave IBM in 1937 while requesting funding for the Harvard Mark I we can read: “Few calculating machines have been designed strictly for application to scientific investigations, the notable exceptions being those of Charles Babbage and others who followed him….After abandoning the difference engine, Babbage devoted his energy to the design and construction of an analytical engine of far higher powers than the difference engine….Since the time of Babbage, the development of calculating machinery has continued at an increasing rate.” Howard Aiken, Proposed automatic calculating machine, reprinted in: The origins of Digital computers, Selected Papers, Edited by Brian Randell, 1973, ISBN 3-540-06169-X
  17. ^ “Parallel processors composed of these high-performance microprocessors are becoming the supercomputing technology of choice for scientific and engineering applications”, 1993, “Microprocessors: From Desktops to Supercomputers”. Science Magazine. http://www.sciencemag.org/content/261/5123/864.abstract. Retrieved 2011-04-23. 
  18. ^ Intel Museum – The 4004, Big deal then, Big deal now
  19. ^ Please read Sumlock ANITA calculator#History of ANITA calculators
  20. ^ From cave paintings to the internet HistoryofScience.com
  21. ^ See: Anthony Hyman, ed., Science and Reform: Selected Works of Charles Babbage (Cambridge, England: Cambridge University Press, 1989), page 298. It is in the collection of the Science Museum in London, England. (Delve (2007), page 99.)
  22. ^ The analytical engine should not be confused with Babbage’s difference engine which was a non-programmable mechanical calculator.
  23. ^ “Columbia University Computing History: Herman Hollerith”. Columbia.edu. http://www.columbia.edu/acis/history/hollerith.html. Retrieved 2010-12-11. 
  24. ^ a b “Alan Turing – Time 100 People of the Century”. Time Magazine. http://205.188.238.181/time/time100/scientist/profile/turing.html. Retrieved 2009-06-13. “The fact remains that everyone who taps at a keyboard, opening a spreadsheet or a word-processing program, is working on an incarnation of a Turing machine” 
  25. ^ “Atanasoff-Berry Computer”. http://energysciencenews.com/phpBB3/viewtopic.php?f=1&t=98&p=264#p264. Retrieved 2010-11-20. 
  26. ^ “Spiegel: The inventor of the computer’s biography was published”. Spiegel.de. 2009-09-28. http://www.spiegel.de/netzwelt/gadgets/0,1518,651776,00.html. Retrieved 2010-12-11. 
  27. ^ “Inventor Profile: George R. Stibitz”. National Inventors Hall of Fame Foundation, Inc.. http://www.invent.org/hall_of_fame/140.html
  28. ^ Rojas, R. (1998). “How to make Zuse’s Z3 a universal computer”. IEEE Annals of the History of Computing 20 (3): 51–54. doi:10.1109/85.707574
  29. ^ B. Jack Copeland, ed., Colossus: The Secrets of Bletchley Park’s Codebreaking Computers, Oxford University Press, 2006
  30. ^ “Robot Mathematician Knows All The Answers”, October 1944, Popular Science. Books.google.com. http://books.google.com/books?id=PyEDAAAAMBAJ&pg=PA86&dq=motor+gun+boat&hl=en&ei=LxTqTMfGI4-bnwfEyNiWDQ&sa=X&oi=book_result&ct=result&resnum=6&ved=0CEIQ6AEwBQ#v=onepage&q=motor%20gun%20boat&f=true. Retrieved 2010-12-11. 
  31. ^ Lavington 1998, p. 37
  32. ^ This program was written similarly to those for the PDP-11 minicomputer and shows some typical things a computer can do. All the text after the semicolons are comments for the benefit of human readers. These have no significance to the computer and are ignored. (Digital Equipment Corporation 1972)
  33. ^ It is not universally true that bugs are solely due to programmer oversight. Computer hardware may fail or may itself have a fundamental problem that produces unexpected results in certain situations. For instance, the Pentium FDIV bug caused some Intel microprocessors in the early 1990s to produce inaccurate results for certain floating point division operations. This was caused by a flaw in the microprocessor design and resulted in a partial recall of the affected devices.
  34. ^ Taylor, Alexander L., III (1984-04-16). “The Wizard Inside the Machine”. TIME. http://www.time.com/time/printout/0,8816,954266,00.html. Retrieved 2007-02-17. 
  35. ^ Even some later computers were commonly programmed directly in machine code. Some minicomputers like the DEC PDP-8 could be programmed directly from a panel of switches. However, this method was usually used only as part of the booting process. Most modern computers boot entirely automatically by reading a boot program from some non-volatile memory.
  36. ^ However, there is sometimes some form of machine language compatibility between different computers. An x86-64 compatible microprocessor like the AMD Athlon 64 is able to run most of the same programs that an Intel Core 2 microprocessor can, as well as programs designed for earlier microprocessors like the Intel Pentiums and Intel 80486. This contrasts with very early commercial computers, which were often one-of-a-kind and totally incompatible with other computers.
  37. ^ High level languages are also often interpreted rather than compiled. Interpreted languages are translated into machine code on the fly, while running, by another program called an interpreter.
  38. ^ The control unit’s role in interpreting instructions has varied somewhat in the past. Although the control unit is solely responsible for instruction interpretation in most modern computers, this is not always the case. Many computers include some instructions that may only be partially interpreted by the control system and partially interpreted by another device. This is especially the case with specialized computing hardware that may be partially self-contained. For example, EDVAC, one of the earliest stored-program computers, used a central control unit that only interpreted four instructions. All of the arithmetic-related instructions were passed on to its arithmetic unit and further decoded there.
  39. ^ Instructions often occupy more than one memory address, so the program counters usually increases by the number of memory locations required to store one instruction.
  40. ^ David J. Eck (2000). The Most Complex Machine: A Survey of Computers and Computing. A K Peters, Ltd.. p. 54. ISBN 9781568811284
  41. ^ Erricos John Kontoghiorghes (2006). Handbook of Parallel Computing and Statistics. CRC Press. p. 45. ISBN 9780824740672
  42. ^ Flash memory also may only be rewritten a limited number of times before wearing out, making it less useful for heavy random access usage. (Verma & Mielke 1988)
  43. ^ Donald Eadie (1968). Introduction to the Basic Computer. Prentice-Hall. p. 12. 
  44. ^ Arpad Barna; Dan I. Porat (1976). Introduction to Microcomputers and the Microprocessors. Wiley. p. 85. ISBN 9780471050513
  45. ^ Jerry Peek; Grace Todino, John Strang (2002). Learning the UNIX Operating System: A Concise Guide for the New User. O’Reilly. p. 130. ISBN 9780596002619
  46. ^ Gillian M. Davis (2002). Noise Reduction in Speech Applications. CRC Press. p. 111. ISBN 9780849309496
  47. ^ However, it is also very common to construct supercomputers out of many pieces of cheap commodity hardware; usually individual computers connected by networks. These so-called computer clusters can often provide supercomputer performance at a much lower cost than customized designs. While custom architectures are still used for most of the most powerful supercomputers, there has been a proliferation of cluster computers in recent years. (TOP500 2006)
  48. ^ Agatha C. Hughes (2000). Systems, Experts, and Computers. MIT Press. p. 161. ISBN 9780262082853. “The experience of SAGE helped make possible the first truly large-scale commercial real-time network: the SABRE computerized airline reservations system…” 
  49. ^ “A Brief History of the Internet”. Internet Society. http://www.isoc.org/internet/history/brief.shtml. Retrieved 2008-09-20. 
  50. ^ “What is a computer?”. Webopedia. http://www.webopedia.com/TERM/C/computer.html. Retrieved 25 February 2011. 
  51. ^ Most major 64-bit instruction set architectures are extensions of earlier designs. All of the architectures listed in this table, except for Alpha, existed in 32-bit forms before their 64-bit incarnations were introduced.

References

iNDONESIAN VERSION :

DAFTAR ISI

Pengenalan

Sejarah singkat Komputer

Buku Satu: KOLEKSI HARDWARE YANG bersejarah

Bagian Satu: Koleksi Hardware bersejarah Sebelum Bagian komputer modern Dua: Koleksi Hardware Bersejarah Sebelum Windows Exist

Buku Dua: THE KOLEKSI WARE LEMBUT HISTPROIC

Bagian Satu: colections bersejarah softeware Sebelum Bagian software WordStar dua: Perangkat Lunak koleksi bersejarah setelah software WordStar

I. PENDAHULUAN.

Semua orang menggunakan komputer sekarang, tapi tidak banyak memahami sejarah develomment komputer dan koleksi yang berhubungan dengan komputer.

Saya telah membuat reasearch tentang itu, dan menulis buku panduan mulai THS untuk kolektor komputer histic.

Saya tahu bahwa buku ini masih belum lengkap itu sebabnya semua cumpters realted colloors akan mengirimkan komentar dan membantu untuk menambahkan ilustrasi ini koleksi amizing.

Jakarta Agustus 2011

Dr Iwan Suwandy, MHA

II.THE PENDEK SEJARAH KOMPUTER

 
Komputer

Sebuah komputer adalah mesin yang dirancang untuk diprogram secara berurutan dan secara otomatis melaksanakan urutan aritmatika atau operasi logika. Urutan tertentu operasi dapat diubah dengan mudah, yang memungkinkan komputer untuk memecahkan lebih dari satu jenis masalah.

Konvensional komputer terdiri dari beberapa bentuk memori untuk penyimpanan data, setidaknya satu elemen yang melakukan operasi aritmatika dan logika, dan elemen sequencing dan kontrol yang dapat mengubah urutan operasi berdasarkan informasi yang disimpan. Perangkat periferal memungkinkan informasi yang akan dimasukkan dari sumber eksternal, dan memungkinkan hasil operasi yang akan dikirim keluar.

Unit pengolahan Sebuah komputer menjalankan serangkaian instruksi yang membuatnya membaca, memanipulasi dan kemudian menyimpan data. Instruksi Bersyarat mengubah urutan instruksi sebagai fungsi dari keadaan saat ini mesin atau lingkungannya.

Komputer elektronik pertama dikembangkan pada pertengahan abad ke-20 (1940-1945). Awalnya, mereka ukuran ruangan besar, mengkonsumsi sebagai kekuatan sebanyak beberapa ratus komputer pribadi modern (PC) [1].

Komputer modern berdasarkan sirkuit terpadu jutaan hingga miliaran kali lebih mampu dari mesin awal, dan menempati sebagian kecil dari ruang [2] komputer sederhana yang cukup kecil untuk masuk ke dalam perangkat mobile, dan komputer mobile dapat diaktifkan oleh baterai kecil. . Komputer pribadi dalam berbagai bentuk mereka ikon Era Informasi dan apa yang kebanyakan orang pikir sebagai “komputer”. Namun, komputer tertanam ditemukan di banyak perangkat dari mp3 player untuk pesawat tempur dan dari mainan untuk robot industri yang paling banyak.

Isi
1 Sejarah komputasi
1,1 Terbatas-fungsi awal komputer
1.2 Pertama untuk keperluan umum komputer
1,3 Tersimpan-program arsitektur
1.4 Semikonduktor dan mikroprosesor
2 Program
2.1 Tersimpan program arsitektur
2.2 Bugs
2.3 Mesin Kode
Tinggi 2,4-tingkat bahasa dan desain program
3 Fungsi
3.1 Unit kontrol
3.2 Aritmatika / logika unit (ALU)
3.3 Memori
3.4 Input / output (I / O)
3,5 Multitasking
3.6 Multiprocessing
3.7 Jaringan dan Internet
Kesalahpahaman 4
4.1 Diperlukan teknologi
4.2 Arsitektur Komputer paradigma
4,3 Terbatas-fungsi komputer
4.4 Virtual komputer
5 lanjut topik
5.1 Buatan intelijen
5.2 Perangkat Keras
5.3 Perangkat Lunak
5.4 Bahasa pemrograman
5.5 Profesi dan organisasi
6 Lihat juga
7 Catatan
8 Referensi
9 Pranala luar
 

Sejarah komputasi
Artikel utama: Sejarah perangkat keras komputer
Penggunaan pertama dari “komputer” kata tercatat pada 1613, mengacu pada seseorang yang melakukan perhitungan, atau perhitungan, dan kata dilanjutkan dengan arti yang sama sampai pertengahan abad ke-20. Dari akhir abad ke-19 dan seterusnya, kata mulai mengambil makna yang lebih akrab, menggambarkan sebuah mesin yang melakukan perhitungan. [3]

Terbatas-fungsi awal komputer

Alat tenun Jacquard, dipamerkan di Museum Sains dan Industri di Manchester, Inggris, adalah salah satu perangkat diprogram pertama.

Sejarah komputer modern dimulai dengan dua perhitungan yang terpisah teknologi-otomatis dan programabilitas-tapi tidak ada perangkat tunggal dapat diidentifikasi sebagai komputer awal, sebagian karena aplikasi yang tidak konsisten dari istilah tersebut. Sebuah beberapa perangkat yang layak disebutkan meskipun, seperti beberapa alat bantu mekanis untuk komputasi, yang sangat sukses dan bertahan selama berabad-abad sampai munculnya kalkulator elektronik, seperti sempoa Sumeria, dirancang sekitar 2500 SM [4] yang keturunan memenangkan kompetisi kecepatan terhadap meja modern yang menghitung mesin di Jepang pada tahun 1946, [5] aturan slide, ditemukan pada 1620-an, yang dilakukan pada lima misi ruang angkasa Apollo, termasuk untuk bulan [6] dan bisa dibilang astrolabe dan mekanisme Antikythera, sebuah astronomi kuno komputer yang dibangun oleh orang Yunani sekitar 80 SM [7]. The Hero matematika Yunani dari Alexandria (c. 10-70 AD) membangun sebuah teater mekanis yang dilakukan sebuah drama yang berlangsung 10 menit dan dioperasikan oleh sebuah sistem yang kompleks dari tali dan drum yang mungkin dianggap sarana memutuskan bagian mana dari mekanisme dilakukan tindakan-tindakan dan ketika [8]. Ini adalah inti dari programabilitas.

Sekitar akhir abad kesepuluh, biarawan Perancis Gerbert d’Aurillac membawa kembali dari Spanyol gambar dari mesin ditemukan oleh bangsa Moor yang menjawab Ya atau Tidak untuk pertanyaan-pertanyaan itu ditanyakan (aritmatika biner) [9] Sekali lagi. Di abad ketiga belas, para biarawan Albertus Magnus dan Roger Bacon dibangun androids berbicara tanpa pengembangan lebih lanjut (Albertus Magnus mengeluh bahwa ia telah menyia-nyiakan empat puluh tahun hidupnya ketika Thomas Aquinas, ketakutan oleh mesin, hancur itu). [10]

Pada tahun 1642, Renaisans melihat penemuan kalkulator mekanik, [11] sebuah perangkat yang dapat melakukan semua operasi aritmatika empat tanpa bergantung pada kecerdasan manusia [12]. Kalkulator mekanik pada akar dari perkembangan komputer dalam dua cara terpisah , awalnya, di dalam mencoba untuk mengembangkan kalkulator lebih kuat dan lebih fleksibel [13] bahwa komputer pertama kali berteori oleh Charles Babbage [14] [15] dan kemudian dikembangkan, [16] yang mengarah ke pengembangan komputer mainframe di tahun 1960 , tetapi juga mikroprosesor, yang memulai revolusi komputer pribadi, dan yang sekarang di jantung dari semua sistem komputer terlepas dari ukuran atau tujuan, [17] ditemukan secara kebetulan oleh Intel [18] selama pengembangan kalkulator elektronik, keturunan langsung ke kalkulator mekanik [19].

Pertama komputer untuk keperluan umum
Pada tahun 1801, Joseph Marie Jacquard membuat perbaikan untuk mesin tenun tekstil dengan memperkenalkan serangkaian kartu kertas meninju sebagai template yang memungkinkan alat tenun untuk pola-pola rumit menenun secara otomatis. The Jacquard tenun yang dihasilkan merupakan langkah penting dalam pengembangan komputer karena penggunaan kartu menekan untuk mendefinisikan pola tenunan dapat dilihat sebagai awal, meskipun terbatas, bentuk programabilitas.

Image Paling Terkenal dalam Sejarah Awal Computing [20]
Ini adalah potret Jacquard tenun sutera di atas alat tenun Jacquard dan diperlukan 24.000 kartu berlubang untuk membuat (1839). Itu hanya diproduksi untuk memesan. Charles Babbage yang dimiliki salah satu potret, terinspirasi dia dalam menggunakan kartu berlubang di mesin analitis [21]

Itu adalah perpaduan dari perhitungan otomatis dengan programabilitas yang dihasilkan komputer dikenali pertama. Pada 1837, Charles Babbage yang pertama untuk konsep dan desain komputer mekanik sepenuhnya diprogram, mesin analitis [22] Terbatas keuangan dan ketidakmampuan Babbage untuk menolak bermain-main dengan desain berarti bahwa perangkat ini tidak pernah selesai;. Namun putranya, Henry Babbage , menyelesaikan versi sederhana dari unit komputasi mesin analitis itu (pabrik) pada 1888. Dia memberikan demonstrasi yang sukses dari penggunaannya dalam tabel komputasi pada tahun 1906. Mesin ini diberikan kepada museum di South Kensington Sains pada tahun 1910.

Pada akhir 1880-an, Herman Hollerith menemukan rekaman data pada media mesin yang dapat dibaca. Sebelum menggunakan media mesin yang dapat dibaca, di atas, telah untuk kontrol, bukan data. “Setelah beberapa percobaan awal dengan kertas pita, ia menetap di kartu menekan …”[ 23] Untuk memproses kartu menekan dia menciptakan tabulator, dan mesin keypunch. Ketiga penemuannya dasar dari industri pengolahan informasi modern. Skala besar otomatis pengolahan data kartu punch dilakukan untuk Amerika Serikat 1890 Sensus oleh perusahaan Hollerith, yang kemudian menjadi inti dari IBM. Pada akhir abad ke-19 sejumlah ide dan teknologi, yang nantinya akan berguna dalam realisasi komputer praktis, mulai muncul: Boolean aljabar, tabung vakum (katup termionik), kartu menekan dan tape, dan teleprinter .

Selama paruh pertama abad ke-20, banyak kebutuhan komputasi ilmiah yang dipenuhi oleh komputer analog semakin canggih, yang menggunakan model mekanik atau listrik langsung masalah sebagai dasar untuk perhitungan. Namun, tidak diprogram dan umumnya tidak memiliki fleksibilitas dan keakuratan komputer digital modern.

Alan Turing adalah luas dianggap sebagai bapak ilmu komputer modern. Pada tahun 1936 Turing memberikan formalisasi berpengaruh konsep algoritma dan perhitungan dengan mesin Turing, menyediakan cetak biru untuk komputer digital elektronik. [24] Dari perannya dalam penciptaan komputer modern, majalah Time dalam penamaan Turing salah 100 orang paling berpengaruh dari abad ke-20, menyatakan: “Faktanya tetap bahwa setiap orang yang keran di keyboard, membuka spreadsheet atau program pengolah kata, bekerja pada inkarnasi dari mesin Turing” [24].

Para Zuse Z3, 1941, dianggap kerja pertama diprogram di dunia, mesin komputasi sepenuhnya otomatis.

ENIAC, yang mulai beroperasi pada tahun 1946, dianggap komputer tujuan umum pertama elektronik.

EDSAC adalah salah satu komputer pertama untuk melaksanakan program yang tersimpan (von Neumann) arsitektur.

Die dari mikroprosesor Intel 80486DX2 (ukuran sebenarnya: 12 × 6,75 mm) pada kemasannya.

Atanasoff-Berry Computer (ABC) merupakan salah satu perangkat elektronik pertama biner komputasi digital. Diciptakan pada tahun 1937 oleh Iowa State College profesor fisika John Atanasoff, dan dibangun dengan bantuan dari mahasiswa pascasarjana Clifford Berry, [25] mesin tidak diprogram, yang dirancang hanya untuk memecahkan sistem persamaan linear. Komputer tidak menggunakan komputasi paralel. Sebuah putusan pengadilan 1973 dalam sengketa paten menemukan bahwa paten untuk ENIAC komputer 1946 berasal dari Atanasoff-Berry Computer.

Penemu program komputer yang dikendalikan adalah Konrad Zuse, yang membangun komputer kerja pertama pada 1941 dan kemudian pada tahun 1955 komputer pertama yang berbasis pada penyimpanan magnetik. [26]

George Stibitz diakui secara internasional sebagai seorang ayah dari komputer digital modern. Ketika bekerja di Bell Labs pada bulan November 1937, Stibitz menciptakan dan membangun sebuah kalkulator berbasis relay ia dijuluki “Model K” (untuk “meja dapur”, di mana ia telah berkumpul itu), yang merupakan pertama untuk menggunakan sirkuit biner untuk melakukan operasi aritmatika. Kemudian model menambahkan kecanggihan yang lebih besar termasuk aritmatika kompleks dan programabilitas. [27]

Sebuah suksesi perangkat komputasi terus lebih kuat dan fleksibel dibangun pada tahun 1930 dan 1940-an, secara bertahap menambahkan fitur utama yang terlihat pada komputer modern. Penggunaan digital elektronik (sebagian besar diciptakan oleh Claude Shannon pada 1937) dan programabilitas lebih fleksibel adalah langkah-langkah sangat penting, tetapi mendefinisikan satu titik di sepanjang jalan ini sebagai “komputer elektronik digital pertama” adalah difficult.Shannon 1940 prestasi terkenal termasuk.

Konrad Zuse elektromekanis “Z mesin”. Z3 (1941) adalah mesin kerja pertama menampilkan biner aritmatika, termasuk aritmatika floating point dan ukuran programabilitas. Pada tahun 1998 Z3 terbukti Turing lengkap harus, oleh karena itu menjadi komputer pertama operasional dunia. [28]
Non-programmable Atanasoff-Berry Computer (dimulai pada tahun 1937, selesai pada 1941) yang menggunakan tabung vakum berbasis perhitungan, bilangan biner, dan memori kapasitor regeneratif. Penggunaan memori regeneratif diperbolehkan untuk menjadi jauh lebih kompak daripada rekan-rekan (yang kira-kira ukuran meja besar atau meja kerja), karena hasil antara dapat disimpan dan kemudian dimasukkan kembali ke set yang sama elemen perhitungan.
Komputer Colossus rahasia Inggris (1943), [29] yang telah membatasi programabilitas tetapi menunjukkan bahwa perangkat menggunakan ribuan tabung bisa cukup diandalkan dan elektronik reprogrammable. Itu digunakan untuk memecahkan kode perang Jerman.
Harvard Mark I (1944), komputer skala besar elektromekanis dengan programabilitas terbatas. [30]
Tentara AS Laboratorium Penelitian balistik ENIAC (1946), yang digunakan aritmatika desimal dan kadang-kadang disebut komputer tujuan umum pertama elektronik (sejak Konrad Zuse Z3 tahun 1941 elektromagnet digunakan bukan elektronik). Awalnya, bagaimanapun, ENIAC memiliki arsitektur fleksibel yang pada dasarnya diperlukan rewiring untuk mengubah pemrograman.
Disimpan-program arsitektur
Beberapa pengembang dari ENIAC, yang mengakui flaws, datang dengan desain yang jauh lebih fleksibel dan elegan, yang kemudian dikenal sebagai “arsitektur program yang tersimpan” atau von Neumann arsitektur. Desain ini pertama kali secara resmi dijelaskan oleh John von Neumann dalam Draft kertas Pertama Laporan di EDVAC, didistribusikan pada tahun 1945. Sejumlah proyek untuk mengembangkan komputer berdasarkan arsitektur program yang disimpan dimulai sekitar waktu ini, yang pertama ini diselesaikan di Inggris. Bekerja prototipe pertama yang ditunjukkan adalah Manchester Kecil Mesin Eksperimental (SSEM atau “Bayi”) pada tahun 1948. Delay Elektronik Penyimpanan Otomatis Kalkulator (EDSAC), selesai tahun setelah SSEM di Cambridge University, praktis pertama, non-eksperimental pelaksanaan desain program disimpan dan dimanfaatkan dengan segera untuk pekerjaan penelitian di universitas. Tak lama kemudian, mesin awalnya digambarkan oleh von Neumann kertas-EDVAC-selesai tetapi tidak melihat penuh-waktu digunakan untuk dua tahun tambahan.

Hampir semua komputer modern mengimplementasikan beberapa bentuk dari arsitektur program yang disimpan, sehingga sifat tunggal dengan mana kata “komputer” sekarang didefinisikan. Sedangkan teknologi yang digunakan dalam komputer telah berubah secara dramatis sejak elektronik pertama, tujuan umum komputer dari tahun 1940-an, kebanyakan masih menggunakan arsitektur von Neumann.

Dimulai pada 1950-an, ilmuwan Soviet Sergei Sobolev dan Nikolay Brusentsov melakukan penelitian pada komputer terner, perangkat yang dioperasikan pada sistem tiga dasar penomoran -1, 0 dan 1 daripada sistem penomoran biner konvensional di mana kebanyakan komputer didasarkan. Mereka merancang Setun, komputer terner fungsional, di Moscow State University. Perangkat ini dimasukkan ke dalam produksi terbatas di Uni Soviet, tetapi digantikan oleh arsitektur biner lebih umum.

Semikonduktor dan mikroprosesor
Komputer yang menggunakan tabung vakum sebagai elemen elektronik mereka digunakan di seluruh tahun 1950-an, tetapi oleh 1960-an sebagian besar telah digantikan oleh transistor berbasis mesin, yang lebih kecil, lebih cepat, lebih murah untuk menghasilkan, lebih sedikit daya yang diperlukan, dan lebih handal. Komputer transistorised pertama didemonstrasikan di University of Manchester pada tahun 1953 [31] Pada 1970-an, teknologi sirkuit terpadu dan penciptaan berikutnya mikroprosesor, seperti Intel 4004, ukuran lebih menurun dan biaya dan meningkatkan kecepatan lebih lanjut dan kehandalan komputer. . Pada akhir 1970-an, banyak produk seperti perekam video yang terdapat komputer yang didedikasikan disebut mikrokontroler, dan mereka mulai muncul sebagai pengganti untuk kontrol mekanis di peralatan rumah tangga seperti mesin cuci. Tahun 1980-an menyaksikan komputer rumah dan komputer pribadi sekarang di mana-mana. Dengan evolusi Internet, komputer pribadi menjadi yang biasa seperti televisi dan telepon di rumah tangga [rujukan?].

Smartphone modern adalah komputer sepenuhnya diprogram di kanan mereka sendiri, dan seperti tahun 2009 mungkin menjadi bentuk paling umum dari komputer seperti dalam keberadaan [rujukan?].

Program
Fitur mendefinisikan komputer modern yang membedakan mereka dari semua mesin yang lain adalah bahwa mereka dapat diprogram. Itu adalah untuk mengatakan bahwa beberapa jenis instruksi (program) dapat diberikan ke komputer, dan itu akan membawa memproses mereka. Sementara beberapa komputer mungkin memiliki konsep yang aneh “petunjuk” dan “output” (lihat komputasi kuantum), komputer modern berdasarkan arsitektur von Neumann sering memiliki kode mesin dalam bentuk bahasa pemrograman imperatif.

Dalam istilah praktis, sebuah program komputer mungkin hanya beberapa instruksi atau memperpanjang untuk jutaan instruksi, seperti melakukan program untuk pengolah kata dan browser web misalnya. Sebuah komputer modern khas dapat mengeksekusi milyaran instruksi per detik (gigaflops) dan jarang membuat kesalahan selama bertahun-tahun operasi. Program komputer besar yang terdiri dari beberapa juta instruksi dapat mengambil tim tahun programmer untuk menulis, dan karena kompleksitas tugas hampir pasti mengandung kesalahan.

Stored program arsitektur
Artikel utama: Program Komputer dan pemrograman Komputer

Sebuah kartu yang mengandung tahun 1970 menekan satu baris dari program FORTRAN. Kartu ini berbunyi: “Z (1) = Y + W (1)” dan diberi label “PROJ039″ untuk tujuan identifikasi.

Bagian ini berlaku untuk komputer RAM yang paling umum mesin berbasis.

Dalam kebanyakan kasus, instruksi komputer sederhana: tambahkan satu nomor ke yang lain, memindahkan beberapa data dari satu lokasi ke lokasi lain, mengirim pesan ke beberapa perangkat eksternal, dll instruksi dibaca dari memori komputer dan biasanya dilakukan (dijalankan) dalam urutan mereka diberikan. Namun, ada instruksi khusus biasanya untuk memberitahu komputer untuk melompat ke depan atau mundur ke beberapa tempat lain dalam program ini dan untuk melanjutkan mengeksekusi dari sana. Ini disebut “melompat” instruksi (atau cabang). Selanjutnya, instruksi melompat dapat dilakukan terjadi kondisional sehingga urutan yang berbeda instruksi dapat digunakan tergantung pada hasil dari beberapa perhitungan sebelumnya atau beberapa peristiwa eksternal. Banyak komputer secara langsung mendukung subrutin dengan menyediakan jenis lompatan itu “ingat” lokasi itu melompat dari dan lain instruksi untuk kembali ke instruksi instruksi berikut yang melompat.

Eksekusi program mungkin bisa disamakan dengan membaca buku. Sementara seseorang biasanya akan membaca setiap kata dan baris dalam urutan, mereka mungkin pada waktu melompat kembali ke tempat awal dalam teks atau melewatkan bagian yang tidak menarik. Demikian pula, komputer kadang-kadang dapat kembali dan ulangi petunjuk di beberapa bagian program berulang-ulang sampai beberapa kondisi internal terpenuhi. Ini disebut aliran kontrol dalam program dan itu adalah apa yang memungkinkan komputer untuk melakukan tugas-tugas berulang kali tanpa campur tangan manusia.

Relatif, orang yang menggunakan kalkulator saku dapat melakukan operasi aritmatika dasar seperti menambahkan dua angka dengan hanya menekan tombol saja. Tetapi untuk menambahkan bersama semua nomor dari 1 sampai 1.000 akan mengambil ribuan menekan tombol dan banyak waktu-dengan kepastian dekat membuat kesalahan. Di sisi lain, komputer dapat diprogram untuk melakukan hal ini hanya dengan instruksi sederhana. Sebagai contoh:

      mov # 0, sum; mengatur jumlah ke 0
      mov # 1, num; diatur num ke 1
loop: add num, sum; tambahkan num untuk jumlah
      menambahkan # 1, num; tambahkan 1 untuk num
      cmp num, # 1000; bandingkan num sampai 1000
      ble loop; jika num <= 1000, kembali ke ‘lingkaran’
      menghentikan, akhir program. berhenti runningOnce diperintahkan untuk menjalankan program ini, komputer akan melakukan tugas berulang Selain tanpa intervensi manusia lebih lanjut. Ini akan hampir tidak pernah membuat kesalahan dan PC modern dapat menyelesaikan tugas dalam waktu sekitar sepersejuta detik. [32]

Bugs
Artikel utama: bug perangkat lunak

Bug komputer yang sebenarnya pertama, ngengat ditemukan terperangkap di relay dari Harvard Mark II komputer

Kesalahan dalam program komputer yang disebut “bug”. Bug mungkin jinak dan tidak mempengaruhi kegunaan program, atau hanya memiliki efek halus. Namun dalam beberapa kasus mereka dapat menyebabkan program – atau seluruh sistem – untuk “menggantung”-menjadi tidak responsif terhadap input seperti mouse atau penekanan tombol klik, atau untuk benar-benar gagal atau “kecelakaan”. Bug Jika jinak kadang-kadang dimanfaatkan untuk niat jahat oleh pengguna yang tidak bermoral menulis sebuah “mengeksploitasi”-kode yang dirancang untuk mengambil keuntungan dari bug dan mengganggu pelaksanaan yang tepat komputer. Bug biasanya bukan kesalahan komputer. Karena komputer hanya menjalankan instruksi yang mereka diberikan, bug hampir selalu merupakan hasil dari kesalahan programmer atau pengawasan dibuat dalam desain program. [33]

Laksamana Grace Hopper dikreditkan karena pertama kali menggunakan istilah ‘bug’ dalam komputasi setelah ngengat mati ditemukan korslet relay dari Harvard Mark II komputer pada bulan September 1947. [34]

Kode mesin
Pada kebanyakan komputer, instruksi individu disimpan sebagai kode mesin dengan setiap instruksi yang diberikan nomor unik (kode operasi atau opcode untuk pendek). Perintah untuk menambahkan dua angka bersama akan memiliki satu opcode, perintah untuk melipatgandakan mereka akan memiliki opcode yang berbeda dan sebagainya. Komputer sederhana dapat melakukan salah satu dari segelintir instruksi yang berbeda; komputer yang lebih kompleks memiliki beberapa ratus untuk memilih dari-masing-masing dengan kode numerik yang unik. Karena memori komputer mampu menyimpan nomor, juga dapat menyimpan kode instruksi. Hal ini mengarah pada fakta penting bahwa seluruh program (yang hanya daftar instruksi) dapat direpresentasikan sebagai daftar nomor dan mereka sendiri dapat dimanipulasi di dalam komputer dengan cara yang sama sebagai data numerik. Konsep dasar dari program menyimpan dalam memori komputer bersama data mereka beroperasi pada adalah inti dari von Neumann, atau program yang tersimpan, arsitektur. Dalam beberapa kasus, komputer mungkin menyimpan beberapa atau semua program di memori yang disimpan terpisah dari data beroperasi pada. Ini disebut arsitektur Harvard setelah komputer Harvard Mark I. Modern von Neumann komputer menampilkan beberapa ciri dari arsitektur Harvard dalam desain mereka, seperti dalam cache CPU.

Meskipun dimungkinkan untuk menulis program komputer sebagai daftar panjang nomor (bahasa mesin) dan sementara teknik ini digunakan dengan komputer awal banyak, [35] hal ini sangat membosankan dan berpotensi rawan kesalahan untuk melakukannya dalam praktek, terutama untuk program yang rumit . Sebaliknya, setiap instruksi dasar dapat diberi nama pendek yang menunjukkan fungsi dan mudah diingat-sebuah mnemonic seperti ADD, SUB, MULT atau JUMP. Mnemonik ini secara kolektif dikenal sebagai bahasa perakitan komputer. Program konversi ditulis dalam bahasa assembly menjadi sesuatu yang komputer benar-benar dapat memahami (bahasa mesin) biasanya dilakukan oleh program komputer yang disebut assembler. Mesin perakitan bahasa dan bahasa yang mewakili mereka (secara kolektif disebut tingkat rendah bahasa pemrograman) cenderung unik untuk jenis tertentu dari komputer. Sebagai contoh, arsitektur ARM komputer (seperti dapat ditemukan dalam PDA atau videogame genggam) tidak dapat memahami bahasa mesin Intel Pentium atau AMD Athlon 64 komputer yang mungkin di PC [36].

Bahasa tingkat tinggi dan desain program
Meskipun jauh lebih mudah daripada di bahasa mesin, menulis program yang panjang dalam bahasa assembly sering sulit dan juga rawan kesalahan. Oleh karena itu, program yang paling praktis ditulis dalam lebih abstrak tingkat tinggi bahasa pemrograman yang mampu mengekspresikan kebutuhan programmer lebih nyaman (dan dengan demikian membantu mengurangi kesalahan programmer). Bahasa tingkat tinggi biasanya “dikompilasi” ke dalam bahasa mesin (atau kadang-kadang ke dalam bahasa assembly dan kemudian ke bahasa mesin) yang lain menggunakan program komputer yang disebut kompilator [37]. Bahasa tingkat tinggi yang kurang terkait dengan kerja dari komputer target dari bahasa assembly , dan lebih terkait dengan bahasa dan struktur masalah (s) yang harus diselesaikan oleh program akhir. Oleh karena itu sering mungkin untuk menggunakan compiler yang berbeda untuk menerjemahkan program bahasa tingkat tinggi yang sama ke dalam bahasa mesin dari berbagai jenis komputer. Ini merupakan bagian dari sarana yang perangkat lunak seperti video game dapat dibuat tersedia untuk arsitektur komputer yang berbeda seperti komputer pribadi dan konsol permainan berbagai video.

Tugas mengembangkan sistem perangkat lunak besar menghadirkan tantangan intelektual yang signifikan. Memproduksi perangkat lunak dengan keandalan diterima tinggi dalam jadwal dan anggaran diprediksi secara historis telah sulit, disiplin akademik dan profesional rekayasa perangkat lunak berkonsentrasi secara khusus pada tantangan ini.

Fungsi
Artikel utama: unit pengolahan Tengah dan Mikroprosesor
Sebuah komputer tujuan umum memiliki empat komponen utama: Unit aritmatika logika (ALU), unit kontrol, memori, dan perangkat input dan output (secara kolektif dinamakan I / O). Bagian ini dihubungkan oleh bus, sering dibuat dari kelompok kabel.

Di dalam masing-masing bagian ribuan triliunan sirkuit listrik kecil yang dapat dimatikan atau dengan cara sebuah saklar elektronik. Sirkuit masing-masing mewakili sedikit (digit biner) informasi sehingga ketika sirkuit pada itu merupakan “1”, dan ketika dari itu merupakan “0” (dalam representasi logika positif). Rangkaian disusun dalam gerbang logika sehingga satu atau lebih dari sirkuit dapat mengontrol keadaan satu atau lebih dari sirkuit lainnya.

Unit kontrol, ALU, register, dan dasar I / O (dan sering perangkat keras lainnya terkait erat dengan) secara kolektif dikenal sebagai central processing unit (CPU). CPU terdiri dari awal komponen terpisah tetapi sejak pertengahan 1970-an CPU biasanya telah dibangun di satu sirkuit terpadu yang disebut microprocessor.

Unit kontrol
Artikel utama: CPU dan unit kontrol desain

Diagram menunjukkan bagaimana instruksi arsitektur MIPS tertentu akan diterjemahkan oleh sistem kontrol.

Unit kontrol (sering disebut sistem kontrol atau kontroler pusat) mengelola berbagai komponen komputer, membaca dan menafsirkan (decode) instruksi program, mentransformasikannya menjadi serangkaian sinyal kontrol yang mengaktifkan bagian-bagian lain dari komputer [38] Kontrol. sistem dalam komputer canggih dapat mengubah urutan dari beberapa instruksi sehingga untuk meningkatkan kinerja.

Sebuah komponen kunci umum untuk semua CPU adalah program counter, sel memori khusus (register) yang melacak lokasi yang di memori instruksi berikutnya yang akan dibaca dari [39].

Fungsi sistem kontrol adalah sebagai berikut-perhatikan bahwa ini adalah deskripsi sederhana, dan beberapa langkah-langkah ini dapat dilakukan secara bersamaan atau dalam urutan yang berbeda tergantung pada jenis CPU:

Baca kode untuk instruksi berikutnya dari sel ditunjukkan oleh program counter.
Decode kode numerik untuk instruksi ke dalam satu set perintah atau sinyal untuk setiap sistem lainnya.
Increment program counter sehingga menunjuk ke instruksi berikutnya.
Baca instruksi data apa pun yang memerlukan dari sel-sel dalam memori (atau mungkin dari perangkat input). Lokasi ini data yang dibutuhkan biasanya disimpan dalam kode instruksi.
Menyediakan data yang diperlukan ke ALU atau mendaftar.
Jika instruksi memerlukan ALU atau perangkat keras khusus untuk menyelesaikan, menginstruksikan perangkat keras untuk melakukan operasi yang diminta.
Tuliskan hasil dari ALU kembali ke lokasi memori atau ke sebuah register atau mungkin perangkat output.
Langsung kembali ke langkah (1).
Sejak program counter adalah (konseptual) hanya satu set sel memori, dapat diubah dengan perhitungan dilakukan di ALU. Menambahkan 100 untuk program counter akan menyebabkan instruksi berikutnya untuk dibaca dari tempat yang lebih bawah 100 lokasi program. Instruksi yang memodifikasi program counter yang sering dikenal sebagai “melompat” dan memungkinkan untuk loop (instruksi yang diulang-ulang oleh komputer) dan sering bersyarat eksekusi instruksi (baik contoh aliran kontrol).

Hal ini terlihat bahwa urutan operasi yang unit kontrol pergi melalui proses instruksi itu sendiri seperti sebuah komputer yang singkat program-dan memang, dalam beberapa desain CPU yang lebih kompleks, ada komputer lain belum lebih kecil disebut microsequencer yang berjalan microcode sebuah program yang menyebabkan semua peristiwa ini terjadi.

Aritmetika / logika unit (ALU)
Artikel utama: aritmatika logic unit
ALU mampu melakukan dua kelas operasi:. Aritmatika dan logika [40]

Set operasi aritmatika bahwa ALU tertentu mendukung mungkin terbatas untuk menambahkan dan mengurangkan atau mungkin termasuk mengalikan atau membagi, fungsi trigonometri (sinus, kosinus, dll) dan akar kuadrat. Beberapa hanya dapat beroperasi pada bilangan bulat (integer) sementara yang lain menggunakan floating point untuk mewakili angka-meskipun nyata dengan presisi terbatas. Namun, setiap komputer yang mampu melakukan operasi sederhana hanya dapat diprogram untuk memecah operasi yang lebih kompleks menjadi langkah-langkah sederhana yang dapat melakukan. Oleh karena itu, komputer dapat diprogram untuk melakukan operasi aritmatika-meskipun akan memakan lebih banyak waktu untuk melakukannya jika ALU-nya tidak langsung mendukung operasi. Sebuah ALU juga dapat membandingkan nomor dan kembali nilai kebenaran boolean (true atau false) tergantung pada apakah seseorang sama dengan, lebih besar dari atau kurang dari yang lain (“adalah 64 lebih besar dari 65?”).

Melibatkan operasi logika logika Boolean: AND, OR, XOR dan NOT. Ini dapat berguna baik untuk membuat pernyataan bersyarat yang rumit dan pengolahan logika boolean.

Superscalar komputer dapat berisi beberapa ALUS sehingga mereka dapat memproses beberapa instruksi pada saat yang sama [41]. Grafis prosesor dan komputer dengan SIMD dan fitur MIMD sering memberikan ALUS yang dapat melakukan aritmatika pada vektor dan matriks.

Memori
Artikel utama: Komputer penyimpanan data

Memori inti magnetik adalah memori komputer pilihan sepanjang tahun 1960, sampai digantikan oleh memori semikonduktor.

Sebuah memori komputer dapat dilihat sebagai daftar sel menjadi yang nomor dapat ditempatkan atau dibaca. Setiap sel memiliki “alamat” nomor dan dapat menyimpan satu nomor. Komputer dapat diinstruksikan untuk “menempatkan nomor 123 ke dalam sel nomor 1357″ atau “menambahkan nomor yang ada di sel 1357 ke nomor yang ada di sel 2468 dan dimasukkan ke dalam sel jawabannya 1595″. Informasi yang tersimpan dalam memori dapat mewakili praktis apa pun. Huruf, angka, bahkan instruksi komputer dapat ditempatkan ke dalam memori dengan mudah sama. Karena CPU tidak membedakan antara berbagai jenis informasi, adalah tanggung jawab perangkat lunak untuk memberikan makna apa memori melihat sebagai apa-apa melainkan serangkaian angka.

Di hampir semua komputer modern, setiap sel memori diatur untuk menyimpan nomor biner dalam kelompok delapan bit (disebut byte). Setiap byte dapat mewakili 256 nomor yang berbeda (2 ^ 8 = 256); baik dari 0 sampai 255 atau -128 untuk 127. Untuk menyimpan nomor yang lebih besar, beberapa byte berturut-turut dapat digunakan (biasanya, dua, empat atau delapan). Ketika angka negatif diperlukan, mereka biasanya disimpan dalam notasi melengkapi dua itu. Pengaturan lain yang mungkin, tapi biasanya tidak terlihat di luar aplikasi khusus atau konteks historis. Sebuah komputer dapat menyimpan segala jenis informasi dalam memori jika dapat direpresentasikan secara numerik. Komputer modern memiliki miliaran atau bahkan triliunan byte memori.

CPU berisi satu set khusus dari sel memori yang disebut register yang dapat dibaca dan ditulis untuk jauh lebih cepat dari area memori utama. Ada biasanya antara dua dan seratus register tergantung pada jenis CPU. Register digunakan untuk item data yang paling sering dibutuhkan untuk menghindari harus mengakses memori utama setiap data waktu diperlukan. Sebagai data terus-menerus bekerja, mengurangi kebutuhan untuk mengakses memori utama (yang sering lambat dibandingkan dengan ALU dan unit kontrol) sangat meningkatkan kecepatan komputer.

Memori komputer utama datang dalam dua varietas utama: memori acak-akses memori atau RAM dan hanya-baca atau ROM. RAM dapat dibaca dan ditulis ke kapan saja perintah CPU, tetapi ROM pre-loaded dengan data dan perangkat lunak yang tidak pernah berubah, sehingga CPU hanya dapat membaca dari itu. ROM biasanya digunakan untuk menyimpan awal komputer start-up instruksi. Secara umum, isi RAM akan terhapus ketika daya ke komputer dimatikan, tetapi ROM mempertahankan data tanpa batas. Pada PC, ROM berisi program khusus yang disebut BIOS yang orchestrates loading sistem operasi komputer dari hard disk drive ke dalam RAM setiap kali komputer dihidupkan atau reset. Dalam komputer tertanam, yang sering tidak memiliki disk drive, semua software yang diperlukan dapat disimpan dalam ROM. Perangkat lunak yang tersimpan dalam ROM sering disebut firmware, karena notionally lebih seperti perangkat keras daripada perangkat lunak. Memori Flash mengaburkan perbedaan antara ROM dan RAM, karena mempertahankan data ketika dimatikan tetapi juga ditulis ulang. Hal ini biasanya jauh lebih lambat dibandingkan ROM dan RAM konvensional bagaimanapun, jadi penggunaannya dibatasi untuk aplikasi di mana kecepatan tinggi yang tidak perlu. [42]

Pada komputer yang lebih canggih mungkin ada satu atau lebih kenangan Cache RAM yang lebih lambat dibandingkan register tapi lebih cepat daripada memori utama. Umumnya komputer dengan semacam cache dirancang untuk memindahkan data sering dibutuhkan ke dalam cache secara otomatis, seringkali tanpa perlu untuk setiap intervensi pada bagian programmer.

Input / output (I / O)
Artikel utama: Input / output

Hard disk drive adalah perangkat penyimpanan yang umum digunakan dengan komputer.

I / O adalah sarana yang komputer pertukaran informasi dengan dunia luar [43] Perangkat yang memberikan input atau output ke komputer yang. Disebut peripheral [44] Pada komputer pribadi yang khas., Peripheral meliputi perangkat input seperti keyboard dan mouse, dan output perangkat seperti layar dan printer. Hard disk drive, floppy disk drive dan drive cakram optik berfungsi baik sebagai perangkat input dan output. Jaringan komputer adalah bentuk lain dari I / O.

Seringkali, I / O device yang rumit komputer di kanan mereka sendiri dengan CPU sendiri dan memori. Sebuah unit pengolahan grafis mungkin berisi lima puluh atau lebih komputer kecil yang melakukan perhitungan yang diperlukan untuk menampilkan grafis 3D [rujukan?]. Komputer desktop modern mengandung banyak komputer yang lebih kecil yang membantu CPU utama dalam melakukan I / O.

Multitasking
Artikel utama: Komputer multitasking
Sementara komputer dapat dipandang sebagai menjalankan satu program raksasa yang disimpan dalam memori utama, dalam beberapa sistem perlu untuk memberikan penampilan menjalankan beberapa program secara bersamaan. Hal ini dicapai dengan multitasking yaitu memiliki komputer beralih cepat antara menjalankan program masing-masing pada gilirannya. [45]

Salah satu cara dengan mana ini dilakukan adalah dengan sinyal khusus yang disebut interrupt yang periodik dapat menyebabkan komputer berhenti instruksi mengeksekusi tempat itu dan melakukan sesuatu yang lain sebagai gantinya. Dengan mengingat di mana ia mengeksekusi sebelum mengganggu, komputer dapat kembali ke tugas itu nanti. Jika beberapa program yang berjalan “pada waktu yang sama”, maka generator mengganggu mungkin menyebabkan beberapa ratus interupsi per detik, menyebabkan program berpindah setiap kali. Sejak komputer modern biasanya mengeksekusi beberapa instruksi perintah besarnya lebih cepat dari persepsi manusia, akan terlihat bahwa banyak program yang berjalan pada waktu yang sama meskipun hanya satu yang pernah eksekusi pada suatu instan. Metode multitasking kadang-kadang disebut “time-sharing” karena setiap program dialokasikan “slice” waktu pada gilirannya [46].

Sebelum era komputer murah, penggunaan utama untuk multitasking adalah untuk memungkinkan banyak orang untuk berbagi komputer yang sama.

Tampaknya, multitasking akan menyebabkan komputer yang beralih antara beberapa program untuk berjalan lebih lambat – dalam proporsi langsung dengan jumlah program yang sedang berjalan. Namun, kebanyakan program menghabiskan banyak waktu mereka menunggu input lambat / output perangkat untuk menyelesaikan tugas mereka. Jika sebuah program menunggu user untuk klik pada mouse atau tekan tombol pada keyboard, maka tidak akan mengambil “irisan waktu” sampai peristiwa itu adalah menunggu telah terjadi. Hal ini membebaskan waktu untuk program lain untuk menjalankan banyak program sehingga dapat dijalankan pada waktu yang sama tanpa kehilangan kecepatan tidak dapat diterima.

Multiprocessing
Artikel utama: Multiprocessing

Cray superkomputer didesain banyak yang digunakan multiprocessing berat.

Beberapa komputer dirancang untuk mendistribusikan karya mereka di beberapa CPU dalam konfigurasi multiprocessing, teknik digunakan hanya sekali dalam mesin besar dan kuat seperti superkomputer, komputer mainframe dan server. Multiprosesor dan multi-core (CPU ganda pada satu sirkuit terpadu) komputer pribadi dan laptop sekarang tersedia secara luas, dan sedang semakin digunakan dalam rendah-end pasar sebagai hasilnya.

Superkomputer khususnya sering memiliki arsitektur yang sangat unik yang berbeda secara signifikan dari arsitektur program yang disimpan dasar dan dari komputer tujuan umum [47] Mereka sering menampilkan ribuan CPU, disesuaikan kecepatan tinggi interkoneksi, dan perangkat keras komputasi khusus.. Desain tersebut cenderung hanya berguna untuk tugas-tugas khusus karena skala besar organisasi program yang dibutuhkan untuk berhasil memanfaatkan sebagian besar sumber daya yang tersedia sekaligus. Superkomputer biasanya melihat penggunaan dalam skala besar simulasi, rendering grafis, dan aplikasi kriptografi, serta dengan yang lain yang disebut “memalukan paralel” tugas.

Jaringan dan Internet
Artikel utama: jaringan Komputer dan Internet

Visualisasi dari bagian rute di Internet.

Komputer telah digunakan untuk mengkoordinasikan informasi antara beberapa lokasi sejak tahun 1950. Militer AS sistem SAGE adalah contoh skala besar pertama dari sistem tersebut, yang menyebabkan sejumlah tujuan khusus sistem komersial seperti Sabre [48].

Pada 1970-an, insinyur komputer di lembaga-lembaga penelitian di seluruh Amerika Serikat mulai untuk menghubungkan komputer mereka bersama-sama menggunakan teknologi telekomunikasi. Upaya ini didanai oleh ARPA (sekarang DARPA), dan jaringan komputer yang yang dihasilkan disebut ARPANET [49]. Teknologi yang membuat penyebaran Arpanet mungkin dan berevolusi.

Pada waktunya, jaringan tersebar di luar lembaga akademik dan militer dan menjadi dikenal sebagai Internet. Munculnya jaringan melibatkan redefinisi tentang sifat dan batas-batas komputer. Sistem operasi komputer dan aplikasi yang dimodifikasi untuk menyertakan kemampuan untuk menentukan dan mengakses sumber daya dari komputer lain di jaringan, seperti perangkat periferal, informasi yang tersimpan, dan sejenisnya, sebagai ekstensi dari sumber daya dari komputer pribadi. Awalnya fasilitas ini tersedia terutama untuk orang yang bekerja di lingkungan berteknologi tinggi, namun pada 1990-an penyebaran aplikasi seperti e-mail dan World Wide Web, dikombinasikan dengan pengembangan murah, teknologi jaringan cepat seperti Ethernet dan ADSL melihat jaringan komputer menjadi hampir di mana-mana. Bahkan, jumlah komputer yang jaringan tumbuh fenomenal. Sebuah proporsi yang sangat besar komputer pribadi secara rutin terhubung ke Internet untuk berkomunikasi dan menerima informasi. “Wireless” networking, sering memanfaatkan jaringan telepon seluler, berarti jaringan menjadi semakin di mana-mana bahkan di lingkungan komputasi mobile.

Kesalahpahaman
Sebuah komputer tidak perlu listrik, atau bahkan memiliki prosesor, atau RAM, atau bahkan hard disk. Definisi minimal sebuah komputer adalah segala sesuatu yang mengubah informasi dalam cara yang bermanfaat. [Rujukan?] Namun definisi tradisional dari sebuah komputer adalah perangkat yang memiliki memori, mass storage, prosesor (CPU), dan Input & perangkat output [50]. sesuatu yang kurang akan menjadi prosesor sederhana.

Diperlukan teknologi
Artikel utama: komputasi inkonvensional
Sistem komputasi sebagai fleksibel sebagai komputer pribadi dapat dibangun dari hampir apa saja. Sebagai contoh, sebuah komputer dapat terbuat dari bola bilyar (bola biliar komputer), ini adalah contoh unintuitive dan pedagogis bahwa komputer dapat dibuat dari hampir semua hal. Lebih realistis, komputer modern terbuat dari transistor terbuat dari semikonduktor photolithographed.

Secara historis, komputer berevolusi dari komputer mekanis dan akhirnya dari tabung vakum untuk transistor.

Ada penelitian aktif untuk membuat komputer dari banyak jenis baru yang menjanjikan teknologi, seperti komputer optik, komputer DNA, komputer saraf, dan komputer kuantum. Beberapa dapat dengan mudah mengatasi masalah yang modern, komputer tidak dapat (seperti bagaimana komputer kuantum dapat memecahkan beberapa algoritma enkripsi modern oleh anjak kuantum).

Arsitektur komputer paradigma
Beberapa paradigma yang berbeda tentang bagaimana membangun sebuah komputer dari atas tanah-:

RAM mesin
Ini adalah jenis komputer dengan CPU, memori komputer, dll, yang memahami instruksi dasar dalam bahasa mesin. Konsep berevolusi dari mesin Turing.
Otak
Otak secara besar-besaran prosesor paralel yang terbuat dari neuron, kabel dalam pola rumit, yang berkomunikasi melalui listrik dan bahan kimia neurotransmiter.
Bahasa pemrograman
Seperti kalkulus lambda, atau bahasa pemrograman modern, adalah komputer virtual yang dibangun di atas komputer lain.
Selular otomata
Misalnya, permainan Kehidupan dapat menciptakan “glider” dan “loop” dan konstruksi lain yang mengirimkan informasi; paradigma ini dapat diterapkan untuk komputasi DNA, kimia komputasi, dll
Kelompok dan komite-komite
Yang menghubungkan beberapa komputer (otak) itu sendiri komputer
Gerbang logika abstraksi umum yang dapat berlaku untuk sebagian besar paradigma di atas digital atau analog.

Kemampuan untuk menyimpan dan mengeksekusi daftar instruksi yang disebut program membuat komputer sangat serbaguna, membedakan mereka dari kalkulator. Tesis Gereja-Turing adalah pernyataan matematis dari fleksibilitas ini: komputer manapun dengan kemampuan minimum (yang Turing-lengkap), pada prinsipnya, mampu melakukan tugas yang sama bahwa setiap komputer lain dapat melakukan. Oleh karena itu semua jenis komputer (netbook, superkomputer, otomat seluler, dll) dapat melakukan tugas-tugas komputasi yang sama, diberikan waktu yang cukup dan kapasitas penyimpanan.

Terbatas-fungsi komputer
Sebaliknya, komputer yang terbatas dalam fungsi (yang tidak “Turing-lengkap”) tidak dapat mensimulasikan hal-hal yang sewenang-wenang. Misalnya, sederhana empat-fungsi kalkulator tidak dapat mensimulasikan sebuah komputer nyata tanpa campur tangan manusia. Sebagai contoh yang lebih rumit, tanpa kemampuan untuk program konsol game, ia tidak dapat mencapai apa kalkulator programmable dari tahun 1990-an bisa (diberikan cukup waktu); sistem secara keseluruhan tidak Turing-lengkap, meskipun mengandung Turing -lengkap komponen (mikroprosesor). Organisme hidup (tubuh, bukan otak) juga terbatas-fungsi komputer yang dirancang untuk membuat salinan dari diri mereka sendiri, mereka tidak dapat memprogram tanpa rekayasa genetika.

Virtual komputer
Sebuah “komputer” umumnya dianggap sebagai perangkat fisik. Namun, satu dapat membuat program komputer yang menjelaskan bagaimana cara menjalankan komputer yang berbeda, yaitu “simulasi komputer di komputer”. Tidak hanya ini bukti konstruktif tesis Gereja-Turing, tetapi juga sangat umum di semua komputer modern. Sebagai contoh, beberapa bahasa pemrograman menggunakan sesuatu yang disebut penerjemah, yang merupakan komputer simulasi yang dibangun di atas komputer dasar, hal ini memungkinkan programmer untuk menulis kode (masukan komputer) dalam bahasa yang berbeda dari yang dipahami oleh komputer dasar (alternatif adalah dengan menggunakan compiler). Selain itu, mesin virtual adalah komputer simulasi yang hampir mereplikasi komputer fisik dalam perangkat lunak, dan sangat umum digunakan oleh TI. Mesin virtual juga merupakan teknik yang umum digunakan untuk membuat emulator, emulator konsol game tersebut.

Selanjutnya topik
Istilah komputer
Kecerdasan buatan
Sebuah komputer akan memecahkan masalah dengan cara yang persis mereka diprogram untuk, tanpa memperhatikan efisiensi atau solusi alternatif atau cara pintas mungkin dan tidak kemungkinan kesalahan dalam kode. Program komputer yang belajar dan beradaptasi adalah bagian dari bidang yang muncul dari kecerdasan buatan dan mesin belajar.

Hardware
Istilah perangkat keras meliputi semua bagian-bagian dari komputer yang benda-benda nyata. Sirkuit, menampilkan, pasokan listrik, kabel, keyboard, printer dan tikus semua perangkat keras.

Sejarah perangkat keras komputasi Generasi Pertama (Mechanical / Electromechanical) Kalkulator mekanisme Antikythera, mesin Perbedaan, Norden bombsight
Programmable Devices Jacquard tenun, mesin Analytical, Harvard Mark I, Z3
Generasi Kedua (Tabung Vacuum) Kalkulator Atanasoff-Berry Computer, IBM 604, UNIVAC 60, UNIVAC 120
Programmable Devices Colossus, ENIAC, Manchester Kecil Mesin Eksperimental, EDSAC, Manchester Mark 1, Ferranti Pegasus, Ferranti Merkurius, CSIRAC, EDVAC, UNIVAC I, IBM 701, IBM 702, IBM 650, Z22
Generasi Ketiga (transistor Diskrit dan SSI, MSI, LSI sirkuit Terpadu) Mainframe IBM 7090, IBM 7080, IBM System/360, IKATAN
Komputer mini PDP-8, PDP-11, IBM System/32, IBM System/36
Generasi Keempat (VLSI sirkuit terpadu) komputer mini VAX, IBM System i
4-bit mikro Intel 4004, Intel 4040
8-bit mikro Intel 8008, Intel 8080, Motorola 6800, Motorola 6809, MOS Technology 6502, Zilog Z80
16-bit Intel mikro 8088, Zilog Z8000, WDC 65816/65802
32-bit Intel 80386 mikro, Pentium, Motorola 68000, arsitektur ARM
64-bit mikro [51] Alpha, MIPS, PA-RISC, PowerPC, SPARC, x86-64
Tertanam komputer Intel 8048, Intel 8051
Komputer pribadi Desktop komputer, komputer Rumah, Laptop komputer, Personal Digital Assistant (PDA), komputer portabel, Tablet PC, komputer dpt dipakai
Teoritis / eksperimental Quantum komputer, Kimia komputer, komputasi DNA, komputer optik, spintronics berbasis komputer
Topik Hardware lain perangkat Peripheral (input / output) Mouse Input, Keyboard, Joystick, scanner Gambar, Webcam, Graphics tablet, Mikrofon
Keluaran Monitor, Printer, Loudspeaker,
Kedua Floppy drive disk, Hard disk drive, disk drive optik, teleprinter
Komputer bus rentang pendek RS-232, SCSI, PCI, USB
Panjang rentang (jaringan Komputer) Ethernet, ATM, FDDI

Perangkat Lunak
Artikel utama: Perangkat lunak komputer
Perangkat Lunak mengacu pada bagian-bagian komputer yang tidak memiliki bentuk materi, seperti program, data, protokol, dll Ketika perangkat lunak yang disimpan dalam perangkat keras yang tidak dapat dengan mudah dimodifikasi (seperti ROM BIOS di PC IBM kompatibel), maka kadang-kadang disebut “firmware” untuk menunjukkan bahwa jatuh ke area yang tidak pasti di suatu tempat antara perangkat keras dan perangkat lunak.

Perangkat lunak komputer sistem operasi Unix dan BSD UNIX System V, IBM AIX, HP-UX, Solaris (SunOS), IRIX, Daftar sistem operasi BSD
GNU / Linux Daftar distribusi Linux, Perbandingan distribusi Linux
Microsoft Windows Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7
DOS 86-DOS (QDOS), PC-DOS, MS-DOS, DR-DOS, FreeDOS
Mac OS Mac OS klasik, Mac OS X
Tertanam dan real-time Daftar sistem operasi tertanam
Eksperimental Amoeba, Oberon / lalat, Plan 9 dari Bell Labs
Perpustakaan Multimedia DirectX, OpenGL, OpenAL
Pemrograman C library standar perpustakaan, Standard Template Library
Data Protokol TCP / IP, Kermit, FTP, HTTP, SMTP
Format file HTML, XML, JPEG, MPEG, PNG
Graphical user interface antarmuka pengguna (pengecut) Microsoft Windows, GNOME, KDE, QNX Photon, CDE, GEM, Aqua
Teks antarmuka pengguna berbasis antarmuka baris perintah, teks antarmuka pengguna
Aplikasi Office suite pengolahan Word, Desktop publishing, Program Presentasi, sistem manajemen database, Penjadwalan & manajemen Waktu, Lembar, perangkat lunak Akuntansi
Akses Internet Browser, E-mail client, Web server, Mail transfer agent, Instant messaging
Desain dan manufaktur komputer-aided design, Computer-aided manufaktur, manajemen Tanaman, manufaktur Robot, manajemen rantai suplai
Grafis raster editor grafis, editor grafis vektor, 3D modeler, Animasi editor, komputer grafis 3D, Video editing, pengolahan gambar
Audio editor audio digital, pemutaran Audio, Mencampur, sintesis Audio, musik Komputer
Rekayasa perangkat lunak Compiler, Assembler, Interpreter, Debugger, Text editor, lingkungan pengembangan terintegrasi, analisis kinerja Software, Revisi kontrol, manajemen konfigurasi perangkat lunak
Pendidikan Edutainment, permainan Pendidikan, permainan Serius, simulator Penerbangan
Permainan Strategi, Arcade, Puzzle, Simulasi, Pertama-person shooter, Platform, Massively multiplayer, fiksi Interaktif
Misc Kecerdasan buatan, perangkat lunak antivirus, Malware scanner, Installer / Paket sistem manajemen, Manajer file

Bahasa pemrograman
Artikel utama: bahasa Pemrograman
Bahasa pemrograman menyediakan berbagai cara untuk menentukan program untuk komputer untuk menjalankan. Tidak seperti bahasa alam, bahasa pemrograman yang dirancang untuk mengizinkan ambiguitas dan tidak harus singkat. Mereka adalah murni ditulis bahasa dan sering sulit untuk membaca keras-keras. Mereka umumnya baik diterjemahkan ke dalam kode mesin oleh compiler atau assembler sebelum dijalankan, atau diterjemahkan secara langsung pada waktu dijalankan dengan interpreter. Kadang-kadang program dijalankan oleh suatu metode hybrid dari dua teknik. Ada ribuan bahasa pemrograman yang berbeda-beberapa dimaksudkan untuk tujuan umum, yang lain hanya berguna untuk aplikasi yang sangat khusus.

Bahasa pemrograman Daftar Timeline bahasa pemrograman bahasa pemrograman, bahasa pemrograman Daftar berdasarkan kategori, daftar Generasi bahasa pemrograman, bahasa pemrograman Daftar, Non-Inggris yang berbasis bahasa pemrograman
Umumnya digunakan Majelis bahasa ARM, MIPS, x86
Umumnya digunakan bahasa tingkat tinggi pemrograman Ada, BASIC, C, C + +, C #, COBOL, Fortran, Java, Lisp, Pascal, Object Pascal
Umumnya digunakan Scripting languages ​​Bourne script, JavaScript, Python, Ruby, PHP, Perl

Profesi dan organisasi
Seperti penggunaan komputer telah menyebar ke seluruh masyarakat, ada peningkatan jumlah karier yang melibatkan komputer.

Komputer yang berhubungan dengan profesi terkait Hardware Electrical engineering, rekayasa Elektronik, teknik Komputer, teknik Telekomunikasi, rekayasa optik, Nanoengineering
Software terkait ilmu Komputer, Desktop publishing, Manusia-komputer interaksi, teknologi informasi, sistem informasi, ilmu pengetahuan Komputasi, Software engineering, industri video game, desain web

Kebutuhan komputer untuk bekerja sama dengan baik dan untuk dapat bertukar informasi telah melahirkan kebutuhan bagi banyak standar organisasi, klub dan masyarakat dari kedua sifat formal dan informal.

Organisasi Standar kelompok ANSI, IEC, IEEE, IETF, ISO, W3C
Masyarakat Profesional ACM, AIS, IET, IFIP, BCS
Free / Open kelompok peranti lunak sumber Free Software Foundation, Mozilla Foundation, Apache Software Foundation

 
 

The End @ Copyright Dr iwan suwandy 2011.

About iwansuwandy

I am a retired Medical doctor
This entry was posted in Computer Historic Collections. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s