Software:
- Software is a collection of data and computer instruction that tell the computer how to work.
- Software is a set of instruction or programs, instruction computer to do specific task.
- A digital automated process is called Software.
- Whenever the software is providing graphical user interface then it is called digitalized, if the process is completed without human interaction then it is Automated.
- A software is the collection of n number of programs.
- A program is the set of instruction written using some programming language to perform some particular task.
- n number of program combining together as a single unit is software tool or software component.
Computer software can be divided into two distinct categories. These are:
- System Software
- Application Software
1. System Software:
- System software is a type of software that is designed to communicate with the hardware or even application software. It acts as an interface between the hardware and the computer programs whereby it coordinates the tasks between these two components of a computer system.
- There are different types of system software. They include the operating system, language processors and device drivers. A typical system software ensures that the hardware handles its tasks successfully. For instance, an operating system does memory management and file handling for hardware. Drivers control the performance of the monitor and other devices such as printers.
- System software serves as base for application software and helping the computer to operate more efficiently. It is also responsible for managing hardware components.
- The system software is usually written in C and assembly level language.
- Some examples of system software are:
- Device Drivers,
- Operating System,
- BIOS,
- Compiler,
- Text Editors.
2. Application Software:
- Application software is the type of software that is designed to accomplish specific tasks within the operating system. Some of these tasks include handling documents, handling calculations, image editing, video editing among others.
- Client specific all projects are application software.
- Some of the application software are;
- MS office Suits.
- Database Systems,
- Games,
- Educational Software.
System Software Vs Application Software.
We can now look at the differences between these two types of software:
System Software
|
Application Software
|
|
Usage
|
System software is used to manage and control the
computer hardware and application software.
|
Application software performs specific tasks
depending on how it has been designed. It cannot perform any other task that
is beyond its scope
|
Installation
|
System software is installed into the computer
when the operating system is being installed.
|
Application software is installed only when a
user needs them. For instance, you will only install a photo editing software
when you want to edit some photos.
|
Execution time
|
System software will start running once you turn
your computer on. It will continue running until the time that you will turn
off your computer.
|
Application software will run only when required
to do so. You will start a word processor when you need to open or prepare
some documents.
|
Abstraction
|
From a general point of view, the user does not
interact with system software. This is because the software works in the
background.
|
For application software, the user will have
direct interaction with the software. In fact, the user controls how the
software operates.
|
Dependency
|
A system software runs independently. Its
operation does not depend on the behavior of other software. Instead, it is
the one that provides conditions for other software to run effectively.
|
Application software cannot run independently.
They depend on the conditions that are provided by the operating system.
|
Complexity
|
Programming system software is quite complex.
This is because it requires a programmer to have full knowledge of the
underlying system hardware and low-level languages.
|
Programming of application software is not that
complex. A programmer only needs to have knowledge of the underlying system
software and high level-languages
|
Language:
- The basic purpose of the language is to communicate.
- We as a human interact with each other using language. And basic element of a language is letters. If we say h-o-u-s-e it is meaningless, but if we say house, others can understand what we are saying.
- What we are actually doing is we are using code in order to access & communicate with others. This code is our interface to the world.
- Consider how a deaf-mute person interact to others. Here his code is not speaking language but it is sign language. But for him this sign language is interface to the outer world.
Programming Language:
- Computer is an electronic device which accepts the instruction from the user, according to the given instructions it produces the result.
- The basic purpose of the programming language is to communicate.
- Computer understand only one language i.e., binary language (0 and 1).
- Imagine how much practical it will be to write whole instruction to computer using just 0's and 1's.
- As a programmer when we require to interact with a computer, we need a communication channel i.e., Programming Language.
- Programming languages are an interface between human and computers, they allow us to communicate with computers.
- As a programmer if we know only programming language then it is not possible to interact with computer because computer can understand only Binary language.
- In this case we need a mediator which can convert programming language code into Binary language code for computer.
- For this we use Translator software to convert programming language instructions into binary format instructions
- Programmer gives the instructions in some programming language, the translator will convert programming language code into binary code instruction, then according to the binary instruction computer will provide result or software.
Translator:
- A translator or a programming language processor is a computer program that performs the translation of a instruction written in a given programming language into a functionally equivalent program into computer understandable language i.e., Binary language, without losing the functional or logical structure of the original code.
- A translator also include translation between high-level and human readable computer language such as C, C++, Java into intermediate-level language such as Java Byte code, Low-level language as assembly language and machine codes.
- Translators are classified into three types:
- Compiler
- Interpreter
- Assembler
- Compiler:
- The programming language processor that reads the complete source program written in high-level programming language as a whole in one go and translates it into an equivalent program in machine language is called as a Compiler.
- In a compiler, the source code is translated to object code successfully if it is free of errors.
- The compiler specifies all the errors at the end of compilation process with line numbers when there are any errors in the source code. The errors need to be rectified before the compiler can successfully recompile the source code again.
- Interpreter:
- The translation of single statement of source code into machine code is done by programming language processor and executes it immediately before moving on to the next line is called an Interpreter.
- If there is an error in the statement, the interpreter terminates its translating process at that statement and displays an error message.
- The interpreter moves on to the next line for execution only after removal of the error.
- An Interpreter directly executes instructions written in a programming language without previously converting them to an object code or machine code.
- Assembler:
- The Assembler is used to translate the program written in Assembly language into machine code.
- The source program is a input of assembler that contains assembly language instructions.
- The output generated by assembler is the object code or machine code understandable by the computer.
Classification of Programming Language.
1. Low-Level Programming Language:
- A low-level language is a programming language that deals with a computer's hardware components and constraints, it deals with hardware registers by name known as assembly language.
- Assembly language is the best example of low level language, this is in between machine language and high level language.
- A low-level programming language may also be referred to as a computer's native language.
- A low level language does not need a compiler or interpreter to run the program, the processor run low-level code directly.
- Low-level programming languages are machine oriented.
- Machine language and Assembly language are popular example of low level language.
2. High-Level Programming Language:
- The high-level languages are closer to human language.
- A programming language such as C, C++, Java that enables to write programs which is understandable to programmer (Human) and can perform any sort of task, such languages are considered as high-level because they are closer to human languages.
- High level languages must use interpreter, compiler or translator to convert human understandable program to computer readable code (machine code).
- High level languages are problem oriented.
- The main advantage of high level language over low level language is that they are easier to read, write and maintain.
