You are on page 1of 38

 Introduction,

 Software,
 Software Hierarchy,
 Systems Programming,
 Machine Structure,
 Interfaces,
 Address Space,
 Computer Languages,
 Tools,
 Life Cycle of a Source Program,
 Different Views on the Meaning of a Program,
 System Software Development,
 Recent Trends in Software Development,
 Levels of System Software
 Computer System:
◦ Hardware
◦ Software
 Application software
 System software
 System Software can create a virtual machine
or virtual environment that presents the user
with simple, friendly, ease of use of
computational services.
 It can be referred as program or set of program.
 Application software are software used to solve
the task of user using a Computer.
 So in Application, development the focus is on
development of application and not on
development of computer or system.
 System Software are related to development and
operation in computer Systems.
 Computers can perform variety of tasks such as
editing, linking, translating, managing resources,
managing input/output etc with the help of
system softwares.
 Application program
 High level language programs and compilers
 Operating system
 Assembly language program and assembler
 Machine level language
 It is the programming technique for design and
implementation of system programs and system
software's:
 Assembler
 Loader
 Linker
 Compiler
 Operating system
 Editor
 Interpreter
 Emulator
 Simulator
 Communication Software
 The great mathematician John Von Nuemann
(1903-1957) was first to propose general
structure of machines.
 A computer is a collection of interconnected
units such as CPU, memory, I/O processor,
channel, others CPU’s, etc in which each CPU has
interconnected components such as
◦ An instruction interpreter (II).
◦ A location counter (LC), program counter (PC), or an
instruction counter (IC).
◦ An Instruction register (IR).
◦ Various working register (WR).
◦ Some general purpose register (GPR).
 Some mechanism for communication is
needed between user and computer
hardware. Similarly another interface is
needed between hardware and software.
 Two types of interface
◦ User interface
◦ System interface
 User interface is a system of interaction
between hardware and user that is used to
perform necessary task.
 The mechanism of interaction between physical and logical
devices that enable them to communicate with each other is
known as system interface.
 Each byte of physical memory has address.
These address are expressed as integer.
 These values are generally bounded between
two integer values depending upon the
memory available in the system. This is
known as address space.
 Two types of address space
◦ physical
◦ logical
Features Logical address space Physical address space

Size Starts from 0 to the size of May not start from 0


code and data.

Appearance Contiguous Non contiguous

Cost Identical for each reference. May vary with respect to


reference

Name Generally referred to by the Named by the memory


names in the program units offered by the
System.
Logical address in a) sequence b) overlay
 Two types of addressing scheme
◦ Absolute Addressing scheme
◦ Relative Addressing scheme
 The code in absolute addressing scheme is
loaded into primary memory at a specified
location in the program.
 Code in relative addressing scheme can be
loaded at any available memory space.
 Suppose a program is loaded into primary
memory.
 This the instruction can be specified by the
physical location, which is known as absolute
address of program.
 Otherwise this instruction can be specified
relative to start of program. this is known as
relative address of this instruction of data.
High Level language
Program
Compiler
Assembly language
Program
Assembler
Mnemonic language
Program

Machine language
program
Interface

Control Signal
 A language translator is a program that
translates source program into equivalent
object language program.
Source program Object program Translator
C++,Java Assembly, IC Compiler
Assembly lang. Machine code Assembler
Object code Executable code Linker/Loader
Macros Text Text Macro Processor
Troff/Text/HTML PostScript Document
Formatter
 Compiler consists of following phases:
◦ Lexical
◦ Syntax
◦ Semantic
◦ Intermediate code generation
◦ Code optimizer
◦ Code generator
 Compiler-compiler
 Cross compiler
A compiler-compiler or compiler generator is a programming
tool that creates parser, interpreter, or compiler from some
form of formal description of language and machine. The
earliest and still most common form of compiler-compiler is
a parser generator, whose input is a grammar of
a programming language, and whose generated output is
the source code of a parser often used as a component of a
compiler.
The ideal compiler-compiler takes a description of a
programming language and a target instruction
set architecture, and automatically generates a usable compiler
from them.
A cross compiler is a compiler capable of creating executable
code for a platform other than the one on which the compiler
is running.
For example, a compiler that runs on a Windows 7 PC but
generates code that runs on Android Smartphone is a cross
compiler.
 A computer program that accepts the source program written
in high level language as input and executes it.
 Difference between compiler and interpreter does not produce
object program to be executed, it executes source program
itself.
 A pure interpreter will analyse a source program statement
each time it is to be executed.
 In the first phase , it analyses the source program as much as a
compiler and translates it into an internal form.
 In the second phase it interprets or executes this internal form
of the source program.
 An emulator E is a system program running in machine A and
accepts a source program P (say in assembly lang.) for
machine B.
 The emulator translates the program P in an object module that
is executable in machine A.
 The assemble of machine B can directly produce an object
module for the machine B.
 a preprocessor is a program that processes the source
program before it is passed to the actual translator.
 The output is said to be a preprocessed form of the
input data, which is often used by some subsequent
programs like compilers.
 The amount and kind of processing done depends on
the nature of the preprocessor; some preprocessors are
only capable of performing relatively simple textual
substitutions and macro expansions, while others have
the power of full-fledged programming languages.

Macroprocessor
 Text Editor
 Debugging Aids
 The development of system software depends
on both
 The computer hardware and
 The skill of system software Analyst.
 Cost of System Software
◦ It depends on
 Software development cost
 The hardware cost
 System software is basically a translator under one of
the following categories.
◦ High Level Translator
◦ Low Level Translator
◦ Lowest Level Translator
 When we execute the translated object module
produced for OS and machine H/W via other OS and
H/W, then we need another low level translator OCT.
◦ The task of OCT, is to translate the object module for OS1 &
H/W1 to object module for OS2 & H/W2

You might also like