In computer science, computer languages are systems of communication with a computer. Such languages are used to create computer code or program code, the set of instructions forming a computer program which is executed by the computer. It is one of two components of the software which runs on computer hardware, the other being the data.
Computers can only execute the machine code instructions which are part of their instruction set. Because these instructions are difficult for humans to read, and writing complex programs in machine code or other low-level programming languages is a time-consuming task, most programmers write their source code in a high-level programming language. This source code is translated into machine code by a compiler or interpreter, so that the computer can execute it to perform its tasks. A compiler produces object code which is usually in machine language, but may also be in an intermediate language which is at a lower level than the source. A runtime system is often used to execute object code by linking it with commonly used libraries. Bytecode is a lower level of the source which is designed for more efficient interpretation by interpreters.