0% found this document useful (0 votes)
19 views

SS Introduction

Software is a set of instructions that operate computers and execute tasks. System software controls hardware resources and provides an interface for users and applications. System software includes operating systems, language processors, and device drivers. Application software helps users perform specific tasks like accounting or graphics.

Uploaded by

Sudhakar Selvam
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

SS Introduction

Software is a set of instructions that operate computers and execute tasks. System software controls hardware resources and provides an interface for users and applications. System software includes operating systems, language processors, and device drivers. Application software helps users perform specific tasks like accounting or graphics.

Uploaded by

Sudhakar Selvam
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

SOFTWARE

Software is a set of instructions, data or programs used to


operate computers and execute specific tasks.

Software instructions tells a computer what to do.


SOFTWARE TYPES
SYSTEM SOFTWARE
Operating System: manages all the resources such as memory, CPU, printer, hard disk, etc., and
provides an interface to the user, which helps the user to interact with the computer system.
Examples of operating systems are Linux, Apple macOS, Microsoft Windows, etc.

Language Processor: converts programs written in high-level programming languages like Java, C,
C++, Python, etc (known as source code), into sets of instructions that are easily readable by
machines(known as object code or machine code).

Device Driver: A device driver is a program or software that controls a device and helps that device
to perform its functions. Every device like a printer, mouse, modem, etc. needs a driver to
connect with the computer system eternally.
SYSTEM SOFTWARE
System software is computer software designed
• to operate and control the computer hardware
• to provide a platform for running application software.
SYSTEM SOFTWARE
System software consists of a variety of programs that
support the operation of a computer
• Assembler
• Linker
• Loader
• Macro processor
• Text editor
• Debugger
• File System
• Database
SYSTEM SOFTWARE
The role of Systems Software –interface
between users, application software and
hardware
APPLICATION SOFTWARE

• Application software, also known as an application.

• Application is computer software designed to help the user to


perform specific tasks.

• Examples include enterprise software, accounting


software, and graphics software and media players.
Difference between System Software and
Application Software

System Software Application Software


System software consists of a Application software is a set of one
variety of programs that support the or more programs, designed to solve
operation of a computer. for example a specific problem. for example
operating system, assembler, loader, employee management system,
linker, and microprocessor and text bank management system, and
editor. media player.
System software application software is not
is system dependent a system dependent
system software works directly with application software works directly
the hardware with the system software.
system software are written in variety of programming languages
machine or assembly languages. can be used to write application
software, such as C , Java and .NET
Types of System Software
 Compiler
 Assembler
 Linker
 Loader
 Macro processor
 Text editor
 Debugger
 File System
 Database
Compiler
The compiler is software program that converts a program written in a high-
level language (Source Language like C, C++, Java) to low-level language
(Machine Language).
COMPILER TYPES
Cross Compiler: that runs on a machine ‘A’ and produces a code for another
machine ‘B’.
It is capable of creating code for a platform other than the one on which the
compiler is running.

Source-to-source Compiler or transcompiler or transpiler: is a compiler that


translates source code written in one programming language into the source
code of another programming language.
COMPILER TYPES
Incremental Compilers: is a compiler, which executes the
recompilation of only a changed source instead of compiling the
complete source code.

Single-Pass Compiler: Single pass compiler reads the code only


once and then translates it. The one-pass compiler passes only once
through the parts of each compilation unit.

Multi-Pass Compiler: A multi-pass compiler can process the source


code of a program multiple times.

• In the first pass, the compiler can read the source code, scan it, extract the
tokens and save the result in an output file.
• In the second pass, the compiler can read the output file produced by the first
pass, produces machine code.
Assembler

Assembly Level language Machine level language


program Assembler program
Data Structures
• Operation Code Table (OPTAB)
• Symbol Table (SYMTAB)
• Location Counter (LOCCTR)

OPTAB

Source program Pass 1 Intermediate file Pass 2 Object program

LOCCTR SYMTAB
Load-and-Go Assembler
• Load-and-go assembler generates their object code in
memory for immediate execution.
• No object program is written out, no loader is needed.
Loaders and Linkers
Linker

Object File 1

Executable File
Object File 2

Object File 3
Loader

Secondary Loader Main memory


memory
200 Prog A 200
201 A=10 201
202 B=20 202
203 C=[201]+[202] 203
204 End 204
205
206
LOADER 207
208
209
210 Prog A
211 A=10
212 B=20
213 c=[201]+[202]
214 End
215

