Wikipedia says:
A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer. Programming languages can be used to create programs that specify the behavior of a machine, to express algorithms precisely, or as a mode of human communication.
But is this true? It occurred to me in the shower this morning that a programming language might just be a set of conventions, something that both a human and an appropriately arranged compiler can interpret. If that’s the case, then isn’t it this definition of a programming language misleading? If that isn’t the case, then what’s the difference between a compiler and the language it compiles?
Thanks!
z.
I understand what you are saying, and you are right. Describing a programming language as a “machine-readable artificial language designed to express computations that can be performed by a machine” is unnecessarily specific. Programming languages can be more broadly generalized as established descriptions of tasks (or “a set of conventions”) that allow one entity to control the behavior of another. What we traditionally identify as programming languages are just a layer of abstraction between machine code and programmers, and are specifically designed for electronic computers.
Programming languages are not limited to traditional computers (see the K’NEX Computer), and aren’t even necessarily limited to computational devices at all. For example, when I am pleased with my dog’s behavior, he gets a treat. When I am displeased, he gets nothing. Over time the dog learns the treat/no treat programming and I can use the treats to control his behavior (to an extent).