A report on Computer program

Lovelace's description from Note G.
350px
Zuse Z3 replica on display at Deutsches Museum in Munich
Glenn A. Beck is changing a tube in ENIAC.
Switches for manual input on a Data General Nova 3, manufactured in the mid-1970s
A VLSI integrated-circuit die.
IBM's System/360 (1964) CPU wasn't a microprocessor.
Artist's depiction of Sacramento State University's Intel 8008 microcomputer (1972).
The original IBM Personal Computer (1981) used an Intel 8088 microprocessor.
The DEC VT100 (1978) was a widely used computer terminal.
Prior to programming languages, Betty Jennings and Fran Bilas programmed the ENIAC by moving cables and setting switches.
"Hello, World!" computer program by Brian Kernighan (1978)
A computer program written in an imperative language
A diagram showing that the user interacts with the application software. The application software interacts with the operating system, which interacts with the hardware.
A kernel connects the application software to the hardware of a computer.
Physical memory is scattered around RAM and the hard disk. Virtual memory is one continuous block.
NOT gate.
NAND gate.
NOR gate.
AND gate.
OR gate.
A symbolic representation of an ALU.
400x400px
Computer memory map

Sequence or set of instructions in a programming language for a computer to execute.

- Computer program
Lovelace's description from Note G.

56 related topics with Alpha

Overall

The source code for a simple computer program written in the C programming language. The gray lines are comments that help explain the program to humans in a natural language. When compiled and run, it will give the output "Hello, world!".

Programming language

14 links

The source code for a simple computer program written in the C programming language. The gray lines are comments that help explain the program to humans in a natural language. When compiled and run, it will give the output "Hello, world!".
A selection of programming language textbooks; only a few of the thousands available.
Parse tree of Python code with inset tokenization
Syntax highlighting is often used to aid programmers in recognizing elements of source code. The language above is Python.

A programming language is any set of rules that converts strings, or graphical program elements in the case of visual programming languages, to various kinds of machine code output.

A human computer, with microscope and calculator, 1952

Computer

13 links

Digital electronic machine that can be programmed to carry out sequences of arithmetic or logical operations automatically.

Digital electronic machine that can be programmed to carry out sequences of arithmetic or logical operations automatically.

A human computer, with microscope and calculator, 1952
The Ishango bone, a bone tool dating back to prehistoric Africa.
The Chinese suanpan (算盘). The number represented on this abacus is 6,302,715,408.
The Antikythera mechanism, dating back to ancient Greece circa 150–100 BC, is an early analog computing device.
A slide rule.
A portion of Babbage's Difference engine.
Sir William Thomson's third tide-predicting machine design, 1879–81
Replica of Konrad Zuse's Z3, the first fully automatic, digital (electromechanical) computer.
Colossus, the first electronic digital programmable computing device, was used to break German ciphers during World War II. It is seen here in use at Bletchley Park in 1943.
ENIAC was the first electronic, Turing-complete device, and performed ballistics trajectory calculations for the United States Army.
A section of the Manchester Baby, the first electronic stored-program computer
Bipolar junction transistor (BJT)
MOSFET (MOS transistor), showing gate (G), body (B), source (S) and drain (D) terminals. The gate is separated from the body by an insulating layer (pink).
Diagram showing how a particular MIPS architecture instruction would be decoded by the control system
Magnetic-core memory (using magnetic cores) was the computer memory of choice in the 1960s, until it was replaced by semiconductor memory (using MOS memory cells).
Hard disk drives are common storage devices used with computers.
Cray designed many supercomputers that used multiprocessing heavily.
Replica of the Manchester Baby, the world's first electronic stored-program computer, at the Museum of Science and Industry in Manchester, England
A 1970s punched card containing one line from a Fortran program. The card reads: "Z(1) = Y + W(1)" and is labeled "PROJ039" for identification purposes.
The actual first computer bug, a moth found trapped on a relay of the Harvard Mark II computer
Visualization of a portion of the routes on the Internet

Modern computers can perform generic sets of operations known as programs.

OS/360 was used on most IBM mainframe computers beginning in 1966, including computers used by the Apollo program.

Operating system

10 links

