The various devices that comprise a computer system are referred to as hardware.
The computer programs that run on a computer are referred to as software.
A computer is capable of performing computations and making logical decisions at speeds millions (even billions) of times faster than human beings can.
Computers process data under the control of sets of instructions called computer programs, which guide the computer through orderly sets of actions specified by computer programmers.
The input unit is the "receiving" section of the computer. It obtains information from input devices and places it at the disposal of the other units for processing.
The output unit is the "shipping" section of the computer. It takes information processed by the computer and places it on output devices to make it available for use outside the computer.
The memory unit is the rapid-access, relatively low-capacity "warehouse" section of the computer. It retains information that has been entered through the input unit, making it immediately available for processing when needed, and retains information that has already been processed until it can be placed on output devices by the output unit.
The arithmetic and logic unit (ALU) is the "manufacturing" section of the computer. It is responsible for performing calculations and making decisions.
The central processing unit (CPU) is the "administrative" section of the computer. It coordinates and supervises the operation of the other sections.
The secondary storage unit is the long-term, high-capacity "warehousing" section of the computer. Programs or data not being used by the other units are normally placed on secondary storage devices (e.g., disks) until they are needed, possibly hours, days, months or even years later.
Operating systems were developed to help make it more convenient to use computers.
Multiprogramming involves the sharing of a computer's resources among the jobs competing for its attention, so that the jobs appear to run simultaneously.
With distributed computing, an organization's computing is distributed over networks to the sites where the work of the organization is performed.
Any computer can directly understand only its own machine language, which generally consist of strings of numbers that instruct computers to perform their most elementary operations.
English-like abbreviations form the basis of assembly languages. Translator programs called assemblers convert assembly-language programs to machine language.
Compilers translate high-level language programs into machine-language programs. High-level languages (like C++) contain English words and conventional mathematical notations.
Interpreter programs directly execute high-level language programs, eliminating the need to compile them into machine language.
C++ evolved from C, which evolved from two previous programming languages, BCPL and B.
C++ is an extension of C developed by Bjarne Stroustrup in the early 1980s at Bell Laboratories. C++ enhances the C language and provides capabilities for object-oriented programming.
Objects are reusable software components that model items in the real world. Using a modular, object-oriented design and implementation approach can make software development groups more productive than with previous programming techniques.
C++ programs consist of pieces called classes and functions. You can program each piece you may need to form a C++ program. However, most C++ programmers take advantage of the rich collections of existing classes and functions in the C++ Standard Library.
Java is used to create dynamic and interactive content for Web pages, develop enterprise applications, enhance Web server functionality, provide applications for consumer devices and more.
FORTRAN (FORmula TRANslator) was developed by IBM Corporation in the mid-1950s for scientific and engineering applications that require complex mathematical computations.
COBOL (COmmon Business Oriented Language) was developed in the late 1950s by a group of computer manufacturers and government and industrial computer users. COBOL is used primarily for commercial applications that require precise and efficient data manipulation.
Ada was developed under the sponsorship of the United States Department of Defense (DOD) during the 1970s and early 1980s. Ada provides multitasking, which allows programmers to specify that many activities are to occur in parallel.
The BASIC (Beginner's All-Purpose Symbolic Instruction Code) programming language was developed in the mid-1960s at Dartmouth College as a language for writing simple programs. BASIC's primary purpose was to familiarize novices with programming techniques.
Microsoft's Visual Basic was introduced in the early 1990s to simplify the process of developing Microsoft Windows applications.
Microsoft has a corporate-wide strategy for integrating the Internet and the Web into computer applications. This strategy is implemented in Microsoft's .NET platform.
The .NET platform's three primary programming languages are Visual Basic .NET (based on the original BASIC), Visual C++ .NET (based on C++) and C# (a new language based on C++ and Java that was developed expressly for the .NET platform).
.NET developers can write software components in their preferred language, then form applications by combining those components with components written in any .NET language.
C++ systems generally consist of three parts: a program development environment, the language and the C++ Standard Library.
C++ programs typically go through six phases: edit, preprocess, compile, link, load and execute.
C++ source code file names often end with the .cpp, .cxx, .cc or .C extensions.
A preprocessor program executes automatically before the compiler's translation phase begins. The C++ preprocessor obeys commands called preprocessor directives, which indicate that certain manipulations are to be performed on the program before compilation.
The object code produced by the C++ compiler typically contains "holes" due to references to functions and data defined elsewhere. A linker links the object code with the code for the missing functions to produce an executable image (with no missing pieces).
The loader takes the executable image from disk and transfers it to memory for execution.
Most programs in C++ input and/or output data. Data is often input from cin (the standard input stream) which is normally the keyboard, but cin can be redirected from another device. Data is often output to cout (the standard output stream), which is normally the computer screen, but cout can be redirected to another device. The cerr stream is used to display error messages.
The Unified Modeling Language (UML) is a graphical language that allows people who build systems to represent their object-oriented designs in a common notation.
Object-oriented design (OOD) models software components in terms of real-world objects. It takes advantage of class relationships, where objects of a certain class have the same characteristics. It also takes advantage of inheritance relationships, where newly created classes of objects are derived by absorbing characteristics of existing classes and adding unique characteristics of their own. OOD encapsulates data (attributes) and functions (behavior) into objectsthe data and functions of an object are intimately tied together.
Objects have the property of information hidingobjects normally are not allowed to know how other objects are implemented.
Object-oriented programming (OOP) allows programmers to implement object-oriented designs as working systems.
C++ programmers create their own user-defined types called classes. Each class contains data (known as data members) and the set of functions (known as member functions) that manipulate that data and provide services to clients.
Classes can have relationships with other classes. These relationships are called associations.
Packaging software as classes makes it possible for future software systems to reuse the classes. Groups of related classes are often packaged as reusable components.
An instance of a class is called an object.
With object technology, programmers can build much of the software they will need by combining standardized, interchangeable parts called classes.
The process of analyzing and designing a system from an object-oriented point of view is called object-oriented analysis and design (OOAD).