A computer language is a "language" made up of formal syntax and semantics that allow users to communicate instructions to computer systems. Programming languages are by far the most common examples of computer languages, so the terms "computer language" and "programming language" are often used interchangeably. A computer cannot work with human language and, in most cases, a human cannot efficiently work in computer binary, so a higher-level language is necessary to allow programmers to give instructions to computer systems. There are several types of computer languages. Different programmers choose to use one or more languages because of personal preference, the particular capabilities of a given language, and the demands of the project at hand.
Syntax and semantics, or structure and meaning, are the two defining characteristics of computer language and can be compared to the grammar and vocabulary of human languages. Different programming terms must be placed in particular orders and marked by specific punctuation and spacing to be understood by the computer. In general, these restraints on computer language are much stricter than those on human languages. A human language can often still be understood even with grammar and word usage problems, but the interpretive powers of computers are comparatively limited; even minor spacing issues will, in many languages, result in an error message, as the computer will not be able to follow the instructions as given.
Human languages are intended to allow individuals to communicate with each other. This can involve discussion, command, interrogation, declaration, and many other forms of communication. The purpose of computer language, on the other hand, is generally to provide explicit instructions for the computer to follow, so such languages are generally imperative in nature. Some computer languages, however, are based primarily on the use of logical expressions or mathematical formulas. Reducing computer language to mathematical or logical expressions can help to reduce the possibilities of side effects that can result from some imperative expressions, but it can also make programming more difficult for those without extensive mathematical skills.
Computer languages are modified and developed over time to better meet the needs of their users and to keep up with technological advancements. Modifications include changes in syntax and semantics as well as increases and additions to overall functionality. A modern computer language may, for instance, be updated from an older version to make use of processors with multiple cores. Languages are also optimized for programming applications for mobile devices.