0% found this document useful (0 votes)
96 views5 pages

System Software and Programming Techniques 1

System software includes the operating system and utilities needed to develop and run programs. Assembly language was created to make programming easier than machine language. An assembler translates assembly language code into machine-readable object code. High-level languages like BASIC and Pascal abstract computation from hardware details, making programs portable across systems but slower to execute. Compilers translate high-level code into object code, while interpreters translate and execute one line of code at a time.

Uploaded by

reginaamondi133
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
96 views5 pages

System Software and Programming Techniques 1

System software includes the operating system and utilities needed to develop and run programs. Assembly language was created to make programming easier than machine language. An assembler translates assembly language code into machine-readable object code. High-level languages like BASIC and Pascal abstract computation from hardware details, making programs portable across systems but slower to execute. Compilers translate high-level code into object code, while interpreters translate and execute one line of code at a time.

Uploaded by

reginaamondi133
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

SYSTEM SOFTWARE AND PROGRAMMING TECHNIQUES

An instruction is a command given to a computer to perform certain specified operation on given


data. A set of programs written for a computer is called software. The software needed to execute
the user’s program is known as system software. Firmware is the software stored in read only
storage devices. Those programs which are rarely or never expected to be changed are stored as
firmware e.g. BIOS.

The software which are helpful to users in developing, writing, debugging and documenting
programs is referred to as utility programs. There are two types of utility programs: file
management utilities and program development utilities. The file management utilities are helpful
to users in creating, copying, and printing, erasing and renaming the files. These programs are part
of the operating system. The program management utilities are useful in writing and testing
programs. These are text editor, assembler, compiler, loader, linker, locator, debugger etc.

Machine Language
A computer understands information composed of only zeros and ones and hence it uses binary
digits for its operation. The computer’s instructions are coded and stored in the memory in the
form of Os and Is. A program written in the form of Os and Is is called machine language program.
There is a specific binary code for each instruction. Each microprocessor has its own instruction
set and corresponding machine codes.

Assembly Language
The writing of programs in machine language is very difficult, tiresome and boring job for a
programmer. Moreover, it is error prone. To overcome these challenges understandable languages
have been developed. Assembly languages have been developed. Assembly language is one of
them. Programs can easily be written in alphanumeric symbols instead of Os and Is. Meaningful
and easily rememberable symbols are selected for this purpose. For example ADD for addition,
SUB for subtraction, CMP for comparison etc. Such symbols are known as mnemonics. A program
written in mnemonics is called assembly language program. The writing of programs in assembly
language is easier and faster as compared to the writing of programs in a machine language.

Assembler
When a program is written in a language other than the machine language of a computer, the
computer will not understand it. Hence, the programs written in other languages must be translated
into the machine language of the computer before they are executed. Such translation is performed
with aid of software. A program which translates assembly language program into a machine
language program is called an assembler. An assembler which runs in a computer for which it
produces object codes (machine codes) is called a self-assembler (or resident assembler). A less
powerful and cheaper computer may not have enough software and hardware facilities for program
development convenient assembly. In such a situation, a faster and powerful computer can be used
for program development. The programs so developed are to be run on smaller computers. For
such program development, a cross assembler is required. A cross assembler is an assembler that
runs on a computer other than that for which it produces machine codes.

 One-pass assembler; it is an assembler which reads the assembly language program only
once. Such assembler must be equipped with some message to assign addresses to the
labels used in the assembly language program.
 Two-pass assembler-it is an assembler which goes through the assembly language program
twice. On the first pass, the assembler reads the assembly language program and collects
all the labels. It assigns addresses to the labels counting their position from the starting
address. On the second pass, the assembler produces the machine code for each instruction
and assigns address to each.

Advantages of Assembly Language

The advantage of assembly language over high-level languages is that the computation time for an
assembly language program is less. An assembly language program runs faster to produce the
desired result.

Disadvantages of Assembly Language

i) Programming is difficult and time consuming

ii) The assembly language is machine oriented. The programmer must be conversant with structure
of the computer one is using. One must have the knowledge of the registers, instructions set and
port connections to the peripherals.

iii) The program written in assembly language for one computer cannot be used on any other
computer. Therefore assembly language is not portable.

iv) An assembly language program contains more instructions compared to high level-language
program.

Low-Level and High-Level Languages


A language in which each statement is directly translated into a single machine code is known as
low-level language. Examples of low level language are machine language and assembly language.
One problem of assembly language is that it is more closely related to the structure of a computer
than to the performance of the task which is to be performed.