Secondary memory
Main memory
Reason for Program Relocation
• To increase the efficiency of the machine

• Want to load and run several programs at the same time


(multiprogramming)

• Must be able to load programs into memory wherever there is


room

• Actual starting address of the program is not known until load time
Processes to Run an Object Program

• Loading
Absolute loader
– Brings object program into memory
• Relocation Loader

– Modifies the object program where


absolute addresses are specified
Linking loader
• Linking
– Combines two or more separate
object programs and supplies
information needed to allow cross- Linker

references.
A Simple Bootstrap Loader

for SIC/XE Machine


Macro processor

Source Code Macro


processor Expanded
(with macro)
Source Code
Macro Processor
• Recognize macro definitions
• Save the macro definition
• Recognize macro calls
• Expand macro calls

Source
Macro Expanded Compiler or obj
Code
(with macro)
Processor Code Assembler
Copy code -- Example
Source Expanded source
STRG MACRO .
STA DATA1 .
STB DATA2 .

{
STX DATA3 STA DATA1
MEND STB DATA2
. STX DATA3
STRG .

{
. STA DATA1
STRG STB DATA2
. STX DATA3
. .
Macro vs. Subroutine
• Macro
– the statement of expansion are generated each time the macro are
invoked
• Subroutine
– the statement in a subroutine appears only once
Parameter Substitution -- Example
Source Expanded souce
STRG MACRO &a1, &a2, &a3 .
STA &a1 .
STB &a2 .

{
STX &a3 STA DATA1
MEND STB DATA2
. STX DATA3
STRG DATA1, DATA2, DATA3 .

{
. STA DATA4
STRG DATA4, DATA5, DATA6 STB DATA5
. STX DATA6
. .
Text editor
A text editor is a type of program used for editing plain text files.

Editors or text editors are software programs that enable the user to create
and edit text files.

Windows: Notepad, WordPad


UNIX OS: vi, emacs, Jed, Pico
Text editor
Types of Editors

Line editor: you can only edit one line at a time or an integral number of lines.
Ex : Teleprinter, edlin, teco

Stream editors: the file is treated as continuous flow or sequence of characters


instead of line numbers, which means here you can type paragraphs.
Ex : Sed editor in UNIX

Screen editors: the user is able to see the cursor on the screen and can make
a copy, cut, paste operation easily. It is very easy to use mouse pointer.
Ex : vi, emacs, Notepad

Word Processor: it allows one to use some format to insert images, files,
videos, use font, size, style features.

Structure Editor: Structure editor focuses on programming languages. It


provides features to write and edit source code.
Ex : Turbo C, Netbeans IDE
Debugger
A debugger or debugging tool is a computer
program that is used to test and debug other programs.

• Break points
• Watch window
Previous Year Questions
5. The language which a computer can understand is

a. high level language b. assembly language


c. machine language d. all of the above
Previous Year Questions
5. The language which a computer can understand is

a. high level language b. assembly language


c. machine language d. all of the above
Previous Year Questions
11. A linker
a. is a software programme
b. combines part of a programme
c. is a programme used to load monitor into main memory
d. Both (a) and (b)
Previous Year Questions
11. A linker
a. is a software programme
b. combines part of a programme
c. is a programme used to load monitor into main memory
d. Both (a) and (b)
Previous Year Questions
15. An assembler in a computer system prepares
a. machine-language programme from a symbolic language
programme
b. object programme
c. assembles computer instructions and data in the machine
d. None of these
Previous Year Questions
15. An assembler in a computer system prepares
a. machine-language programme from a symbolic language
programme
b. object programme
c. assembles computer instructions and data in the machine
d. None of these
Previous Year Questions
20. Which one of the following is not system software

a. MS DOS b. UNIX C. Windows d. JAVA


Previous Year Questions
20. Which one of the following is not system software

a. MS DOS b. UNIX C. Windows d. JAVA


Previous Year Questions
67 An 'Assembler' for microprocessor is used for
a. assembly of processors in a production line
b. creation of new programs using different modules
c. translation of a program from assembly language to machine
language
d. Translation of a higher-level language into English text.
Previous Year Questions
67 An 'Assembler' for microprocessor is used for
a. assembly of processors in a production line
b. creation of new programs using different modules
c. translation of a program from assembly language to machine
language
d. Translation of a higher-level language into English text.
Previous Year Questions
Previous Year Questions

You might also like