The term "scripting language" is used to describe a high-level programming language with relatively transparent syntax. The most popular example is HyperTalk, the language of HyperCard. A "macro language" is a series of instructions used to extend the functionality of macro key recording. For example, Microsoft Word includes WordBASIC, an extensive implementation of the BASIC programming language.
A "batch language" is usually implemented at the level of the operating system, and is primarily used for linking system commands together to perform more powerful operations. Users of IBM-compatibles are familiar with DOS's rudimentary batch language. On the other end of the scale, UNIX has a very extensive implementation which is capable of producing sophisticated applications from system commands.
While they are not often recognized as such, all of these are programming languages. In a Byte round-table discussion titled "What is a Programming Language?" (Allen et al.), Don Crabb defines the term in question as:
any artificial language that can be parsed by a machine and used to create or implement any algorithm. That means that simple languages with only a few verbs, which can be used to implement different Turing machines, are, indeed, programming languages. (103)
He, and others, argue strongly that HyperTalk is a programming language. Much of this terminology is simply a matter of perception. Most computer users view programming as something which is difficult. Tools marketed to this public must avoid the dreaded "p" word. Crabb again:
We deliberately don't use the word "programming"
in our intro computer science courses for humanity students because
they are scared of it. Then after 10 weeks, they discover that they
have been programming all along. (104)
Program code may also be used expressively, as an artistic element in and of itself.