Name | First operational | Numeral system | Computing mechanism | Programming | Turing complete |
---|---|---|---|---|---|
Zuse Z3 (Germany) | May 1941 | Binary | Electro-mechanical | Program-controlled by punched film stock | Yes (1998) |
Atanasoff–Berry Computer (US) | mid-1941 | Binary | Electronic | Not programmable—single purpose | No |
Colossus (UK) | January 1944 | Binary | Electronic | Program-controlled by patch cables and switches | No |
Harvard Mark I – IBM ASCC (US) | 1944 | Decimal | Electro-mechanical | Program-controlled by 24-channel punched paper tape (but no conditional branch) | No |
ENIAC (US) | November 1945 | Decimal | Electronic | Program-controlled by patch cables and switches | Yes |
Manchester Small-Scale Experimental Machine (UK) | June 1948 | Binary | Electronic | Stored-program in Williams cathode ray tube memory | Yes |
Modified ENIAC (US) | September 1948 | Decimal | Electronic | Program-controlled by patch cables and switches plus a primitive read-only stored programming mechanism using the Function Tables as program ROM | Yes |
EDSAC (UK) | May 1949 | Binary | Electronic | Stored-program in mercury delay line memory | Yes |
Manchester Mark I (UK) | October 1949 | Binary | Electronic | Stored-program in Williams cathode ray tube memory and magnetic drum memory | Yes |
CSIRAC (Australia) | November 1949 | Binary | Electronic | Stored-program in mercury delay line memory | Yes |
Peripheral device (Input/output) | Input | Mouse, Keyboard, Joystick, Image scanner |
Output | Monitor, Printer | |
Both | Floppy disk drive, Hard disk, Optical disc drive, Teleprinter | |
Computer busses | Short range | RS-232, SCSI, PCI, USB |
Long range (Computer networking) | Ethernet, ATM, FDDI |
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.
Programming languages
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 language 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.
Lists of programming languages | Timeline of programming languages, Categorical list of programming languages, Generational list of programming languages, Alphabetical list of programming languages, Non-English-based programming languages |
Commonly used Assembly languages | ARM, MIPS, x86 |
Commonly used High level languages | BASIC, C, C++, C#, COBOL, Fortran, Java, Lisp, 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. Following the theme of hardware, software and firmware, the brains of people who work in the industry are sometimes known irreverently as wetware or "meatware".
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.