SPCC Module 1
SPCC Module 1
Software
MODULE 1
CONTENT
• Concept
• Programming Language Domain
• Generation of Languages
• System Program and Programming
• System Software and Application Software
• Examples of System Software
CONCEPT
Semantic Gap
Application Execution
Domain Domain
CONCEPT
Specification Execution
Gap Gap
Application PL Execution
Domain Domain Domain
• Languages are used for communication
• Natural Mode of Communication: Human
Languages
• Generation of Languages:
• First Generation Language (Machine Language)
• Second Generation Language (Assembly Language)
• Third Generation Language (High Level Language)
GENERATION OF LANGUAGES
1ST GENERATION 2ND GENERATION 3RD GENERATION
• Also known as Machine Language • Also known as Assembly Language • Also known as High Level Language
• Binary Language – Uses '0' and '1' • Specific Meaningful words Mnemonics • Syntax uses English keywords which
are easy to understand
• Easy Understandable instructions to • Not easily understood by machine
computers • Languages are not machine oriented
• Program need to be translated into
• Used for internal structure of program machine language • Program need to be translated
into machine language
• Advantage • The translator is known as 'Assembler'
Increase speed of Processing
• Slow processing in comparison with 1st
and 2nd Generation Languages
No need of translation
• The translator is known as 'Compiler'
• Disadvantage
Difficult to Learn • Example: C, C++, Java
Error Prone
• A language processor is software which bridges a specification or
execution gap.
requirements
User
• Application Program or Language Processors:
• provides a set of services for executing programs and using resources of the
Hardware computer
System Software
• It is a collection of program that facilitates execution of programs
User
• It contains an hierarchical arrangement of layers in which
2. Efficient Use
Facet Example
GOALS OF
Fulfilment of Necessity Ability to execute the program
SYSTEM Use the File System
SOFTWARE Good Service Speedy response to Computational Request
User friendly Interfaces Easy-to-use Command
Graphical User Interfaces (GUI)
New Programming Concurrent Programming
Model
Web – oriented Features Means to set up web enabled servers
Evolution Add New Features
Use new Computer Technologies
2. Efficient Use
• System software must efficiently use fundamental
computer resources like CPU, Memory, Disks and
other I/O Devices
• Poor efficiency can occur if a program does not use
GOALS OF the resource allocated to it which further results in
SYSTEM snowballing effect.
SOFTWARE
• Snowballing Effect: If the resource is allocated to a
user, it is denied to other programs that need it.
These programs can’t execute and hence the
resources allocated to them also remains idle
• To achieve efficiency, the system software must
minimize the waste of resources by programs and
its own overhead.
3. Non-Interference
GOALS OF The system software must ensure that no person
SYSTEM
SOFTWARE can illegally use programs and resources in the
system or interfere with them
• System Sofware: It is a collection of programs
• System Program: Each Program in the collection
of system software
• Coordinates the functions and activities of hardware • Any tool that functions and is operated by means of
and software computer and allow end user to accomplish specific task
• Controls operations of computer hardware • Most common programs run in foreground of computer
• Supports variety of programs that enables smooth • Tend to perform useful task which are not related with
• It provides infrastructure over which programs can • Dependent on system software to communicate to
• User can focus on application rather than internal • Examples: Industrial Automation, Office Suite, Media
System Software
System Software
Operating
System
• Mediator between User Programs and
Hardware
System Software
Operating Device
System Drivers
Utilities
System Software
System Software
System Software
System Software
• Compilers normally are bundled together with the editors and other
programs into an Interactive Development Environment or IDE
Debugger
TEXT EDITORS • Debuggers are program that can be used to determine execution
AND errors in a compiled program.
DEBUGGER • It is also packaged with a compiler in an IDE.
• The debugger keeps track of most or all source code information, such
as line numbers names of variable and procedures.
System Software