Software is a set of instructions, data or programs used to operate computers and execute specific tasks. It is the opposite of hardware, which describes the physical aspects of a computer. Software is a generic term used to refer to applications, scripts and programs that run on a device. It can be thought of as the variable part of a computer, while hardware is the invariable part. The two main categories of software are application software and system software. A programming language is a vocabulary and set of grammatical rules for instructing a computer or computing device to perform specific tasks. The term programming language usually refers to high- level languages such as BASIC, C++, COBOL, JAVA, FORTRAN, Ada, and Pascal. Each programming language has a unique set of keywords and a special syntax for organizing program instructions. Programming languages are more complex compared to human language.