To overcome the difficulties associated with assembly languages, high level or procedure-oriented
languages have been developed. High level languages permit programmers to describe tasks in a
form which is problem oriented or object oriented. One can formulate problems more efficiently
in a high level language and need not have a precise knowledge of the architecture of the computer
one is using.

The instructions written in a high level language are called statements. The statement more clearly
resembles English and mathematics as compared to mnemonics in assembly languages. Examples
of high-level languages are BASIC, PASCAL, FORTRAN, COBOL, ALGOL, C, C++, PROLOG,
LISP, JAVA etc. A high-level language is independent a computer architecture.

The Advantages of High Level Languages are;

i. They are easier to learn as compared to assembly languages.

ii. They make programs easier and faster to write.

iii. Provide better documentation.

iv. The programmer does not have limitations to use a single type of machine.

v. Programs are portable i.e. They will run on any computer which has a similar
compiler.(compiler is machine dependent)

Source Language and Object Language


The language in which a programmer writes a program is called source language. It may be a high-
level language or an assembly language. The language in which a computer works is called object
language or machine language. Machine codes are also known as object codes. Program written
in a source language is called a source program. When a source program is converted into a
machine code by an assembler or compiler is known as object program.

Compiler
A program which translates a high level language into a machine language program is called a
compiler. A compiler is more intelligent than an assembler .It checks all kind of limits, ranges,
errors etc. But its program execution time is more and occupies a larger part of memory. It has low
speed and low efficiency of memory utilization. If a compiler runs on a computer for which it
produces the object code. Then it is known as self or resident compiler. If a compiler runs in a
computer other than that for which it produces object codes then it is called cross-compiler.

A compiler accepts as input a program text in a certain language and produces as output a program
text in another language, while preserving the meaning of that text. This process is called
translation, as it would be if the texts were in natural languages. Almost all compilers translate
from one input language, the source language, to one output language, the target language only.
One normally expects the source and target language to differ greatly the source language could
be C and the target language could be machine code for Pentium processor series. The language
the compiler itself is written in is the implementation language.
The main reason why one wants such translation is that one has hardware on which one can “run”
the translated program or more precisely have the hardware perform the actions described by the
semantics of the program. After all, hardware is the only real source of computing power.

Therefore a compiler is a program that can read a program in one language, the source language
and translate it into an equivalent program in another language, the target language. A compiler
can also report any errors in the source program that it detects during translation process.

Source program

Compiler

Target program

Fig.1 a Compiler

Interpreter
An interpreter is a program which translates statement of a high-level language program into
machine codes. It translates one statement of a program at a time. It reads one statement of a high-
level language program translates it into machine code and executes it. Then it reads the next
statement of the program translates it and executes it. In this way it proceeds further till all the
statement of the program are translated and executed. On the other hand a compiler goes through
the entire high-level language program once or twice and then translates the entire program into
machine codes. A compiler is 5 to 25 times faster than an interpreter.

An interpreter is a smaller program as companied to a compiler. It occupies less memory space.


It can be used in smaller system which has limited memory space. The object program produce
by the compiler is permanently saved for future reference. On the other hand, the object code of
the statement produced by an interpreter is not saved. If an instruction is used next time, it must
be interpreted once again and translated into machine code.
An interpreter produces a target program as a translator; an interpreter appears to directly execute
the operations specified in the source program on input supplied by the user.

Source program Output


Input Interpreter
Fig. 2 an Interpreter
An interpreter usually gives better error diagnostics than a compiler because it executes the source
program statement by statement.

Compiler vs. Interpreter


Both compiler and interpreter are software that translates the code written in high level language.
The difference between the two is the methodology of translation. The compiler takes the whole
program and generates the object code while the interpreter executes the program line by line.

BIOS
BIOS stand for Basic Input Output System. Some system programs that manage the computers
operations are stored in ROM as firmware. These programs perform the most fundamental types
of supervisory and support work. They provide essential services that all programmers need. These
service programs (or subroutines) are called Basic input/ output services. They are referred to as
BIOS or ROM BIOS. Each program (or subroutine) performs one specific task such as writing
some characters to the CRT, reading some date from disk memory or reading a character from the
keyboard etc. All these are done using software interrupt instructions. The service provided by
ROM BIOS are print screen, video services, disk services, serial port (RS-232) services, cassette
port services, keyboard services, parallel port (printer) services ,boot strap etc.

You might also like