It is a set of instructions or commands to solve a specific task for computer.
software and its type
They are the computer programs / instructions or data that make the hardware work or performs certain task. Generally software can be categorized as system software and application software. The detail descriptions of system software and application software along with their sub-categories are given below:
It is a type of computer software designed to operate the computer hardware and use to running in a application software. It is used to managing, integrating and controlling the hardware component of computer. It include device drivers, operating systems etc. functions of system software are given below:
- To handle all the input and output devices. Coordinate or manage the other resources like memory.
- To provide the platform for application software.
software which enable the user to perform certain task which are directly associate with user benefits. It utilizes capacities of a computer directly to a dedicated task. Application software includes word processing software, database software, multimedia software, graphics software etc. It can be categorized as:
Tailored (custom) software
It is software that is make for personal use or particular organization not for general purpose is called tailored software. Eg: software use in ioe exam, slc result processing software, hotel management software etc.
Packaged (off the shelf) software
It is software which performs some specific function or calculation which is useful for more than one computer user and is sufficiently well documented to be used without modifications on a defined configuration of some computer system. Eg: Ms- office, adobe package etc.
It is software which are used to fine tuning or increase a performance of computer. Eg: antivirus software.
Difference between application software and system software.
|System software||Application software|
|It is built for running a computer hardware and application software.||It enable a user to perform a specific task which are directly associated with user benefits.|
|System software provides the platform for the application software to run on the system.||application software provides the platform for the end users to use the capacities of the system to solve various problems.|
|Without system software, system can’t run.||While without application software system always runs.|
|Low level languages are used to write the system software.||While high level languages are used to write the application software.|
|Eg: operating system, device driver, language translator.||Eg: ms office word, ms office excel, adobe photoshop etc.|
Programming Language is a standardized communication technique for describing instructor and command to a computer. Each programming language has a set of syntactic and semantic rules used to define computer programs.
Types of programming language
Low Level Languages
Those languages which are closer to the hardware. They are specific to the hardware so cannot run on different hardware. Knowledge of hardware is required to develop such programs using low level languages. It can be divided into Machine language and Assembly language.
Machine language is the closest language to the hardware in which the instructions are given in the form of 0’s and 1’s. Input operation is carried out by using punch card and switch panel.
o It makes fast and efficient use of computers.
o Translator is not required.
- Programmer should have hardware knowledge.
- All memory addresses and operation codes are needed to be remembered.
- Testing and Debugging are difficult to carry out.
- They are machine dependent.
Assembly language are those languages which used mnemonics in place of 0’s and 1’s. Each instruction is represented by symbols instead of just using bits. The program written in assembly languages must be converted to machine language. The symbol are such as ADD for addition , CNP for compare , SUB for subtraction.
- Easier to understand and use as compared to machine language.
- Programs are normally very fast and very compact.
- Debugging and testing is easy compare to the machine level language.
- Good Understanding of the hardware is required.
- Machine dependent
High Level language
High level language is a language with strong abstraction from the details of the computer and uses natural language elements, making the process of developing a program simpler and more understandable relative to a lower level language. These languages are English like and are very close to the human languages. They are machine independent. High level languages are required to convert into machine level languages with the help of the translators. Rather than dealing with registers, memory addresses and stacks, they deal with variables, arrays, objects, functions, loops, threads etc. it can be categorized as:
Procedural oriented languages (Imperative languages):
language that specify the series of well structured step and their procedure within a programming context to compose a program is called procedural oriented language. In these languages one or more related blocks of statements that perform some complete function are grouped together into a procedure. If the same sequence of operations is needed elsewhere in the program, a simple statement can be used to refer back to that procedure. A procedure may be a list of instructions directing a computer, step by step, what to do, usually having a linear order of execution from the first statement to the second and so forth with occasional loops and branches. Procedural programming languages include C, C++, FORTRAN, Pascal and BASIC.
Problem Oriented Languages (Declarative languages):
programming language that implements object and their associate procedure within a programming context to compose a program is called problem oriented language. These languages were developed to solve specific problems or develop specific applications. These languages focus on what work is to be performed rather than how to perform the work. These languages are usually limited to a very specific application and it might use syntax that is never used in other programming languages. These languages are specially focused on database management systems. SQL, CSS, FUSION is some of the examples of problem oriented languages.
There languages are supposed to have the form of human cognition and human intelligence. With these languages human can easily communicate or interact with computers without the requirement of knowledge of any special programming languages. These are generally used in Artificial Intelligence and Expert System. LISP and PROLOG are few natural languages commonly in practice.
Advantages of High level Languages
- Support high level of abstraction.
- Easier to learn and use. Since the languages are very close to human languages. It is user friendly.
- Easier to test and debug.
- They are machine independent. Software written in high level language can be used in any computer system with different architecture.
- Easily find the logic of problems.
Disadvantages of High Level Languages
- Requires more memory space and time.
Difference between high level language and low level language.
|High level language||Low level language|
|They are problem oriented.||They are machine oriented.|
|They are use for developing a application software.||They are use for developing a system software.|
|High level language is converted machine level language by using compiler or interpreter.||Low level language is converted machine level by using assembler.|
|It is human readable.||It is machine readable.|
|Program in high level language is slow in execution.||Program in low language is fast in execution.|
It is a process of converting a high level language into machine level language to executable form(binary form). It is convert fallowing ways:
Compiler and compilation process
The program which converts high level language into machine level language or executable form is called compiler and this process is called compilation. It is also defined as it is a process of converting a source code into object code. The process is shown in figure:
First, the compiler converts source code into object code then produce a .s file extension. The object code is similar to the machine code. Then, object code is linked with library files by linker which produce a binary files.
Difference between compiler and interpreter:
|Compiler converts all statement source code into object code and finally executable code resulting an .exe file.||When interpreter converts each statement before executing it. It does not produce a .exe file.|
|It takes some time to producing a executable program.||It produce a executable code immediately.|
|Once compiled program does not require recompile for next run so it is fast and efficient.||For next running it requires recompile from beginning so it is slower process.|
|C , C++, Fortran etc are example of compiled language.||LISP, BASIC are interpreted language|
Difference between source code and object code
|Source code||Object code|
|It is a collection of computer instructions which is written in human readable programming language.||It is a code produce by converting a source code by using a translator.|
|It is readable by human.||It is readable by computer.|
|It is generate by human.||It is generate by compiler.|
|It is form of plain text.||It is in the binary form.|
C is intermediate or middle level programming language:
C is often called a middle-level computer language. This does not mean that C is less powerful, harder to use, or less developed than a high-level language such as BASIC or Pascal, nor does it imply that C has the cumbersome nature of assembly language (and its associated troubles). Rather, C is thought of as a middle-level language because it combines the best elements of high-level languages with the control and flexibility of assembly language. As a middle-level language, C allows the manipulation of bits, bytes, and addresses— the basic elements with which the computer functions. Despite this fact, C code is also very portable. Portability means that it is easy to adapt software written for one type of computer or operating system to another type. For example, if you can easily convert a program written for DOS so that it runs under Windows 2000, that program is portable.