Reading. Read the text and try to guess the meaning of the words in bold. Check your variants in the dictionary.
Software: the inside story
Computer software determinesthe types of tasks a computer can help you accomplish. Some software helps you create documents; while other software helps you edit home videos, prepare your tax return or design the floor plan for a new house.
The instructions that tell a computer how to carry out a task are referred to as a computer program. These programs form the software that prepares a computer to do a specific task, such as document production, video editing, graphic design or Web browsing. In popular usage the term “software” refers to one or more computer programs and any additional files that are providedto carry out a specific type of task. Whether it’s on a CD or downloaded from the Web, today’s software is typically composedofmany files. You might be surprised by the number of files that are necessary to make software work. At least one of the files included in a software package contains an executable program designed to be launched, or started, by users. On PCs, these programs are storedin files that typically have .exe file extensions and are referred to as “executable files”. Other files supplied with a software package contain programs that are not designed to be run by users. These “support programs” contain instructions for the computer to use in conjunction with the main user-executable file. A support program can be activated by the main program as needed. Support programs often have file extensions such as .dll and .ocx.
In addition to program files, many software packages also include data files. As you might expect, these files contain any data that is necessary for a task, but not supplied by the user, such as Help documentation. The data files supplied with a software package sport files extensions such as .txt, .bmp, and .hlp. (see fig. 2):
The use of a main user-executable file plus several support programs and data files offers a great flexibility and efficiency for software developers. Support programs and data files from existing programs can usually be modified by developers for other programs without changing the main executable file. This modular approachcan reducethe time required to create and test the main executable file, which usually contains a long and fairly complex program. This modular approach also allows software developers to reuse their support programs in multiple software products and adapt preprogrammed support modules for use in their own software. Modular programming techniques are of interest mainly to people who create computer programs; however these techniques affect the process of installing and uninstalling software. It is important, therefore, to remember that computer software consists of many files that contain user-executable programs, support programs, and data.
Programmers and programming languages
Computer programmers write computer programs that become the components of a computer software product. The finished software product is then distributed by the programmers or by software publishers– companies that specialize in marketing and selling software. Today most businesses and organizations purchase commercial software to avoid the time and expense of writing their own.
Most software provides a task-related environment, which includes a screen display, a means of collecting commands and data from the user, the specifications for processing data, and a method for displaying or outputting data. To create a software environment, a programmer must define propertiesfor each element in the environment, such as where the objects appear, its shape, color and behavior.
A programming language provides the tools a programmer uses to create software and produce a lengthy list of instructions, called source code, which defines the software environment in every detail – what it looks like, how the user enters commands, and how it manipulates data. Most programmers today prefer to use a high-level language, such as C++, Java, Ada, COBOL, or Visual Basic. These languages have some similarities to human languages and produce programs that are fairly easy to test and modify.
A computer’s microprocessor understands only machine language– the instruction set that is “hard wired” within the microprocessor’s circuits. Therefore, instructions written in a high-level language must be translated into machine language before a computer can use them. The process of translating instructions can be accomplished by two special types of programs: compilers and interpreters. A compilertranslates all the instructions in a program as a single batch, and the resulting machine language instructions, called object code, are placed in a new file. Most of the program files on a distribution CD for commercial software are compiled so that they contain machine language instructions that are ready for the processor to execute. As an alternative to a compiler, an interpreter converts one instruction at a time while the program is running. An interpreter reads the first instruction, converts it into machine language, and then sends it to the microprocessor. After the instruction is executed, the interpreter converts the next instruction, and so on.
Software is categorized as application software or system software. The primary purposeof application software is to help people carry out tasks using a computer. In contrast, the primary purpose of system software – your computer’s operating system, device drivers, programming languages, and utilities – is to help the computer to carry out its basic operating functions.
Software can be classified into categories (see fig. 3):
Fig. 3: Software categories
Comprehension check. Mark the following statements as True or False.
1. Computer software typically consists of many files that contain user-executable programs, support programs and data files.
2. The main executable file provides the primary set of instructions for the computer to execute and calls various support programs and data files as needed.
3. Support programs often have file extensions such as .txt, .bmp, and .hlp.
4. Individuals often write software for their personal computers.
5. High-level languages are fairly easy to test and modify.
6. A compiler converts high-level instructions into a new file containing machine language instructions.