AFAIK, there is no formal (canonical) definition of a programming language, but the first sentence of http://en.wikipedia.org/wiki/Programming_language pretty much nails it.