Unit 1
Unit 1
System Programming
COURSE CODE:CSEg4303
Version:1
Introduction
➢ A system programming is a program which helps to executes user’s
program effectively on a computer system.
➢ Systems programming aims to produce software and software
platforms which provide services to other software
➢ Systems programming requires a great degree of hardware awareness.
➢ Its goal is to achieve efficient use of available resources
➢ Each program in the system software is called system program
➢ System program (SP) perform various task: Edit a program, campling
it, and arranging for its execution.
➢ The term system programming is used to describe the collection of
techniques the design of the system program(SP).
➢ Systems programmers always wrote in assembly language.
➢ Experiments with hardware support in high level languages in the late
1960s led to such languages as PL/S, BLISS, BCPL, and
extended ALGOL for Burroughs large systems.
➢ In the 1970s, C became widespread, aided by the growth of Unix.
➢ More recently a subset of C++ called Embedded C++ has seen some
use.
➢ Software refers to computer programs which direct the computer to
manage its:
➢
Internal resources
➢
Control the workings of the computer hardware along with the
program documentation that used to explain the programs to the
user.
➢ Computer programs are sequences or set of instructions to the
computer that tell the circuit within the hardware to operate in a certain
way or fashion.
➢ Process of writing programs is called programming and is done by
programmers
Cont...
➢ Software is divided into major types, and this is shown by the diagram
which is given below, a software hierarchy.
➢ Computers understand only the binary number system (zeros and ones)
➢ All data stored in the computer is stored as a series of zeros and ones
➢ All instructions telling the computer what to do are stored as a series of zeros
and ones
➢ People do not naturally think in terms of zeros and ones (the binary number
system)
➢ Programming languages have four categories:
1. Low level languages.
2. High level languages.
3. Fourth generation languages (4GL)
4. Fifth generation languages (5GL)
Cont...
Systems software
2. Language translators and processors program
➢ Low level languages.
➢ 1st generation (machine language)
➔ Written using 1s and 0s (binary)
➔ Able to be executed very fast by the computer, as there is no need for translation.
➔ However, difficult to read, write and understand by humans as the programs involve only 0s and
1s.
➔ Difficult to modify and correct mistakes.
➔ Machine dependent, so unable to be used on other machine.
➢ 2nd generation
➔ Is written using mnemonics (meaningful abbreviations) e.g. ADD, SUB, mov etc.
➔ Easier to understand, write and read than machine language.
➔ However, slower in execution than machine language.
➔ Machine dependent .
Cont...
Systems software
2. Language translators and processors program
➢ High level languages.
● Third generation 3GLs
They are procedural languages, i.e. the programmer writes
instructions that tell
the computer what to accomplish and how to do it. Example:
PASCAL, C, BASIC, JAVA etc.
They are machine independent.
Use English like words to write instructions.
Easier to understand, write and read than machine language.
Cont...
Systems software
2. Language translators and processors program
➢ Fourth generation languages (4GL)
➢
Are very similar to 3rd generation languages, except they are even easier
to use.
➢
They use English like statements and offer extra help through prompts,
➢
instructions and wizards e.g. SQL structured query language.
➢
It is fairly quick and easy to train people who are not computer experts
➢
Reduce the overall time, effort and cost of software development.
➢
However,
✗ Needs to be converted to machine language.
✗ Programs written in 4GLs are slower.
Cont...
Systems software
2. Language translators and processors program
➢ Fifth generation languages (5GL)
➔
Used extensively in artificial intelligence
➔
Non procedural i.e. the programmer states the goal to be
achieved but not the steps required in order to achieve the goal.
Examples Prolog and Mercury.
➔
Able to communicate in natural spoken languages with their
users.
➔
However they are very complex to design.
Cont...
Systems software
3. Utility and Service Programs
➢ Utility programs are generally fairly small and each type has a specific
job to do.
➢ Antivirus applications: It protect the computer from the damage that
can be caused by viruses.
➢ Compression utilities: It make files smaller for storage or sending over
the internet and return them to normal size.
➢ Data recovery utilities: It used to restore data and files that have been
damaged or deleted by mistake.
➢ Firewalls: prevent outsiders from accessing one’s computer over a
network.
Cont...
APPLICATION SOFTWARE
➢ Is a set of computer instructions that provides more specific
functionality to a user.
➢ That functionality may be broad such as general word processing.
Application software has two categories which are;
➢ General purpose packages
➢ Specific purpose packages:
➔
is designed at a user’s request to perform specific functions.
Big companies and government departments create their own
applications.
➔
It takes a lot of time to create such specific applications
software
Software Tools
➢Program that help in developing & using other programs.
I. Compilers
II. Assemblers
III. Interpreters
Compilers
➢ Compiler reads whole program at a time and generate errors (if
occurred).
➢ Compiler generates intermediate code in order to generate target code.