Also found in: Dictionary, Thesaurus, Medical, Legal, Financial, Acronyms, Idioms, Wikipedia.
(in digital computers), a system of programs that goes with a specific digital computer and is intended to aid in its use; also, mathematical methods and algorithms used in developing
|Table 1. Main characteristics of the most important soft-magnetic materials|
|Chemical composition (percent by weight)||B0 × 10−3(gauss)||Tc (°C)||ρ × 105(ohm • cm)||μ0 × 10−3(gauss/oersted)||μmax × 10−3(gauss/oersted)||Hc (oersteds)||Hysteresis losses at B = 5,000 G (erg/cm3|
|Note: μ0 and μmax are initial and maximum magnetic permeability of soft-magnetic materials; Tc is the Curie point; ρ is electrical resistance; Hc is coercive force; B0, B1, and Bm are saturation, remnant, and maximum induction in a field of 8-10 oersteds; 1 G = 10−4 tesla; 1 oersted = 79.6 A/m|
*Textured crystals †After treatment in a longitudinal magnetic field ‡After treatment in a transverse magnetic field
|80 NM (Supermalloy) ...............||80 Ni, 5 Mo; remainder Fe||8||400||55||100||1,000||0.005||10|
|79 NM (molybdenum Permalloy) ...............||79 Ni, 4 Mo; remainder Fe||8||450||50||40||200||0.02||70|
|50 N ...............||50 Ni; remainder Fe||15||500||45||5||40||0.1||150|
|50 NP* ...............||50 Ni; remainder Fe||15||500||45||Br/Bm = 0.95||100||0.1||600 (for B = 15,0000 G)|
|40 NKMP (rectangular Perminvar)† ...............||40 Ni, 25 Co, 4 Mo; remainder Fe||14||600||63||Br/Bm = 0.95||600||0.02||200 (for B = 14,0000 G)|
|40 NKML (linear Perminvar)‡||40 Ni, 25 Co, 4 Mo; remainder Fe||14||600||63||2||2.0 + (< 15%)||—||—|
|47 NK (linear Perminvar)‡||47 Ni, 23 Co; remainder Fe||16||650||20||0.9||0.90 + (< 15%)||—||—|
|49 KF-VI (Permendur) ...............||49 Co, 2 V; remainder Fe||23.5||980||40||1||50||0.5||5,000|
|16 luKh ...............||16 Al, 2 Cr; remainder Fe||7||340||160||10||80||0.03||100|
|10 Slu (sendast)||9.5 Si, 5.5 Al; remainder Fe||10||550||80||35||100||0.02||30|
|Armco iron ...............||100 Fe||21.5||768||12||0.5||10||0.8||5,000|
|E 44 ...............||4 Si; remainder Fe||19.8||680||57||0.4||10||0.5||1,200|
|E 330 ...............||3.5 Si; remainder Fe||20||690||50||1.5||30||0.2||350|
|Ni-Zn ferrite ...............||(Ni,Zn)O.Fe2O3||2-3||500-150||1011||0.05-0.5||—||1.5-0.5||—|
|Mn-Zn ferrite ...............||(Mn,Zn)O.Fe2O3||3.5-4.0||170||107||1||2.5||0.6||—|
the programs. It consists of general-purpose software, developed by the enterprise that manufactures the computer, and special software, developed by the machine users. General-purpose software is available to every user. The cost of the general-purpose software is included in the cost of the computer and constitutes a significant part (30 percent or more).
Elementary forms of software can be found even in first-generation machines (for example, the IS-2 system for the M-20 computer, which consists of a library of subroutines and a librarian program). However, complete software for first-generation computers was impossible because of their slow speed and small internal memory capacity. The operation of second- and third-generation computers without general-purpose software (and, specifically, without an operating system) is impossible.
A program that belongs to the software of a computer should be usable on the computer using certain other programs of the software system, if necessary. It should have the structure adopted for the software system and should be compiled by and supplied with instructions established for the software system. Finally, it should be recorded and fed into the software system according to accepted rules. These conditions ensure compatibility of the programs belonging to the software system and make it possible for any user to use them.
General-purpose software usually consists of an operating system, means of maintaining the software system in working condition, programming facilities, and additions. Test programs for monitoring the working condition of the computer are also part of the software, although they are used only by service personnel, are not used in programming, and do not affect programming.
The operating system is a program supplement to a digital computer; operating together they form a kind of new machine, which has its own system of operations and machine language. The operating system includes programs that provide input of orders for performance of jobs, preliminary planning of the course of job execution and distribution of machine equipment, input of programs or parts of them, operational execution of jobs and statistical records of equipment used and machine time expended, and output of information. As of 1974 no precise distribution of functions among the different programs of the operating system and no unambiguous terminology had been established. The programs for feeding programs and parts of them are usually called loaders, the program for preliminary planning of the course of jobs is called the planner (sometimes the monitor), and the program for direct control of jobs is called the dispatcher (sometimes the supervisor). The other programs have different names in different software systems.
The composition of the operating system and the internal structure of its programs depend to a large degree on the configuration of the computer—that is, its hardware (digital computers of the same type may differ in the number of disk or tape storage units or in the number of input and output devices), the functional interrelationships of the hardware, the class of problems for which the computer is primarily intended, and its mode of use. The best-known operating systems are intended for solving scientific, technical, and economic problems.
The means for maintaining the software system in working condition are programs for copying materials recorded on machine data carriers, forming subroutine libraries, and performing the “daily grooming” of the operating system (for example, erasing magnetic tapes and disks, editing information). This section of the software also includes programs that are used at the beginning of computer operations to obtain a certain version of the information system that corresponds to the existing computer configuration and to make changes in the operating system when there has been a change in the configuration of the computer or when the operating system is modernized.
The programming facilities are various programs used to make new programs: translators from various algorithmic languages and programs that assemble programs from modules and automate the debugging of new programs under development.
The system of programming facilities usually envisions the use of algorithmic languages (programming input languages) on three levels: machine-oriented languages (assembly languages); problem-oriented algorithmic languages, which are suitable for programming narrow classes of problems (for example, the RPG language, which is used for computers made by IBM, ICL, and many other companies); and one or more general-purpose algorithmic languages, such as ALGOL, FORTRAN, or COBOL. The possibility of computer debugging of programs given in algorithmic languages should be included in the translators themselves or provided by means of independent debugging programs.
The system of programming facilities for third-generation computers is ordinarily based on the modular principle. The modules are data files given in the algorithmic language of the computing system or in the input language for programming. Files given in the input languages for programming should contain the information necessary to convert them into modules. A program that assembles programs from modules is sometimes called a composer. The operating system sometimes includes a library of modules (in the language of the execution system). New modules that are put together in the programming process may be included in the library of modules by using an appropriate program from the software system’s support facilities.
The “additions” section of the software system includes programs to solve specific problems—for example, a transportation problem, the problem of solving a system of linear equations, a distribution problem of linear programming, and a problem of equalization of dynamic series. The programs included in the additions part are usually grouped by classes of problems (for example, a linear algebra and a mathematical statistics package).
There are two methods of developing general-purpose software. In the first method the software is developed and debugged on an auxiliary computer on which the executive computer can be simulated by programming. This is convenient because the software can be developed ahead of time, without the executive computer. However, in this case it is necessary to have a fairly high-performance auxiliary computer that already has software. In the second method the software is developed after at least an experimental model of the executive computer is available. The software is developed in such a way that the parts of the software already available can be used in developing the missing parts. In the development of new computers it is economically advantageous to retain the system of instructions from computers developed earlier and to use software that is already available. Thus, all programs developed for computers already in operation may also be used in the new computer if it is provided with adequate equipment.
The software is arranged in the computer as follows. The basic part of the dispatcher program (called the resident) is usually stored in the machine’s main memory; the other parts of the dispatcher program and the other software programs are put in external memory devices. Damage to the dispatcher program during operation of the computer is possible; therefore, an easily accessible copy of the resident is usually stored in the machine. The main memory of the digital computer is divided into three parts: the resident’s area; the working field, to which the resident calls up necessary parts of the operating system (not included in the resident) from external memory devices in the course of work; and the user area, which contains the program (or parts of programs) of the problems being solved, the raw data, and the results obtained. A considerable proportion of the external memory units is not occupied by software materials and also constitutes a user area. Software can be used efficiently only if the user area is sufficiently large, and this is only possible where the computer has a large memory capacity. This must be kept in mind when choosing a computer.
Special software is developed by the computer user to solve his specific problems, taking advantage of all capabilities of the general-purpose software. The special software may include translators from new languages not included in the general-purpose software, user-developed supplementary monitoring programs, and programs for solving specific problems or classes of problems. In an exceptional case the software may include programs that supplement the operating system. In special cases the programs that make up the special software are developed directly in the machine language to eliminate use of the operating system. This is done when the demands made on the program being developed are so high that the operating system does not meet them.
REFERENCESLedley, R. S. Programmirovanie i ispol’zovanie tsifrovykh vychislitel’nykh mashin. Moscow, 1966. (Translated from English.)
Flores, I. Programmnoe obespechenie. Moscow, 1971. (Translated from English.)
Germain, C. B. Programmirovanie na IBM-360. Moscow, 1971. (Translated from English.)
Lipaev, V. V., K. K. Kolin, and L. A. Serebrovskii. Matematicheskoe obespechenie upravliaiushchikh TsVM. Moscow, 1972.
Vilenkin, S. Ia., and E. A. Trakhtengerts. Matematicheskoe obespechenie upravliaiushchikh vychislitel’nykh mashin. Moscow, 1972.
Tarakanov, K. V. “Obshchie printsipy i struktura matematicheskogo obespecheniia avtomatizirovannykh sistem upravleniia.” In the collection Tsifrovaia vychislitel’naia tekhnika i programmirovanie, fasc. 7. Moscow, 1972.
N. A. KRINITSKII
A set of instructions that cause a computer to perform one or more tasks. The set of instructions is often called a program or, if the set is particularly large and complex, a system. Computers cannot do any useful work without instructions from software; thus a combination of software and hardware (the computer) is necessary to do any computerized work. A program must tell the computer each of a set of minuscule tasks to perform, in a framework of logic, such that the computer knows exactly what to do and when to do it. See Computer programming
Programs are written in programming languages, especially designed to facilitate the creation of software. In the 1950s, programming languages were numerical languages easily understood by computer hardware; often, programmers said they were writing such programs in machine language.
Machine language was cumbersome, error-prone, and hard to change. In the latter 1950s, assembler (or assembly) language was invented. Assembler language was nearly the same as machine language, except that symbolic (instead of numerical) operations and symbolic addresses were used, making the code considerably easier to change.
The programmable aspects of computer hardware have not changed much since the 1950s. Computers still have numerical operations, and numerical addresses by which data may be accessed. However, programmers now use high-level languages, which look much more like English than a string of numbers or operation codes. See Numerical representation (computers), Programming languages
Well-known programming languages include Basic, Java, and C. Basic has been modified into Visual Basic, a language useful for writing the portion of a program that the user “talks to” (i.e., the user interface or graphical user interface or GUI). Java is especially useful for creating software that runs on a network of computers. C and C++ are powerful but complex languages for writing such software as systems software and games. See Human-computer interaction, Local-area networks, Wide-area networks
Packaged software such as word processors, spreadsheets, graphics and drawing tools, email systems, and games are widely available and used. Some software packages are enormous; for example, enterprise resource planning (ERP) software can be used by companies to perform almost all of their so-called backoffice software work. See Computer graphics, Electronic mail
Systems software is necessary to support the running of an application program. Operating systems are needed to link the machine-dependent needs of a program with the capabilities of the machine on which it runs. Compilers translate programs from high-level languages into machine languages. Database programs keep track of where and how data are stored on the various storage facilities of a typical computer, and simplify the task of entering data into those facilities or retrieving the data. Networking software provides the support necessary for computers to interact with each other, and with data storage facilities, in a situation where multiple computers are necessary to perform a task, or when software is running on a network of computers (such as the Internet or the World Wide Web). See Database management system, Internet, Operating system
Business applications software processes transactions, produces paychecks, and does the myriad of other tasks that are essential to running any business. Roughly two-thirds of software applications are in the business area.
Scientific and engineering software satisfies the needs of a scientific or engineering user to perform enterprise-specific tasks. Because scientific and engineering tasks tend to be very enterprise-specific, there has been no generalization of this application area analogous to the that of the ERP for backoffice business systems. The scientific-engineering application usually is considered to be in second place only to business software in terms of software products built.
Edutainment software instructs (educates) or plays games with (entertains) the user. Such software often employs elaborate graphics and complex logic. This is one of the most rapidly growing software application areas, and includes software to produce special effects for movies and television programs.
Real-time software operates in a time-compressed, real-world environment. Although most software is in some sense real-time, since the users of modern software are usually interacting with it via a GUI, real-time software typically has much shorter time constraints. For example, software that controls a nuclear reactor must make decisions and react to its environment in minuscule fractions of a second.
With the advent of multiple program portions, software development has become considerably more complicated. Whereas it was formerly considered sensible to develop all of a software system in the same programming language, now the different portions are often developed in entirely different languages. The relatively complex GUI, for example, can most conveniently be developed in one of the so-called visual languages, since those languages contain powerful facilities for creating it. The server software, on the other hand, will likely be built using a database package and the database language SQL (a Structured Query Language, for inquiring into the contents of a database). If the server software is also responsible for interacting with a network such as the Internet, it may also be coded in a network-support language such as Java. An object-oriented approach may be adopted in its development, since the software will need to manipulate objects on the Internet. See Computer programming, Object-oriented programming, Software engineering
The term was coined by the eminent statistician, John Tukey.
Programs stored on non-volatile storage built from integrated circuits (e.g. ROM or PROM) are usually called firmware.
Software can be split into two main types - system software and application software or application programs. System software is any software required to support the production or execution of application programs but which is not specific to any particular application. Examples of system software would include the operating system, compilers, editors and sorting programs.
Examples of application programs would include an accounts package or a CAD program. Other broad classes of application software include real-time software, business software, scientific and engineering software, embedded software, personal computer software and artificial intelligence software.
Software includes both source code written by humans and executable machine code produced by assemblers or compilers. It does not usually include the data processed by programs unless this is in a format such as multimedia which depends on the use of computers for its presentation. This distinction becomes unclear in cases such as spread sheets which can contain both instructions (formulae and macros) and data. There are also various intermediate compiled or semi-compiled, forms of software such as library files and byte-code.
Some claim that documentation (both paper and electronic) is also software. Others go further and define software to be programs plus documentation though this does not correspond with common usage.
The noun "program" describes a single, complete and more-or-less self-contained list of instructions, often stored in a single file, whereas "code" and "software" are uncountable nouns describing some number of instructions which may constitute one or more programs or part thereof. Most programs, however, rely heavily on various kinds of operating system software for their execution. The nounds "code" and "software" both refer to the same thing but "code" tends to suggest an interest in the implementation details whereas "software" is more of a user's term.
softwareInstructions for the computer. A series of instructions that performs a particular task is called a "program." The two major software categories are "system software" and "application software."
System Software Runs the Computer
System software is made up of the operating system and other control programs for managing the hardware and running the applications.
Application Software Runs the Business
Application software is any program that processes data for the user (inventory, payroll, spreadsheet, word processor). Even games and DVD playback software are applications. The terms "software," "program" and "application" are synonymous and commonly interchanged in the same discussion. See system software, application software, information system, data processing and wares.
Software Is Not Data
A common misconception is that software is data. It is not. Software tells the hardware how to process the data.
Software is "run."Data are "processed."