VIDEO CARD
A video card, also referred to as a graphics accelerator card, display adapter, graphics card, and numerous other terms, is an item of personal computer hardware whose function is to generate and output images to a display.
COMMOMLY CHIPSET USED FOR PENTIUM / CORE 2 DOU
In computing, the term chipset is commonly used to refer to a set of specialized chips on a computer's motherboard or an expansion card. In personal computers based on Intel Pentium-class microprocessors, the term often refers to a specific pair of chips on the motherboard: the northbridge and the southbridge. The northbridge links the CPU to very high-speed devices, especially main memory and graphics controllers, and the southbridge connects to lower-speed peripheral buses (such as PCI or ISA). In many modern chipsets, the southbridge actually contains some on-chip integrated peripherals, such as Ethernet, USB, and audio devices. A chipset is usually designed to work with a specific family of microprocessors. Because it controls communications between the processor and external devices, the chipset plays a crucial role in determining system performance.The manufacturer of a chipset often is independent from the manufacturer of the motherboard. Current manufacturers of chipsets for PC-compatible motherboards include NVIDIA, AMD, VIA Technologies, SiS, Intel and Broadcom. Apple computers and Unix workstations from Sun, NeXT, SGI, and others have traditionally used custom-designed chipsets; now that Sun and Apple have adopted x86 processors, develop custom chipsets for their products.In the 1980s, Chips and Technologies, founded by Dado Banatao (who later founded S3 Graphics), pioneered the manufacturing of chipsets for PC-compatible computers.
MODIFICATION OF THE FUNCTION OF A CHIP
The invention relates to an electronic component comprising a multi-chip housing a first chip which supplies a predetermined function and is housed in the multi-chip housing and a second chip which is housed in the multi-chip housing and interacts with the first chip and external connections of the multi-chip housing.ChipsetIntel The second supplies a modification to the predetermined function supplied by the first chip to the external connections of the multi-chip housing in such a way that only the modified function is available at the external connections. The first chip can be a high-volume chip, whereas the modified function can be that of a special component, whose production quantity does not justify a com
Mainstream Desktop Chipsets
Intel® G35 Express ChipsetIntel® Q35 and Q33 Express ChipsetsIntel® P35 Express ChipsetIntel® P31 Express ChipsetIntel® G33 Express ChipsetIntel® G31 Express ChipsetIntel® Q965 Express ChipsetIntel® Q963 Express ChipsetIntel® G965 Express ChipsetIntel® P965 Express ChipsetIntel® 946PL Express ChipsetIntel® 946GZ Express ChipsetIntel® 945G Express ChipsetIntel® 945P Express ChipsetIntel® 945PL Express ChipsetIntel® 945GT Express ChipsetIntel® 945GC Express ChipsetIntel® 945GZ Express ChipsetIntel® 915G Express ChipsetIntel® 915GV Express ChipsetIntel® 915GL Express ChipsetIntel® 915PL Express ChipsetIntel® 915P Express ChipsetIntel® 875P ChipsetIntel® 865G ChipsetIntel® 865GV ChipsetIntel® 865P ChipsetIntel® 865PE Chipset
Monday, September 17, 2007
Monday, August 20, 2007
the types of network topology
BUS TOPOLOGY NETWORK-(not to be confused with the system bus of a computer) use a common backbone to connect all devices. A single cable, the backbone functions as a shared communication medium that devices attach or tap into with an interface connector. A device wanting to communicate with another device on the network sends a broadcast message onto the wire that all other devices see, but only the intended recipient actually accepts and processes the message.
Ethernet bus topologies are relatively easy to install and don't require much cabling compared to the alternatives. 10Base-2 ("ThinNet") and 10Base-5 ("ThickNet") both were popular Ethernet cabling options many years ago for bus topologies. However, bus networks work best with a limited number of devices. If more than a few dozen computers are added to a network bus, performance problems will likely result. In addition, if the backbone cable fails, the entire network effectively becomes unusable.
Illustration -
RING TOPOLOGY- In a ring network, every device has exactly two neighbors for communication purposes. All messages travel through a ring in the same direction (either "clockwise" or "counterclockwise"). A failure in any cable or device breaks the loop and can take down the entire network.
To implement a ring network, one typically uses FDDI, SONET, or Token Ring technology. Ring topologies are found in some office buildings or school campuses.
STAR TOPOLOGY-Many home networks use the star topology. A star network features a central connection point called a "hub" that may be a hub, switch or router. Devices typically connect to the hub with Unshielded Twisted Pair (UTP) Ethernet.
Compared to the bus topology, a star network generally requires more cable, but a failure in any star network cable will only take down one computer's network access and not the entire LAN. (If the hub fails, however, the entire network also fails.)
TREE TOPOLOGY- Tree topologies integrate multiple star topologies together onto a bus. In its simplest form, only hub devices connect directly to the tree bus, and each hub functions as the "root" of a tree of devices. This bus/star hybrid approach supports future expandability of the network much better than a bus (limited in the number of devices due to the broadcast traffic it generates) or a star (limited by the number of hub connection points) alone.
MESH TOPOLOGY-Mesh topologies involve the concept of routes. Unlike each of the previous topologies, messages sent on a mesh network can take any of several possible paths from source to destination. (Recall that even in a ring, although two cable paths exist, messages can only travel in one direction.) Some WANs, most notably the Internet, employ mesh routing.
A mesh network in which every device connects to every other is called a full mesh. As shown in the illustration below, partial mesh networks also exist in which some devices connect only indirectly to others.
THE DESCRIPTION OFNETWORK TOPOLOGY
network topology: The specific physical, i.e., real, or logical, i.e., virtual, arrangement of the elements of a network. Note 1: Two networks have the same topology if the connection configuration is the same, although the networks may differ in physical interconnections, distances between nodes, transmission rates, and/or signal types. Note 2: The common types of network topology are illustrated [refer to the figure on this page] and defined in alphabetical order below:
bus topology: A network topology in which all nodes, i.e., stations, are connected together by a single bus.
fully connected topology: A network topology in which there is a direct path (branch) between any two nodes. Note: In a fully connected network with n nodes, there are n(n-1)/2 direct paths, i.e., branches. Synonym fully connected mesh network.
hybrid topology: A combination of any two or more network topologies. Note 1: Instances can occur where two basic network topologies, when connected together, can still retain the basic network character, and therefore not be a hybrid network. For example, a tree network connected to a tree network is still a tree network. Therefore, a hybrid network accrues only when two basic networks are connected and the resulting network topology fails to meet one of the basic topology definitions. For example, two star networks connected together exhibit hybrid network topologies. Note 2: A hybrid topology always accrues when two different basic network topologies are connected.
linear topology: See bus topology.
mesh topology: A network topology in which there are at least two nodes with two or more paths between them.
ring topology: A network topology in which every node has exactly two branches connected to it.
star topology: A network topology in which peripheral nodes are connected to a central node, which rebroadcasts all transmissions received from any peripheral node to all peripheral nodes on the network, including the originating node. Note 1: All peripheral nodes may thus communicate with all others by transmitting to, and receiving from, the central node only. Note 2: The failure of a transmission line, i.e., channel, linking any peripheral node to the central node will result in the isolation of that peripheral node from all others. Note 3: If the star central node is passive, the originating node must be able to tolerate the reception of an echo of its own transmission, delayed by the two-way transmission time, i.e., to and from the central node, plus any delay generated in the central node. An active star network has an active central node that usually has the means to prevent echo-related problems.
tree topology: A network topology that, from a purely topologic viewpoint, resembles an interconnection of star networks in that individual peripheral nodes are required to transmit to and receive from one other node only, toward a central node, and are not required to act as repeaters or regenerators. Note 1: The function of the central node may be distributed. Note 2: As in the conventional star network, individual nodes may thus still be isolated from the network by a single-point failure of a transmission path to the node. Note 3: A single-point failure of a transmission path within a distributed node will result in partitioning two or more stations from the rest of the network.
SUMMART TOPOLOGIES- remain an important part of network design theory. You can probably build a home or small business network without understanding the difference between a bus design and a star design, but understanding the concepts behind these gives you a deeper understanding of important elements like hubs, broadcasts, and routes.
Ethernet bus topologies are relatively easy to install and don't require much cabling compared to the alternatives. 10Base-2 ("ThinNet") and 10Base-5 ("ThickNet") both were popular Ethernet cabling options many years ago for bus topologies. However, bus networks work best with a limited number of devices. If more than a few dozen computers are added to a network bus, performance problems will likely result. In addition, if the backbone cable fails, the entire network effectively becomes unusable.
Illustration -
RING TOPOLOGY- In a ring network, every device has exactly two neighbors for communication purposes. All messages travel through a ring in the same direction (either "clockwise" or "counterclockwise"). A failure in any cable or device breaks the loop and can take down the entire network.
To implement a ring network, one typically uses FDDI, SONET, or Token Ring technology. Ring topologies are found in some office buildings or school campuses.
STAR TOPOLOGY-Many home networks use the star topology. A star network features a central connection point called a "hub" that may be a hub, switch or router. Devices typically connect to the hub with Unshielded Twisted Pair (UTP) Ethernet.
Compared to the bus topology, a star network generally requires more cable, but a failure in any star network cable will only take down one computer's network access and not the entire LAN. (If the hub fails, however, the entire network also fails.)
TREE TOPOLOGY- Tree topologies integrate multiple star topologies together onto a bus. In its simplest form, only hub devices connect directly to the tree bus, and each hub functions as the "root" of a tree of devices. This bus/star hybrid approach supports future expandability of the network much better than a bus (limited in the number of devices due to the broadcast traffic it generates) or a star (limited by the number of hub connection points) alone.
MESH TOPOLOGY-Mesh topologies involve the concept of routes. Unlike each of the previous topologies, messages sent on a mesh network can take any of several possible paths from source to destination. (Recall that even in a ring, although two cable paths exist, messages can only travel in one direction.) Some WANs, most notably the Internet, employ mesh routing.
A mesh network in which every device connects to every other is called a full mesh. As shown in the illustration below, partial mesh networks also exist in which some devices connect only indirectly to others.
THE DESCRIPTION OFNETWORK TOPOLOGY
network topology: The specific physical, i.e., real, or logical, i.e., virtual, arrangement of the elements of a network. Note 1: Two networks have the same topology if the connection configuration is the same, although the networks may differ in physical interconnections, distances between nodes, transmission rates, and/or signal types. Note 2: The common types of network topology are illustrated [refer to the figure on this page] and defined in alphabetical order below:
bus topology: A network topology in which all nodes, i.e., stations, are connected together by a single bus.
fully connected topology: A network topology in which there is a direct path (branch) between any two nodes. Note: In a fully connected network with n nodes, there are n(n-1)/2 direct paths, i.e., branches. Synonym fully connected mesh network.
hybrid topology: A combination of any two or more network topologies. Note 1: Instances can occur where two basic network topologies, when connected together, can still retain the basic network character, and therefore not be a hybrid network. For example, a tree network connected to a tree network is still a tree network. Therefore, a hybrid network accrues only when two basic networks are connected and the resulting network topology fails to meet one of the basic topology definitions. For example, two star networks connected together exhibit hybrid network topologies. Note 2: A hybrid topology always accrues when two different basic network topologies are connected.
linear topology: See bus topology.
mesh topology: A network topology in which there are at least two nodes with two or more paths between them.
ring topology: A network topology in which every node has exactly two branches connected to it.
star topology: A network topology in which peripheral nodes are connected to a central node, which rebroadcasts all transmissions received from any peripheral node to all peripheral nodes on the network, including the originating node. Note 1: All peripheral nodes may thus communicate with all others by transmitting to, and receiving from, the central node only. Note 2: The failure of a transmission line, i.e., channel, linking any peripheral node to the central node will result in the isolation of that peripheral node from all others. Note 3: If the star central node is passive, the originating node must be able to tolerate the reception of an echo of its own transmission, delayed by the two-way transmission time, i.e., to and from the central node, plus any delay generated in the central node. An active star network has an active central node that usually has the means to prevent echo-related problems.
tree topology: A network topology that, from a purely topologic viewpoint, resembles an interconnection of star networks in that individual peripheral nodes are required to transmit to and receive from one other node only, toward a central node, and are not required to act as repeaters or regenerators. Note 1: The function of the central node may be distributed. Note 2: As in the conventional star network, individual nodes may thus still be isolated from the network by a single-point failure of a transmission path to the node. Note 3: A single-point failure of a transmission path within a distributed node will result in partitioning two or more stations from the rest of the network.
SUMMART TOPOLOGIES- remain an important part of network design theory. You can probably build a home or small business network without understanding the difference between a bus design and a star design, but understanding the concepts behind these gives you a deeper understanding of important elements like hubs, broadcasts, and routes.
Friday, July 20, 2007
c++ output
++
From Wikipedia, the free encyclopedia
Jump to: navigation, search
C++
Paradigm:
multi-paradigm
Appeared in:
1985
Designed by:
Bjarne Stroustrup
Typing discipline:
Static, unsafe, nominative
Major implementations:
GNU Compiler Collection, Microsoft Visual C++, Borland C++ Builder
Dialects:
ANSI C++ 1998, ANSI C++ 2003
Influenced by:
C, Simula, Ada 83, ALGOL 68, CLU, ML
Influenced:
Ada 95, C#, Java, PHP, D, Aikido
C++ (pronounced "see plus plus", IPA: /siː plʌs plʌs/) is a general-purpose, programming language with high-level and low-level capabilities.[1] It is a statically typed, free-form, multi-paradigm, usually compiled language supporting procedural programming, data abstraction, object-oriented programming, and generic programming. Since the 1990s, C++ has been one of the most popular commercial programming languages.[citation needed]
C++ is regarded as a mid-level language. This indicates that C++ is comprised of a combination of both high-level and low-level language features.
Bjarne Stroustrup developed C++ (originally named "C with Classes") in 1983 at Bell Labs as an enhancement to the C programming language. Enhancements started with the addition of classes, followed by, among other features, virtual functions, operator overloading, multiple inheritance, templates, and exception handling. The C++ programming language standard was ratified in 1998 as ISO/IEC 14882:1998, the current version of which is the 2003 version, ISO/IEC 14882:2003. A new version of the standard (known informally as C++0x) is being developed.
Contents[hide]
1 History
1.1 The name "C++"
1.2 Future development
2 Philosophy
3 Standard library
4 Features introduced in C++
5 Hello world program
6 Language features
6.1 Operators
6.2 Preprocessor
6.3 Templates
6.4 Objects
6.4.1 Encapsulation
6.4.2 Inheritance
6.5 Polymorphism
6.5.1 Static polymorphism
6.5.2 Dynamic polymorphism
7 Parsing and processing C++ source code
8 Problems and controversies
9 Incompatibility with C
10 See also
11 Notes
12 References
13 External links
//
[edit] History
Stroustrup began work on C with Classes in 1979. The idea of creating a new language originated from Stroustrup's experience in programming for his Ph.D. thesis. Stroustrup found that Simula had features that were very helpful for large software development, but the language was too slow for practical use, while BCPL was fast but too low-level and unsuitable for large software development. When Stroustrup started working in Bell Labs, he had the problem of analyzing the UNIX kernel with respect to distributed computing. Remembering his Ph.D. experience, Stroustrup set out to enhance the C language with Simula-like features. C was chosen because it is general-purpose, fast, and portable. Besides C and Simula, some other languages which inspired him were ALGOL 68, Ada, CLU and ML. At first, the class, derived class, strong type checking, inlining, and default argument features were added to C via Cfront. The first commercial release occurred in October 1985.[2]
In 1983, the name of the language was changed from C with Classes to C++. New features were added including virtual functions, function name and operator overloading, references, constants, user-controlled free-store memory control, improved type checking, and BCPL style single-line comments with two forward slashes (//). In 1985, the first edition of The C++ Programming Language was released, providing an important reference to the language, as there was not yet an official standard. In 1989, Release 2.0 of C++ was released. New features included multiple inheritance, abstract classes, static member functions, const member functions, and protected members. In 1990, The Annotated C++ Reference Manual was published. This work became the basis for the future standard. Late addition of features included templates, exceptions, namespaces, new casts, and a Boolean type.
As the C++ language evolved, a standard library also evolved with it. The first addition to the C++ standard library was the stream I/O library which provided facilities to replace the traditional C functions such as printf and scanf. Later, among the most significant additions to the standard library, was the Standard Template Library.
After years of work, a joint ANSI-ISO committee standardized C++ in 1998 (ISO/IEC 14882:1998). For some years after the official release of the standard in 1998, the committee processed defect reports, and published a corrected version of the C++ standard in 2003. In 2005, a technical report, called the "Library Technical Report 1" (often known as TR1 for short) was released. While not an official part of the standard, it gives a number of extensions to the standard library which are expected to be included in the next version of C++. Support for TR1 is growing in almost all currently maintained C++ compilers.
While the C++ language is royalty-free, the standard document itself is not freely available.
[edit] The name "C++"
This name is credited to also Rick Mascitti (mid-1983) and was first used in December 1983. Earlier, during the research period, the developing language had been referred to as "new C", then "C with Classes". In computer science C++ is still referred to as a superstructure of C. The final name stems from C's "++" operator (which increments the value of a variable) and a common naming convention of using "+" to indicate an enhanced computer program. According to Stroustrup: "the name signifies the evolutionary nature of the changes from C". C+ was the name of an earlier, unrelated programming language.
Stroustrup addresses the origin of the name in Chapter 1 of his book, The C++ Programming Language, remarking that another interpretation of the C++ name could be seen from the appendix of George Orwell's Nineteen Eighty-Four. Of the three segments of the fictional language Newspeak, the "C vocabulary" is the one dedicated to technical terms and jargon. "Doubleplus" is the superlative modifier for Newspeak adjectives. Thus, "C++" might hold the meaning "most C-like" in Newspeak.
When Rick Mascitti was questioned informally in 1992 about the naming, he indicated that it was given in a tongue-in-cheek spirit. He never thought that it would become the formal name of the language.
A common joke about the name is that in C++, when ++ is used as a postfix operator the variable is incremented only after its value has been used (hence, for this reason and to match the double-plus Newspeak usage described above, it should be ++C rather than C++).
[edit] Future development
C++ continues to evolve to meet future requirements. A new version of the C++ standard is currently being worked on, entitled C++0x, denoting that it is expected to be released before 2010. Current work indicates that C++ will continue to capitalize on its multi-paradigm nature. Notable expected improvements are native support for threading and concepts, which will make working with templates easier. More controversially, adding garbage collection is currently under heavy discussion. Boost.org is a group working to make the most of C++ in its current form. They are greatly expanding C++'s functional and metaprogramming abilities. They also advise the C++ standards committee on which features work well and which need improving.
[edit] Philosophy
In The Design and Evolution of C++ (1994), Bjarne Stroustrup describes some rules that he uses for the design of C++. Knowing the rules helps to understand why C++ is the way it is. The following is a summary of the rules. Much more detail can be found in The Design and Evolution of C++.
C++ is designed to be a statically typed, general-purpose language that is as efficient and portable as C
C++ is designed to directly and comprehensively support multiple programming styles (procedural programming, data abstraction, object-oriented programming, and generic programming)
C++ is designed to give the programmer choice, even if this makes it possible for the programmer to choose incorrectly
C++ is designed to be as compatible with C as possible, therefore providing a smooth transition from C
C++ avoids features that are platform specific or not general purpose
C++ does not incur overhead for features that are not used
C++ is designed to function without a sophisticated programming environment
"Inside the C++ Object Model" (Lippman, 1996) describes how compilers may convert C++ program statements into an in-memory layout. Compiler authors are free to implement the standard in their own manner.
[edit] Standard library
The 1998 ANSI/ISO C++ standard consists of two parts: the core language and the C++ standard library; the latter includes most of the Standard Template Library (STL) and a slightly modified version of the C standard library. Many C++ libraries exist which are not part of the standard, and, using linkage specification, libraries can even be written in languages such as C, Fortran, Pascal, or BASIC. Note: supported languages is compiler dependant.
The C++ standard library incorporates the C standard library with some small modifications to make it work better with the C++ language. Another large part of the C++ library is based on the STL. This provides such useful tools as containers (for example vectors and lists), iterators (generalized pointers) to provide these containers with array-like access and algorithms to perform operations such as searching and sorting. Furthermore (multi)maps (associative arrays) and (multi)sets are provided, all of which export compatible interfaces. Therefore it is possible, using templates, to write generic algorithms that work with any container or on any sequence defined by iterators. As in C, the features of the library are accessed by using the #include directive to include a standard header. C++ provides 69 standard headers, of which 19 are deprecated.
Using the standard library -- for example, using std::vector or std::string instead of a C-style array -- can help lead to safer and more scalable software.
The STL was originally a third-party library from HP and later SGI, before its incorporation into the C++ standard. The standard does not refer to it as "STL", as it is merely a part of the standard library, but many people still use that term to distinguish it from the rest of the library (input/output streams, internationalization, diagnostics, the C library subset, etc.).
Most C++ compilers provide an implementation of the C++ standard library, including the STL. Compiler-independent implementations of the STL, such as STLPort, also exist. Other projects also produce various custom implementations of the C++ standard library and the STL with various design goals.
[edit] Features introduced in C++
Compared to the C language
From Wikipedia, the free encyclopedia
Jump to: navigation, search
C++
Paradigm:
multi-paradigm
Appeared in:
1985
Designed by:
Bjarne Stroustrup
Typing discipline:
Static, unsafe, nominative
Major implementations:
GNU Compiler Collection, Microsoft Visual C++, Borland C++ Builder
Dialects:
ANSI C++ 1998, ANSI C++ 2003
Influenced by:
C, Simula, Ada 83, ALGOL 68, CLU, ML
Influenced:
Ada 95, C#, Java, PHP, D, Aikido
C++ (pronounced "see plus plus", IPA: /siː plʌs plʌs/) is a general-purpose, programming language with high-level and low-level capabilities.[1] It is a statically typed, free-form, multi-paradigm, usually compiled language supporting procedural programming, data abstraction, object-oriented programming, and generic programming. Since the 1990s, C++ has been one of the most popular commercial programming languages.[citation needed]
C++ is regarded as a mid-level language. This indicates that C++ is comprised of a combination of both high-level and low-level language features.
Bjarne Stroustrup developed C++ (originally named "C with Classes") in 1983 at Bell Labs as an enhancement to the C programming language. Enhancements started with the addition of classes, followed by, among other features, virtual functions, operator overloading, multiple inheritance, templates, and exception handling. The C++ programming language standard was ratified in 1998 as ISO/IEC 14882:1998, the current version of which is the 2003 version, ISO/IEC 14882:2003. A new version of the standard (known informally as C++0x) is being developed.
Contents[hide]
1 History
1.1 The name "C++"
1.2 Future development
2 Philosophy
3 Standard library
4 Features introduced in C++
5 Hello world program
6 Language features
6.1 Operators
6.2 Preprocessor
6.3 Templates
6.4 Objects
6.4.1 Encapsulation
6.4.2 Inheritance
6.5 Polymorphism
6.5.1 Static polymorphism
6.5.2 Dynamic polymorphism
7 Parsing and processing C++ source code
8 Problems and controversies
9 Incompatibility with C
10 See also
11 Notes
12 References
13 External links
//
[edit] History
Stroustrup began work on C with Classes in 1979. The idea of creating a new language originated from Stroustrup's experience in programming for his Ph.D. thesis. Stroustrup found that Simula had features that were very helpful for large software development, but the language was too slow for practical use, while BCPL was fast but too low-level and unsuitable for large software development. When Stroustrup started working in Bell Labs, he had the problem of analyzing the UNIX kernel with respect to distributed computing. Remembering his Ph.D. experience, Stroustrup set out to enhance the C language with Simula-like features. C was chosen because it is general-purpose, fast, and portable. Besides C and Simula, some other languages which inspired him were ALGOL 68, Ada, CLU and ML. At first, the class, derived class, strong type checking, inlining, and default argument features were added to C via Cfront. The first commercial release occurred in October 1985.[2]
In 1983, the name of the language was changed from C with Classes to C++. New features were added including virtual functions, function name and operator overloading, references, constants, user-controlled free-store memory control, improved type checking, and BCPL style single-line comments with two forward slashes (//). In 1985, the first edition of The C++ Programming Language was released, providing an important reference to the language, as there was not yet an official standard. In 1989, Release 2.0 of C++ was released. New features included multiple inheritance, abstract classes, static member functions, const member functions, and protected members. In 1990, The Annotated C++ Reference Manual was published. This work became the basis for the future standard. Late addition of features included templates, exceptions, namespaces, new casts, and a Boolean type.
As the C++ language evolved, a standard library also evolved with it. The first addition to the C++ standard library was the stream I/O library which provided facilities to replace the traditional C functions such as printf and scanf. Later, among the most significant additions to the standard library, was the Standard Template Library.
After years of work, a joint ANSI-ISO committee standardized C++ in 1998 (ISO/IEC 14882:1998). For some years after the official release of the standard in 1998, the committee processed defect reports, and published a corrected version of the C++ standard in 2003. In 2005, a technical report, called the "Library Technical Report 1" (often known as TR1 for short) was released. While not an official part of the standard, it gives a number of extensions to the standard library which are expected to be included in the next version of C++. Support for TR1 is growing in almost all currently maintained C++ compilers.
While the C++ language is royalty-free, the standard document itself is not freely available.
[edit] The name "C++"
This name is credited to also Rick Mascitti (mid-1983) and was first used in December 1983. Earlier, during the research period, the developing language had been referred to as "new C", then "C with Classes". In computer science C++ is still referred to as a superstructure of C. The final name stems from C's "++" operator (which increments the value of a variable) and a common naming convention of using "+" to indicate an enhanced computer program. According to Stroustrup: "the name signifies the evolutionary nature of the changes from C". C+ was the name of an earlier, unrelated programming language.
Stroustrup addresses the origin of the name in Chapter 1 of his book, The C++ Programming Language, remarking that another interpretation of the C++ name could be seen from the appendix of George Orwell's Nineteen Eighty-Four. Of the three segments of the fictional language Newspeak, the "C vocabulary" is the one dedicated to technical terms and jargon. "Doubleplus" is the superlative modifier for Newspeak adjectives. Thus, "C++" might hold the meaning "most C-like" in Newspeak.
When Rick Mascitti was questioned informally in 1992 about the naming, he indicated that it was given in a tongue-in-cheek spirit. He never thought that it would become the formal name of the language.
A common joke about the name is that in C++, when ++ is used as a postfix operator the variable is incremented only after its value has been used (hence, for this reason and to match the double-plus Newspeak usage described above, it should be ++C rather than C++).
[edit] Future development
C++ continues to evolve to meet future requirements. A new version of the C++ standard is currently being worked on, entitled C++0x, denoting that it is expected to be released before 2010. Current work indicates that C++ will continue to capitalize on its multi-paradigm nature. Notable expected improvements are native support for threading and concepts, which will make working with templates easier. More controversially, adding garbage collection is currently under heavy discussion. Boost.org is a group working to make the most of C++ in its current form. They are greatly expanding C++'s functional and metaprogramming abilities. They also advise the C++ standards committee on which features work well and which need improving.
[edit] Philosophy
In The Design and Evolution of C++ (1994), Bjarne Stroustrup describes some rules that he uses for the design of C++. Knowing the rules helps to understand why C++ is the way it is. The following is a summary of the rules. Much more detail can be found in The Design and Evolution of C++.
C++ is designed to be a statically typed, general-purpose language that is as efficient and portable as C
C++ is designed to directly and comprehensively support multiple programming styles (procedural programming, data abstraction, object-oriented programming, and generic programming)
C++ is designed to give the programmer choice, even if this makes it possible for the programmer to choose incorrectly
C++ is designed to be as compatible with C as possible, therefore providing a smooth transition from C
C++ avoids features that are platform specific or not general purpose
C++ does not incur overhead for features that are not used
C++ is designed to function without a sophisticated programming environment
"Inside the C++ Object Model" (Lippman, 1996) describes how compilers may convert C++ program statements into an in-memory layout. Compiler authors are free to implement the standard in their own manner.
[edit] Standard library
The 1998 ANSI/ISO C++ standard consists of two parts: the core language and the C++ standard library; the latter includes most of the Standard Template Library (STL) and a slightly modified version of the C standard library. Many C++ libraries exist which are not part of the standard, and, using linkage specification, libraries can even be written in languages such as C, Fortran, Pascal, or BASIC. Note: supported languages is compiler dependant.
The C++ standard library incorporates the C standard library with some small modifications to make it work better with the C++ language. Another large part of the C++ library is based on the STL. This provides such useful tools as containers (for example vectors and lists), iterators (generalized pointers) to provide these containers with array-like access and algorithms to perform operations such as searching and sorting. Furthermore (multi)maps (associative arrays) and (multi)sets are provided, all of which export compatible interfaces. Therefore it is possible, using templates, to write generic algorithms that work with any container or on any sequence defined by iterators. As in C, the features of the library are accessed by using the #include directive to include a standard header. C++ provides 69 standard headers, of which 19 are deprecated.
Using the standard library -- for example, using std::vector or std::string instead of a C-style array -- can help lead to safer and more scalable software.
The STL was originally a third-party library from HP and later SGI, before its incorporation into the C++ standard. The standard does not refer to it as "STL", as it is merely a part of the standard library, but many people still use that term to distinguish it from the rest of the library (input/output streams, internationalization, diagnostics, the C library subset, etc.).
Most C++ compilers provide an implementation of the C++ standard library, including the STL. Compiler-independent implementations of the STL, such as STLPort, also exist. Other projects also produce various custom implementations of the C++ standard library and the STL with various design goals.
[edit] Features introduced in C++
Compared to the C language
c++ output
++
From Wikipedia, the free encyclopedia
Jump to: navigation, search
C++
Paradigm:
multi-paradigm
Appeared in:
1985
Designed by:
Bjarne Stroustrup
Typing discipline:
Static, unsafe, nominative
Major implementations:
GNU Compiler Collection, Microsoft Visual C++, Borland C++ Builder
Dialects:
ANSI C++ 1998, ANSI C++ 2003
Influenced by:
C, Simula, Ada 83, ALGOL 68, CLU, ML
Influenced:
Ada 95, C#, Java, PHP, D, Aikido
C++ (pronounced "see plus plus", IPA: /siː plʌs plʌs/) is a general-purpose, programming language with high-level and low-level capabilities.[1] It is a statically typed, free-form, multi-paradigm, usually compiled language supporting procedural programming, data abstraction, object-oriented programming, and generic programming. Since the 1990s, C++ has been one of the most popular commercial programming languages.[citation needed]
C++ is regarded as a mid-level language. This indicates that C++ is comprised of a combination of both high-level and low-level language features.
Bjarne Stroustrup developed C++ (originally named "C with Classes") in 1983 at Bell Labs as an enhancement to the C programming language. Enhancements started with the addition of classes, followed by, among other features, virtual functions, operator overloading, multiple inheritance, templates, and exception handling. The C++ programming language standard was ratified in 1998 as ISO/IEC 14882:1998, the current version of which is the 2003 version, ISO/IEC 14882:2003. A new version of the standard (known informally as C++0x) is being developed.
Contents[hide]
1 History
1.1 The name "C++"
1.2 Future development
2 Philosophy
3 Standard library
4 Features introduced in C++
5 Hello world program
6 Language features
6.1 Operators
6.2 Preprocessor
6.3 Templates
6.4 Objects
6.4.1 Encapsulation
6.4.2 Inheritance
6.5 Polymorphism
6.5.1 Static polymorphism
6.5.2 Dynamic polymorphism
7 Parsing and processing C++ source code
8 Problems and controversies
9 Incompatibility with C
10 See also
11 Notes
12 References
13 External links
//
[edit] History
Stroustrup began work on C with Classes in 1979. The idea of creating a new language originated from Stroustrup's experience in programming for his Ph.D. thesis. Stroustrup found that Simula had features that were very helpful for large software development, but the language was too slow for practical use, while BCPL was fast but too low-level and unsuitable for large software development. When Stroustrup started working in Bell Labs, he had the problem of analyzing the UNIX kernel with respect to distributed computing. Remembering his Ph.D. experience, Stroustrup set out to enhance the C language with Simula-like features. C was chosen because it is general-purpose, fast, and portable. Besides C and Simula, some other languages which inspired him were ALGOL 68, Ada, CLU and ML. At first, the class, derived class, strong type checking, inlining, and default argument features were added to C via Cfront. The first commercial release occurred in October 1985.[2]
In 1983, the name of the language was changed from C with Classes to C++. New features were added including virtual functions, function name and operator overloading, references, constants, user-controlled free-store memory control, improved type checking, and BCPL style single-line comments with two forward slashes (//). In 1985, the first edition of The C++ Programming Language was released, providing an important reference to the language, as there was not yet an official standard. In 1989, Release 2.0 of C++ was released. New features included multiple inheritance, abstract classes, static member functions, const member functions, and protected members. In 1990, The Annotated C++ Reference Manual was published. This work became the basis for the future standard. Late addition of features included templates, exceptions, namespaces, new casts, and a Boolean type.
As the C++ language evolved, a standard library also evolved with it. The first addition to the C++ standard library was the stream I/O library which provided facilities to replace the traditional C functions such as printf and scanf. Later, among the most significant additions to the standard library, was the Standard Template Library.
After years of work, a joint ANSI-ISO committee standardized C++ in 1998 (ISO/IEC 14882:1998). For some years after the official release of the standard in 1998, the committee processed defect reports, and published a corrected version of the C++ standard in 2003. In 2005, a technical report, called the "Library Technical Report 1" (often known as TR1 for short) was released. While not an official part of the standard, it gives a number of extensions to the standard library which are expected to be included in the next version of C++. Support for TR1 is growing in almost all currently maintained C++ compilers.
While the C++ language is royalty-free, the standard document itself is not freely available.
[edit] The name "C++"
This name is credited to also Rick Mascitti (mid-1983) and was first used in December 1983. Earlier, during the research period, the developing language had been referred to as "new C", then "C with Classes". In computer science C++ is still referred to as a superstructure of C. The final name stems from C's "++" operator (which increments the value of a variable) and a common naming convention of using "+" to indicate an enhanced computer program. According to Stroustrup: "the name signifies the evolutionary nature of the changes from C". C+ was the name of an earlier, unrelated programming language.
Stroustrup addresses the origin of the name in Chapter 1 of his book, The C++ Programming Language, remarking that another interpretation of the C++ name could be seen from the appendix of George Orwell's Nineteen Eighty-Four. Of the three segments of the fictional language Newspeak, the "C vocabulary" is the one dedicated to technical terms and jargon. "Doubleplus" is the superlative modifier for Newspeak adjectives. Thus, "C++" might hold the meaning "most C-like" in Newspeak.
When Rick Mascitti was questioned informally in 1992 about the naming, he indicated that it was given in a tongue-in-cheek spirit. He never thought that it would become the formal name of the language.
A common joke about the name is that in C++, when ++ is used as a postfix operator the variable is incremented only after its value has been used (hence, for this reason and to match the double-plus Newspeak usage described above, it should be ++C rather than C++).
[edit] Future development
C++ continues to evolve to meet future requirements. A new version of the C++ standard is currently being worked on, entitled C++0x, denoting that it is expected to be released before 2010. Current work indicates that C++ will continue to capitalize on its multi-paradigm nature. Notable expected improvements are native support for threading and concepts, which will make working with templates easier. More controversially, adding garbage collection is currently under heavy discussion. Boost.org is a group working to make the most of C++ in its current form. They are greatly expanding C++'s functional and metaprogramming abilities. They also advise the C++ standards committee on which features work well and which need improving.
[edit] Philosophy
In The Design and Evolution of C++ (1994), Bjarne Stroustrup describes some rules that he uses for the design of C++. Knowing the rules helps to understand why C++ is the way it is. The following is a summary of the rules. Much more detail can be found in The Design and Evolution of C++.
C++ is designed to be a statically typed, general-purpose language that is as efficient and portable as C
C++ is designed to directly and comprehensively support multiple programming styles (procedural programming, data abstraction, object-oriented programming, and generic programming)
C++ is designed to give the programmer choice, even if this makes it possible for the programmer to choose incorrectly
C++ is designed to be as compatible with C as possible, therefore providing a smooth transition from C
C++ avoids features that are platform specific or not general purpose
C++ does not incur overhead for features that are not used
C++ is designed to function without a sophisticated programming environment
"Inside the C++ Object Model" (Lippman, 1996) describes how compilers may convert C++ program statements into an in-memory layout. Compiler authors are free to implement the standard in their own manner.
[edit] Standard library
The 1998 ANSI/ISO C++ standard consists of two parts: the core language and the C++ standard library; the latter includes most of the Standard Template Library (STL) and a slightly modified version of the C standard library. Many C++ libraries exist which are not part of the standard, and, using linkage specification, libraries can even be written in languages such as C, Fortran, Pascal, or BASIC. Note: supported languages is compiler dependant.
The C++ standard library incorporates the C standard library with some small modifications to make it work better with the C++ language. Another large part of the C++ library is based on the STL. This provides such useful tools as containers (for example vectors and lists), iterators (generalized pointers) to provide these containers with array-like access and algorithms to perform operations such as searching and sorting. Furthermore (multi)maps (associative arrays) and (multi)sets are provided, all of which export compatible interfaces. Therefore it is possible, using templates, to write generic algorithms that work with any container or on any sequence defined by iterators. As in C, the features of the library are accessed by using the #include directive to include a standard header. C++ provides 69 standard headers, of which 19 are deprecated.
Using the standard library -- for example, using std::vector or std::string instead of a C-style array -- can help lead to safer and more scalable software.
The STL was originally a third-party library from HP and later SGI, before its incorporation into the C++ standard. The standard does not refer to it as "STL", as it is merely a part of the standard library, but many people still use that term to distinguish it from the rest of the library (input/output streams, internationalization, diagnostics, the C library subset, etc.).
Most C++ compilers provide an implementation of the C++ standard library, including the STL. Compiler-independent implementations of the STL, such as STLPort, also exist. Other projects also produce various custom implementations of the C++ standard library and the STL with various design goals.
[edit] Features introduced in C++
Compared to the C language
From Wikipedia, the free encyclopedia
Jump to: navigation, search
C++
Paradigm:
multi-paradigm
Appeared in:
1985
Designed by:
Bjarne Stroustrup
Typing discipline:
Static, unsafe, nominative
Major implementations:
GNU Compiler Collection, Microsoft Visual C++, Borland C++ Builder
Dialects:
ANSI C++ 1998, ANSI C++ 2003
Influenced by:
C, Simula, Ada 83, ALGOL 68, CLU, ML
Influenced:
Ada 95, C#, Java, PHP, D, Aikido
C++ (pronounced "see plus plus", IPA: /siː plʌs plʌs/) is a general-purpose, programming language with high-level and low-level capabilities.[1] It is a statically typed, free-form, multi-paradigm, usually compiled language supporting procedural programming, data abstraction, object-oriented programming, and generic programming. Since the 1990s, C++ has been one of the most popular commercial programming languages.[citation needed]
C++ is regarded as a mid-level language. This indicates that C++ is comprised of a combination of both high-level and low-level language features.
Bjarne Stroustrup developed C++ (originally named "C with Classes") in 1983 at Bell Labs as an enhancement to the C programming language. Enhancements started with the addition of classes, followed by, among other features, virtual functions, operator overloading, multiple inheritance, templates, and exception handling. The C++ programming language standard was ratified in 1998 as ISO/IEC 14882:1998, the current version of which is the 2003 version, ISO/IEC 14882:2003. A new version of the standard (known informally as C++0x) is being developed.
Contents[hide]
1 History
1.1 The name "C++"
1.2 Future development
2 Philosophy
3 Standard library
4 Features introduced in C++
5 Hello world program
6 Language features
6.1 Operators
6.2 Preprocessor
6.3 Templates
6.4 Objects
6.4.1 Encapsulation
6.4.2 Inheritance
6.5 Polymorphism
6.5.1 Static polymorphism
6.5.2 Dynamic polymorphism
7 Parsing and processing C++ source code
8 Problems and controversies
9 Incompatibility with C
10 See also
11 Notes
12 References
13 External links
//
[edit] History
Stroustrup began work on C with Classes in 1979. The idea of creating a new language originated from Stroustrup's experience in programming for his Ph.D. thesis. Stroustrup found that Simula had features that were very helpful for large software development, but the language was too slow for practical use, while BCPL was fast but too low-level and unsuitable for large software development. When Stroustrup started working in Bell Labs, he had the problem of analyzing the UNIX kernel with respect to distributed computing. Remembering his Ph.D. experience, Stroustrup set out to enhance the C language with Simula-like features. C was chosen because it is general-purpose, fast, and portable. Besides C and Simula, some other languages which inspired him were ALGOL 68, Ada, CLU and ML. At first, the class, derived class, strong type checking, inlining, and default argument features were added to C via Cfront. The first commercial release occurred in October 1985.[2]
In 1983, the name of the language was changed from C with Classes to C++. New features were added including virtual functions, function name and operator overloading, references, constants, user-controlled free-store memory control, improved type checking, and BCPL style single-line comments with two forward slashes (//). In 1985, the first edition of The C++ Programming Language was released, providing an important reference to the language, as there was not yet an official standard. In 1989, Release 2.0 of C++ was released. New features included multiple inheritance, abstract classes, static member functions, const member functions, and protected members. In 1990, The Annotated C++ Reference Manual was published. This work became the basis for the future standard. Late addition of features included templates, exceptions, namespaces, new casts, and a Boolean type.
As the C++ language evolved, a standard library also evolved with it. The first addition to the C++ standard library was the stream I/O library which provided facilities to replace the traditional C functions such as printf and scanf. Later, among the most significant additions to the standard library, was the Standard Template Library.
After years of work, a joint ANSI-ISO committee standardized C++ in 1998 (ISO/IEC 14882:1998). For some years after the official release of the standard in 1998, the committee processed defect reports, and published a corrected version of the C++ standard in 2003. In 2005, a technical report, called the "Library Technical Report 1" (often known as TR1 for short) was released. While not an official part of the standard, it gives a number of extensions to the standard library which are expected to be included in the next version of C++. Support for TR1 is growing in almost all currently maintained C++ compilers.
While the C++ language is royalty-free, the standard document itself is not freely available.
[edit] The name "C++"
This name is credited to also Rick Mascitti (mid-1983) and was first used in December 1983. Earlier, during the research period, the developing language had been referred to as "new C", then "C with Classes". In computer science C++ is still referred to as a superstructure of C. The final name stems from C's "++" operator (which increments the value of a variable) and a common naming convention of using "+" to indicate an enhanced computer program. According to Stroustrup: "the name signifies the evolutionary nature of the changes from C". C+ was the name of an earlier, unrelated programming language.
Stroustrup addresses the origin of the name in Chapter 1 of his book, The C++ Programming Language, remarking that another interpretation of the C++ name could be seen from the appendix of George Orwell's Nineteen Eighty-Four. Of the three segments of the fictional language Newspeak, the "C vocabulary" is the one dedicated to technical terms and jargon. "Doubleplus" is the superlative modifier for Newspeak adjectives. Thus, "C++" might hold the meaning "most C-like" in Newspeak.
When Rick Mascitti was questioned informally in 1992 about the naming, he indicated that it was given in a tongue-in-cheek spirit. He never thought that it would become the formal name of the language.
A common joke about the name is that in C++, when ++ is used as a postfix operator the variable is incremented only after its value has been used (hence, for this reason and to match the double-plus Newspeak usage described above, it should be ++C rather than C++).
[edit] Future development
C++ continues to evolve to meet future requirements. A new version of the C++ standard is currently being worked on, entitled C++0x, denoting that it is expected to be released before 2010. Current work indicates that C++ will continue to capitalize on its multi-paradigm nature. Notable expected improvements are native support for threading and concepts, which will make working with templates easier. More controversially, adding garbage collection is currently under heavy discussion. Boost.org is a group working to make the most of C++ in its current form. They are greatly expanding C++'s functional and metaprogramming abilities. They also advise the C++ standards committee on which features work well and which need improving.
[edit] Philosophy
In The Design and Evolution of C++ (1994), Bjarne Stroustrup describes some rules that he uses for the design of C++. Knowing the rules helps to understand why C++ is the way it is. The following is a summary of the rules. Much more detail can be found in The Design and Evolution of C++.
C++ is designed to be a statically typed, general-purpose language that is as efficient and portable as C
C++ is designed to directly and comprehensively support multiple programming styles (procedural programming, data abstraction, object-oriented programming, and generic programming)
C++ is designed to give the programmer choice, even if this makes it possible for the programmer to choose incorrectly
C++ is designed to be as compatible with C as possible, therefore providing a smooth transition from C
C++ avoids features that are platform specific or not general purpose
C++ does not incur overhead for features that are not used
C++ is designed to function without a sophisticated programming environment
"Inside the C++ Object Model" (Lippman, 1996) describes how compilers may convert C++ program statements into an in-memory layout. Compiler authors are free to implement the standard in their own manner.
[edit] Standard library
The 1998 ANSI/ISO C++ standard consists of two parts: the core language and the C++ standard library; the latter includes most of the Standard Template Library (STL) and a slightly modified version of the C standard library. Many C++ libraries exist which are not part of the standard, and, using linkage specification, libraries can even be written in languages such as C, Fortran, Pascal, or BASIC. Note: supported languages is compiler dependant.
The C++ standard library incorporates the C standard library with some small modifications to make it work better with the C++ language. Another large part of the C++ library is based on the STL. This provides such useful tools as containers (for example vectors and lists), iterators (generalized pointers) to provide these containers with array-like access and algorithms to perform operations such as searching and sorting. Furthermore (multi)maps (associative arrays) and (multi)sets are provided, all of which export compatible interfaces. Therefore it is possible, using templates, to write generic algorithms that work with any container or on any sequence defined by iterators. As in C, the features of the library are accessed by using the #include directive to include a standard header. C++ provides 69 standard headers, of which 19 are deprecated.
Using the standard library -- for example, using std::vector or std::string instead of a C-style array -- can help lead to safer and more scalable software.
The STL was originally a third-party library from HP and later SGI, before its incorporation into the C++ standard. The standard does not refer to it as "STL", as it is merely a part of the standard library, but many people still use that term to distinguish it from the rest of the library (input/output streams, internationalization, diagnostics, the C library subset, etc.).
Most C++ compilers provide an implementation of the C++ standard library, including the STL. Compiler-independent implementations of the STL, such as STLPort, also exist. Other projects also produce various custom implementations of the C++ standard library and the STL with various design goals.
[edit] Features introduced in C++
Compared to the C language
MY AUTOBIOGRAPHY

Heller my name is AARON PAUL ARCIAGA 17 years old iam the youngest child of MR AMADO ARCIAGA & MRS REBECCA ARCIAGA home atPH.2 ASTER ST.FLORES VILL SUBD. BANGKAL,DAVAO CITY iam studying at AMA COMPUTER COLLEGE OF DAVAO my moto in life is FAMILY IS A FOUNDATION OF LOVE,CARE,PEACE,COURAGE & UNDERSTANDING.
'' I WANT TO BE A PROFESSIONAL COMPUTER PROGRAMMER SOMEDAY'' in highschool lifeiam THE MOST OUTSTANDING STUDENT and i became the PRESIDENT OF SSG OF MNHS CHAPTER BY THE WAYmy favorite sport are chinese logyu and tennis.
kapoy na ko magtype ug letter sa computer maybabayarin pa ako sa casher wala ako money kay lapa a
'' I WANT TO BE A PROFESSIONAL COMPUTER PROGRAMMER SOMEDAY'' in highschool lifeiam THE MOST OUTSTANDING STUDENT and i became the PRESIDENT OF SSG OF MNHS CHAPTER BY THE WAYmy favorite sport are chinese logyu and tennis.
kapoy na ko magtype ug letter sa computer maybabayarin pa ako sa casher wala ako money kay lapa a
Monday, July 16, 2007
PARTS OF COMPUTER BY ARCIAGA
Computer software
From Wikipedia, the free encyclopedia
Jump to: navigation, search
It has been suggested that this article or section be merged with Computer program. (Discuss)
“Software” redirects here. For other uses, see Software (disambiguation).
“Scientific software” redirects here. For the company, see Scientific Software (company).
Computer software, consisting of programs, enables a computer to perform specific tasks, as opposed to its physical components (hardware) which can only do the tasks they are mechanically designed for. The term includes application software such as word processors which perform productive tasks for users, system software such as operating systems, which interface with hardware to run the necessary services for user-interfaces and applications, and middleware which controls and co-ordinates distributed systems.
Contents[hide]
1 Terminology
2 Relationship to computer hardware
3 Types
4 Program and library
5 Three layers
6 Creation
7 Operation
8 Quality and reliability
9 License
10 Patents
11 Ethics and rights for software users
12 See also
13 References
14 External links
//
[edit] Terminology
The term "software" is sometimes used in a broader context to describe any electronic media content which embodies expressions of ideas such as film, tapes, records, etc.[1]
A screenshot of computer software - AbiWord.
[edit] Relationship to computer hardware
Main article: Computer hardware
Computer software is so called in contrast to computer hardware, which encompasses the physical interconnections and devices required to store and execute (or run) the software. In computers, software is loaded into RAM and executed in the central processing unit. At the lowest level, software consists of a machine language specific to an individual processor. A machine language consists of groups of binary values signifying processor instructions (object code), which change the state of the computer from its preceding state. Software is an ordered sequence of instructions for changing the state of the computer hardware in a particular sequence. It is usually written in high-level programming languages that are easier and more efficient for humans to use (closer to natural language) than machine language. High-level languages are compiled or interpreted into machine language object code. Software may also be written in an assembly language, essentially, a mnemonic representation of a machine language using a natural language alphabet. Assembly language must be assembled into object code via an assembler.
The term "software" was first used in this sense by John W. Tukey in 1958.[2] In computer science and software engineering, computer software is all computer programs. The concept of reading different sequences of instructions into the memory of a device to control computations was invented by Charles Babbage as part of his difference engine. The theory that is the basis for most modern software was first proposed by Alan Turing in his 1935 essay Computable numbers with an application to the Entscheidungsproblem.[3]
[edit] Types
Practical computer systems divide software systems into three major classes: system software, programming software and application software, although the distinction is arbitrary, and often blurred.
System software helps run the computer hardware and computer system. It includes operating systems, device drivers, diagnostic tools, servers, windowing systems, utilities and more. The purpose of systems software is to insulate the applications programmer as much as possible from the details of the particular computer complex being used, especially memory and other hardware features, and such accessory devices as communications, printers, readers, displays, keyboards, etc.
Programming software usually provides tools to assist a programmer in writing computer programs and software using different programming languages in a more convenient way. The tools include text editors, compilers, interpreters, linkers, debuggers, and so on. An Integrated development environment (IDE) merges those tools into a software bundle, and a programmer may not need to type multiple commands for compiling, interpreter, debugging, tracing, and etc., because the IDE usually has an advanced graphical user interface, or GUI.
Application software allows end users to accomplish one or more specific (non-computer related) tasks. Typical applications include industrial automation, business software, educational software, medical software, databases, and computer games. Businesses are probably the biggest users of application software, but almost every field of human activity now uses some form of application software. It is used to automate all sorts of functions.
[edit] Program and library
A program may not be sufficiently complete for execution by a computer. In particular, it may require additional software from a software library in order to be complete. Such a library may include software components used by stand-alone programs, but which cannot work on their own. Thus, programs may include standard routines that are common to many programs, extracted from these libraries. Libraries may also include 'stand-alone' programs which are activated by some computer event and/or perform some function (e.g., of computer 'housekeeping') but do not return data to their calling program. Programs may be called by one to many other programs; programs may call zero to many other programs.
[edit] Three layers
Starting in the 1980s, application software has been sold in mass-produced packages through retailers.
See also: Software architecture
Users often see things differently than programmers. People who use modern general purpose computers (as opposed to embedded systems, analog computers, supercomputers, etc.) usually see three layers of software performing a variety of tasks: platform, application, and user software.
Platform software
Platform includes the firmware, device drivers, an operating system, and typically a graphical user interface which, in total, allow a user to interact with the computer and its peripherals (associated equipment). Platform software often comes bundled with the computer, and users may not realize that it exists or that they have a choice to use different platform software.
Application software
Application software or Applications are what most people think of when they think of software. Typical examples include office suites and video games. Application software is often purchased separately from computer hardware. Sometimes applications are bundled with the computer, but that does not change the fact that they run as independent applications. Applications are almost always independent programs from the operating system, though they are often tailored for specific platforms. Most users think of compilers, databases, and other "system software" as applications.
User-written software
User software tailors systems to meet the users specific needs. User software include spreadsheet templates, word processor macros, scientific simulations, and scripts for graphics and animations. Even email filters are a kind of user software. Users create this software themselves and often overlook how important it is. Depending on how competently the user-written software has been integrated into purchased application packages, many users may not be aware of the distinction between the purchased packages, and what has been added by fellow co-workers.
[edit] Creation
Main article: Computer programming
[edit] Operation
Computer software has to be "loaded" into the computer's storage (such as a hard drive, memory, or RAM). Once the software is loaded, the computer is able to execute the software. Computers operate by executing the computer program. This involves passing instructions from the application software, through the system software, to the hardware which ultimately receives the instruction as machine code. Each instruction causes the computer to carry out an operation -- moving data, carrying out a computation, or altering the control flow of instructions.
Data movement is typically from one place in memory to another. Sometimes it involves moving data between memory and registers which enable high-speed data access in the CPU. Moving data, especially large amounts of it, can be costly. So, this is sometimes avoided by using "pointers" to data instead. Computations include simple operations such as incrementing the value of a variable data element. More complex computations may involve many operations and data elements together.
Instructions may be performed sequentially, conditionally, or iteratively. Sequential instructions are those operations that are performed one after another. Conditional instructions are performed such that different sets of instructions execute depending on the value(s) of some data. In some languages this is known as an "if" statement. Iterative instructions are performed repetitively and may depend on some data value. This is sometimes called a "loop." Often, one instruction may "call" another set of instructions that are defined in some other program or module. When more than one computer processor is used, instructions may be executed simultaneously.
A simple example of the way software operates is what happens when a user selects an entry such as "Copy" from a menu. In this case, a conditional instruction is executed to copy text from data in a 'document' area residing in memory, perhaps to an intermediate storage area known as a 'clipboard' data area. If a different menu entry such as "Paste" is chosen, the software may execute the instructions to copy the text from the clipboard data area to a specific location in the same or another document in memory.
Depending on the application, even the example above could become complicated. The field of software engineering endeavors to manage the complexity of how software operates. This is especially true for software that operates in the context of a large or powerful computer system.
Currently, almost the only limitations on the use of computer software in applications is the ingenuity of the designer/programmer. Consequently, large areas of activities (such as playing grand master level chess) formerly assumed to be incapable of software simulation are now routinely programmed. The only area that has so far proved reasonably secure from software simulation is the realm of human art— especially, pleasing music and literature.[citation needed]
Kinds of software by operation: computer program as executable, source code or script, configuration.
[edit] Quality and reliability
Software reliability considers the errors, faults, and failures related to the creation and operation of software.
See Software auditing, Software quality, Software testing, and Software reliability.
[edit] License
Software license gives the user the right to use the software in the licensed environment, some software comes with the license when purchased off the shelf, or OEM license when bundled with hardware. Software can also be in the form of freeware or shareware. See also License Management.
[edit] Patents
The issue of software patents is controversial. Some believe that they hinder software development, while others argue that software patents provide an important incentive to spur software innovation. See software patent debate.
[edit] Ethics and rights for software users
Being a new part of society, the idea of what rights users of software should have is not very developed. Some, such as the free software community, believe that software users should be free to modify and redistribute the software they use. They argue that these rights are necessary so that each individual can control their computer, and so that everyone can cooperate, if they choose, to work together as a community and control the direction that software progresses in. Others believe that software authors should have the power to say what rights the user will get.
The former philosophy is somewhat derived from the "hacker ethic" that was common in the 60s and 70s.
[edit] See also
Software Portal
system software
application software
computer program
Computing
Software as a Service
Software Security Assurance
Origins of computer terms
Uninstaller
Virtual instrumentation
List of open source software packages
Software industry
Custom Software
Computer programming
List of basic computer programming topics
List of computer programming topics
Programming language
Text editor
Compiler
Algorithm
Software development process
Software development tools
Software maintenance
Software optimization
Application programming interface
Software brittleness
Software engineering
Software license
Proprietary software
Free software
Open source software
Copyright infringement of software
Freeware
Shareware
Postcardware
Shovelware
Dual license
License Management
[edit] References
^ software. (n.d.). Dictionary.com Unabridged (v 1.1). Retrieved 2007-04-13, from Dictionary.com website: http://dictionary.reference.com/browse/software
^ John Tukey, 85, Statistician; Coined the Word 'Software', New York Times, Obituaries, 2000-07-28.
^ Hally, Mike (2005:79). Electronic brains/Stories from the dawn of the computer age. British Broadcasting Corporation and Granta Books, London. ISBN 1-86207-663-4.
[edit] External links
Retrieved from "http://en.wikipedia.org/wiki/Computer_software"
From Wikipedia, the free encyclopedia
Jump to: navigation, search
It has been suggested that this article or section be merged with Computer program. (Discuss)
“Software” redirects here. For other uses, see Software (disambiguation).
“Scientific software” redirects here. For the company, see Scientific Software (company).
Computer software, consisting of programs, enables a computer to perform specific tasks, as opposed to its physical components (hardware) which can only do the tasks they are mechanically designed for. The term includes application software such as word processors which perform productive tasks for users, system software such as operating systems, which interface with hardware to run the necessary services for user-interfaces and applications, and middleware which controls and co-ordinates distributed systems.
Contents[hide]
1 Terminology
2 Relationship to computer hardware
3 Types
4 Program and library
5 Three layers
6 Creation
7 Operation
8 Quality and reliability
9 License
10 Patents
11 Ethics and rights for software users
12 See also
13 References
14 External links
//
[edit] Terminology
The term "software" is sometimes used in a broader context to describe any electronic media content which embodies expressions of ideas such as film, tapes, records, etc.[1]
A screenshot of computer software - AbiWord.
[edit] Relationship to computer hardware
Main article: Computer hardware
Computer software is so called in contrast to computer hardware, which encompasses the physical interconnections and devices required to store and execute (or run) the software. In computers, software is loaded into RAM and executed in the central processing unit. At the lowest level, software consists of a machine language specific to an individual processor. A machine language consists of groups of binary values signifying processor instructions (object code), which change the state of the computer from its preceding state. Software is an ordered sequence of instructions for changing the state of the computer hardware in a particular sequence. It is usually written in high-level programming languages that are easier and more efficient for humans to use (closer to natural language) than machine language. High-level languages are compiled or interpreted into machine language object code. Software may also be written in an assembly language, essentially, a mnemonic representation of a machine language using a natural language alphabet. Assembly language must be assembled into object code via an assembler.
The term "software" was first used in this sense by John W. Tukey in 1958.[2] In computer science and software engineering, computer software is all computer programs. The concept of reading different sequences of instructions into the memory of a device to control computations was invented by Charles Babbage as part of his difference engine. The theory that is the basis for most modern software was first proposed by Alan Turing in his 1935 essay Computable numbers with an application to the Entscheidungsproblem.[3]
[edit] Types
Practical computer systems divide software systems into three major classes: system software, programming software and application software, although the distinction is arbitrary, and often blurred.
System software helps run the computer hardware and computer system. It includes operating systems, device drivers, diagnostic tools, servers, windowing systems, utilities and more. The purpose of systems software is to insulate the applications programmer as much as possible from the details of the particular computer complex being used, especially memory and other hardware features, and such accessory devices as communications, printers, readers, displays, keyboards, etc.
Programming software usually provides tools to assist a programmer in writing computer programs and software using different programming languages in a more convenient way. The tools include text editors, compilers, interpreters, linkers, debuggers, and so on. An Integrated development environment (IDE) merges those tools into a software bundle, and a programmer may not need to type multiple commands for compiling, interpreter, debugging, tracing, and etc., because the IDE usually has an advanced graphical user interface, or GUI.
Application software allows end users to accomplish one or more specific (non-computer related) tasks. Typical applications include industrial automation, business software, educational software, medical software, databases, and computer games. Businesses are probably the biggest users of application software, but almost every field of human activity now uses some form of application software. It is used to automate all sorts of functions.
[edit] Program and library
A program may not be sufficiently complete for execution by a computer. In particular, it may require additional software from a software library in order to be complete. Such a library may include software components used by stand-alone programs, but which cannot work on their own. Thus, programs may include standard routines that are common to many programs, extracted from these libraries. Libraries may also include 'stand-alone' programs which are activated by some computer event and/or perform some function (e.g., of computer 'housekeeping') but do not return data to their calling program. Programs may be called by one to many other programs; programs may call zero to many other programs.
[edit] Three layers
Starting in the 1980s, application software has been sold in mass-produced packages through retailers.
See also: Software architecture
Users often see things differently than programmers. People who use modern general purpose computers (as opposed to embedded systems, analog computers, supercomputers, etc.) usually see three layers of software performing a variety of tasks: platform, application, and user software.
Platform software
Platform includes the firmware, device drivers, an operating system, and typically a graphical user interface which, in total, allow a user to interact with the computer and its peripherals (associated equipment). Platform software often comes bundled with the computer, and users may not realize that it exists or that they have a choice to use different platform software.
Application software
Application software or Applications are what most people think of when they think of software. Typical examples include office suites and video games. Application software is often purchased separately from computer hardware. Sometimes applications are bundled with the computer, but that does not change the fact that they run as independent applications. Applications are almost always independent programs from the operating system, though they are often tailored for specific platforms. Most users think of compilers, databases, and other "system software" as applications.
User-written software
User software tailors systems to meet the users specific needs. User software include spreadsheet templates, word processor macros, scientific simulations, and scripts for graphics and animations. Even email filters are a kind of user software. Users create this software themselves and often overlook how important it is. Depending on how competently the user-written software has been integrated into purchased application packages, many users may not be aware of the distinction between the purchased packages, and what has been added by fellow co-workers.
[edit] Creation
Main article: Computer programming
[edit] Operation
Computer software has to be "loaded" into the computer's storage (such as a hard drive, memory, or RAM). Once the software is loaded, the computer is able to execute the software. Computers operate by executing the computer program. This involves passing instructions from the application software, through the system software, to the hardware which ultimately receives the instruction as machine code. Each instruction causes the computer to carry out an operation -- moving data, carrying out a computation, or altering the control flow of instructions.
Data movement is typically from one place in memory to another. Sometimes it involves moving data between memory and registers which enable high-speed data access in the CPU. Moving data, especially large amounts of it, can be costly. So, this is sometimes avoided by using "pointers" to data instead. Computations include simple operations such as incrementing the value of a variable data element. More complex computations may involve many operations and data elements together.
Instructions may be performed sequentially, conditionally, or iteratively. Sequential instructions are those operations that are performed one after another. Conditional instructions are performed such that different sets of instructions execute depending on the value(s) of some data. In some languages this is known as an "if" statement. Iterative instructions are performed repetitively and may depend on some data value. This is sometimes called a "loop." Often, one instruction may "call" another set of instructions that are defined in some other program or module. When more than one computer processor is used, instructions may be executed simultaneously.
A simple example of the way software operates is what happens when a user selects an entry such as "Copy" from a menu. In this case, a conditional instruction is executed to copy text from data in a 'document' area residing in memory, perhaps to an intermediate storage area known as a 'clipboard' data area. If a different menu entry such as "Paste" is chosen, the software may execute the instructions to copy the text from the clipboard data area to a specific location in the same or another document in memory.
Depending on the application, even the example above could become complicated. The field of software engineering endeavors to manage the complexity of how software operates. This is especially true for software that operates in the context of a large or powerful computer system.
Currently, almost the only limitations on the use of computer software in applications is the ingenuity of the designer/programmer. Consequently, large areas of activities (such as playing grand master level chess) formerly assumed to be incapable of software simulation are now routinely programmed. The only area that has so far proved reasonably secure from software simulation is the realm of human art— especially, pleasing music and literature.[citation needed]
Kinds of software by operation: computer program as executable, source code or script, configuration.
[edit] Quality and reliability
Software reliability considers the errors, faults, and failures related to the creation and operation of software.
See Software auditing, Software quality, Software testing, and Software reliability.
[edit] License
Software license gives the user the right to use the software in the licensed environment, some software comes with the license when purchased off the shelf, or OEM license when bundled with hardware. Software can also be in the form of freeware or shareware. See also License Management.
[edit] Patents
The issue of software patents is controversial. Some believe that they hinder software development, while others argue that software patents provide an important incentive to spur software innovation. See software patent debate.
[edit] Ethics and rights for software users
Being a new part of society, the idea of what rights users of software should have is not very developed. Some, such as the free software community, believe that software users should be free to modify and redistribute the software they use. They argue that these rights are necessary so that each individual can control their computer, and so that everyone can cooperate, if they choose, to work together as a community and control the direction that software progresses in. Others believe that software authors should have the power to say what rights the user will get.
The former philosophy is somewhat derived from the "hacker ethic" that was common in the 60s and 70s.
[edit] See also
Software Portal
system software
application software
computer program
Computing
Software as a Service
Software Security Assurance
Origins of computer terms
Uninstaller
Virtual instrumentation
List of open source software packages
Software industry
Custom Software
Computer programming
List of basic computer programming topics
List of computer programming topics
Programming language
Text editor
Compiler
Algorithm
Software development process
Software development tools
Software maintenance
Software optimization
Application programming interface
Software brittleness
Software engineering
Software license
Proprietary software
Free software
Open source software
Copyright infringement of software
Freeware
Shareware
Postcardware
Shovelware
Dual license
License Management
[edit] References
^ software. (n.d.). Dictionary.com Unabridged (v 1.1). Retrieved 2007-04-13, from Dictionary.com website: http://dictionary.reference.com/browse/software
^ John Tukey, 85, Statistician; Coined the Word 'Software', New York Times, Obituaries, 2000-07-28.
^ Hally, Mike (2005:79). Electronic brains/Stories from the dawn of the computer age. British Broadcasting Corporation and Granta Books, London. ISBN 1-86207-663-4.
[edit] External links
Retrieved from "http://en.wikipedia.org/wiki/Computer_software"
Subscribe to:
Posts (Atom)