System software are programs which hold instructions related with the working of the hardware and software of the computer system. System Software behaves like an incharge and performs the responsibility of overall supervision of input, processing and output of data. In other words, it is a set of programs the purpose of which is to increase, the capabilities of the system and thus, make the use of computer more effective. This part of the computer is the domain of computer manufacturer in which a variety of functions are implemented quite economically. These software are also called Firmware. It keeps track of all the peripherals equipment attached with the computer, and monitors their activities. It is the necessary software that administer and manage the computer resources and operations in the best possible way.
System computer Software are divided into two categories.
- Operating Systems
Operating System (OS) is the most important type of system software and can be defined as a set of programs which coordinate and control computer operations. It is a program or a series of programs which provides communication between the user and the computer hardware. Main functions of an operating system are:
- Job control
- Memory management
- Keep track of computer resources
- Produce error messages
All these functions are discussed in detail in chapter 9 under their individual topics.
Translators are programs which convert instructions in assembly language or high level languages into machine languages because computer can only understand machine language. Since it is difficult to write programs in machine language, therefore, it is more usual to allow the computer to convert the program by using translation software.
During the translation process, errors detected by the translator are listed. Any violation of a programing rule considered as syntax error (comparing with the syntax of that particular language). If some instruction is erroneously coded e.g. AD instead of ADD in assembly language, an error message is displayed. Logical errors are those in which the sequence of programming steps have not been code properly. These cannot be detected during this process. During translation, the machine has no way of judging the logic in a program. This can be tested only by executing or running the program on the computer.
If there are no rule violations in the source program, the translation process will convert all symbolic instructions to their machine language equivalent. The object program can then be executed or tested or it may be stored on tape, disk or even cards for future processing.
Functions of Translators
In Short the translators provide supporting functions such as:
- Identifying syntax errors
- Working out where to store the object program and its data
- Providing links to other programs or routines
- Printing a listing of the source and object programs
Types of Translators
Assemblers. Assembly language instructions will be converted to machine code with the help of an assembler. Assemblers are translator programs supplied by the computer manufacturer. Since a computer cannot understand any language other than machine language, therefore, an assembly language program must be translated into machine code so as to enable the computer to execute it. Firstly, whole program is typed in the assembly language. then assembler converts all the instructions at a time from assembly language to machine language.
Compilers. In case of assembly language, the translation into machine language is done by an assembler, similarly, for high level languages, this job is accomplished by compilers. A compiler is a complex program which translates a program written in a high level language (source program) to an equivalent machine language program (object program). This process of translation or conversion is called compilation. The compiler changes each high level instruction to many machine code instructions. The whole program is translated completely with a compiler before the machine language program is carried out. For this reason, compilers are more useful than interpreters. Once compiled, a program can be stored and it can be used later without requiring the repeated use of the compiler. The compiler is only necessary again if changes need to be made in the program.
Interpreters. It is another type of compiler used for translating high level languages. This program converts the high level language such as BASIC statements into machine codes. It does the following:
- Translates the source program, one instruction at a time.
- No object code is saved for future use.
The next time the instruction is used, it must once he interpreted and
translated into the machine code. It is therefore slower than compiler.
- It is useful for statement by statement fault finding when developing programs.
Interpreters are widely used on small computers having limited memory. Moreover, these interpreters waste a lot of time and effort in case the program contains any errors