Software enables a computer to carry out a specific task.Software is a set of Programs, executed by hardware. A program is a set of ordered instructions. The efficiency of a program depends on the programming language it is written in. The two major types of programming languages are low level language and high level language. Low level languages are machine oriented. Examples are machine language and Assembly language. Machine language is the only language that computer can execute directly. In Assembly language instructions are written using symbolic names for computer operations. However, an assembler converts assembly program into machine language. High level languages, on the other hand, offer English like environment. The programs written in high level language are converted into machine language using compiler or interpreter.
Different programming paradigms are procedural programming, modular programming, Object-Oriented Programming. Procedural Programming also called Imperative Programming, focuses on processing rather than data. Object Oriented Programming is an extension of procedural programming, in which programs are made up of collection of individual units called objects that have a distinct purpose and function. Object-oriented language supports all the features of OOPs.