Also found in: Dictionary, Thesaurus, Medical, Legal, Financial, Acronyms, Idioms, Wikipedia.
Related to software: types of software


1. Computing the programs that can be used with a particular computer system
2. video cassettes and discs for use with a particular video system
Collins Discovery Encyclopedia, 1st edition © HarperCollins Publishers 2005
The following article is from The Great Soviet Encyclopedia (1979). It might be outdated or ideologically biased.



(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 Fe8400551001,0000.00510
79 NM (molybdenum Permalloy) ...............79 Ni, 4 Mo; remainder Fe845050402000.0270
50 N ...............50 Ni; remainder Fe15500455400.1150
50 NP* ...............50 Ni; remainder Fe1550045Br/Bm = 0.951000.1600 (for B = 15,0000 G)
40 NKMP (rectangular Perminvar) ...............40 Ni, 25 Co, 4 Mo; remainder Fe1460063Br/Bm = 0.956000.02200 (for B = 14,0000 G)
40 NKML (linear Perminvar)‡40 Ni, 25 Co, 4 Mo; remainder Fe146006322.0 + (< 15%)
47 NK (linear Perminvar)‡47 Ni, 23 Co; remainder Fe16650200.90.90 + (< 15%)
49 KF-VI (Permendur) ...............49 Co, 2 V; remainder Fe23.5980401500.55,000
16 luKh ...............16 Al, 2 Cr; remainder Fe734016010800.03100
10 Slu (sendast)9.5 Si, 5.5 Al; remainder Fe1055080351000.0230
Armco iron ...............100 Fe21.5768120.5100.85,000
E 44 ...............4 Si; remainder Fe19.8680570.4100.51,200
E 330 ...............3.5 Si; remainder Fe20690501.5300.2350
Ni-Zn ferrite ...............(Ni,Zn)O.Fe2O32-3500-15010110.05-0.51.5-0.5
Mn-Zn ferrite ...............(Mn,Zn)O.Fe2O33.5-4.017010712.50.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.


Ledley, 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.


The Great Soviet Encyclopedia, 3rd Edition (1970-1979). © 2010 The Gale Group, Inc. All rights reserved.


(computer science)
The totality of programs usable on a particular kind of computer, together with the documentation associated with a computer or program, such as manuals, diagrams, and operating instructions.
McGraw-Hill Dictionary of Scientific & Technical Terms, 6E, Copyright © 2003 by The McGraw-Hill Companies, Inc.


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

McGraw-Hill Concise Encyclopedia of Engineering. © 2002 by The McGraw-Hill Companies, Inc.


(Or "computer program", "program", "code") The instructions executed by a computer, as opposed to the physical device on which they run (the "hardware").

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.
This article is provided by FOLDOC - Free Online Dictionary of Computing (


Instructions 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."
Copyright © 1981-2019 by The Computer Language Company Inc. All Rights reserved. THIS DEFINITION IS FOR PERSONAL USE ONLY. All other reproduction is strictly prohibited without permission from the publisher.
References in periodicals archive ?
While Virginia distinguishes between electronically provided prewritten software and prewritten software provided in tangible format, the same cannot be said in other states.
As applied to desktops and laptops, CDP software resembles anti-virus in terms of how it functions; there is an "auto-protect" mechanism which monitors data for changes, just as there is such a component in anti-virus products which monitors for suspicious activity.
One suggestion about planning software: Before you rush out and buy planning software, check with your facilities people.
"We're having our software vendors undergo these certification processes, and we're setting the highest standards in the selection of our partners," says Wolfsried.
Our post-acute clinical and financial software offers a fully integrated suite of 12 modules designed especially to address today's most pressing issues.
"If you're a business and you've got unlicensed copies or infringing copies of, say, word processing software, spreadsheet software, graphics packages, operating systems software--you could be talking about liability in the seven-figure range.
As hardware costs shrink because of competition, software prices are an increasingly large slice of the cost of buying and maintaining a home computer.
Though Cal-Bay owns the software rights to CTRL Build, Maki doesn't plan to relinquish control of his basic IPM software anytime soon.
You've suggested adding software reviews to each of our major reviews on acquisition programs.
Offers Odyssey enterprise software designed specifically for plastics processors.

Full browser ?