OS/360 was used on most IBM mainframe computers beginning in 1966, including computers used by the Apollo program.
PC DOS was an early personal computer OS that featured a command-line interface.
Mac OS by Apple Computer became the first widespread OS to feature a graphical user interface. Many of its features such as windows and icons would later become commonplace in GUIs.
The first server for the World Wide Web ran on NeXTSTEP, based on BSD.
Ubuntu, desktop Linux distribution
Linux, a unix-like operating system was first time released on September 17, 1991, by Linus Torvalds. Picture of Tux the penguin, mascot of Linux.
A kernel connects the application software to the hardware of a computer.
Privilege rings for the x86 microprocessor architecture available in protected mode. Operating systems determine which processes run in each mode.
Many operating systems can "trick" programs into using memory scattered around the hard disk and RAM as if it is one continuous chunk of memory, called virtual memory.
File systems allow users and programs to organize and sort files on a computer, often through the use of directories (or "folders").
A screenshot of the Bash command line. Each command is typed out after the 'prompt', and then its output appears below, working its way down the screen. The current command prompt is at the bottom.
A screenshot of the KDE Plasma 5 graphical user interface. Programs take the form of images on the screen, and the files, folders (directories), and applications take the form of icons and symbols. A mouse is used to navigate the computer.

An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.

A diagram of the operation of a typical multi-language, multi-target compiler

Compiler

7 links

A diagram of the operation of a typical multi-language, multi-target compiler
Compiler design
Lexer and parser example for C. Starting from the sequence of characters " ", the scanner composes a sequence of tokens, and categorizes each of them, for example as,, , or . The latter sequence is transformed by the parser into a syntax tree, which is then treated by the remaining compiler phases. The scanner and parser handles the regular and properly context-free parts of the grammar for C, respectively.

In computing, a compiler is a computer program that translates computer code written in one programming language (the source language) into another language (the target language).

Ada Lovelace, whose notes added to the end of Luigi Menabrea's paper included the first algorithm designed for processing by an Analytical Engine. She is often recognized as history's first computer programmer.

Computer programming

7 links

Ada Lovelace, whose notes added to the end of Luigi Menabrea's paper included the first algorithm designed for processing by an Analytical Engine. She is often recognized as history's first computer programmer.
Data and instructions were once stored on external punched cards, which were kept in order and arranged in program decks.
Wired control panel for an IBM 402 Accounting Machine.
The first known actual bug causing a problem in a computer was a moth, trapped inside a Harvard mainframe, recorded in a log book entry dated September 9, 1947. "Bug" was already a common term for a software defect when this bug was found.

Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program.

EDVAC, one of the first stored-program computers

Central processing unit

9 links

EDVAC, one of the first stored-program computers
IBM PowerPC 604e processor
Fujitsu board with SPARC64 VIIIfx processors
CPU, core memory and external bus interface of a DEC PDP-8/I, made of medium-scale integrated circuits
Inside of laptop, with CPU removed from socket
Block diagram of a basic uniprocessor-CPU computer. Black lines indicate data flow, whereas red lines indicate control flow; arrows indicate flow directions.
Symbolic representation of an ALU and its input and output signals
A six-bit word containing the binary encoded representation of decimal value 40. Most modern CPUs employ word sizes that are a power of two, for example 8, 16, 32 or 64 bits.
Model of a subscalar CPU, in which it takes fifteen clock cycles to complete three instructions
Basic five-stage pipeline. In the best case scenario, this pipeline can sustain a completion rate of one instruction per clock cycle.
A simple superscalar pipeline. By fetching and dispatching two instructions at a time, a maximum of two instructions per clock cycle can be completed.

A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program.

A diagram showing how the user interacts with application software on a typical desktop computer. The application software layer interfaces with the operating system, which in turn communicates with the hardware. The arrows indicate information flow.

Software

6 links

A diagram showing how the user interacts with application software on a typical desktop computer. The application software layer interfaces with the operating system, which in turn communicates with the hardware. The arrows indicate information flow.
Blender, a free software program

Software is a set of computer programs and associated documentation and data.

This is a simple diagram illustrating the individual stages of the fetch-decode-execute cycle.

Execution (computing)

6 links

This is a simple diagram illustrating the individual stages of the fetch-decode-execute cycle.

Execution in computer and software engineering is the process by which a computer or virtual machine reads and acts on the instructions of a computer program.

Machine language monitor in a W65C816S single-board computer, displaying code disassembly, as well as processor register and memory dumps.

Machine code

8 links

Any low-level programming language, consisting of machine language instructions, which are used to control a computer's central processing unit .

Any low-level programming language, consisting of machine language instructions, which are used to control a computer's central processing unit .

Machine language monitor in a W65C816S single-board computer, displaying code disassembly, as well as processor register and memory dumps.

A computer program is a list of instructions that can be executed by a central processing unit (CPU).

W3sDesign Interpreter Design Pattern UML

Interpreter (computing)

6 links

W3sDesign Interpreter Design Pattern UML
An illustration of the linking process. Object files and static libraries are assembled into a new library or executable

In computer science, an interpreter is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program.