A programming language is an artificial language for expressing computer
programs.
Programming languages typically allow software to be written in a human
readable manner.
Execution of a program requires an implementation. There are two main
approaches for implementing a programming language – compilation, where
programs are compiled ahead-of-time to machine code, and interpretation, where
programs are directly executed. In addition to these two extremes, some
implementations use hybrid approaches such as just-in-time compilation and
bytecode interpreters.
The design of programming languages has been strongly influenced by computer
architecture, with most imperative languages designed around the ubiquitous
von Neumann architecture.