A scripting or script language is a programming language that supports scripts, programs written for a special run-time environment that automate the execution of tasks that could alternatively be executed one-by-one by a human operator.Scripting languages are often interpreted (rather than compiled). Primitives are usually the elementary tasks or API calls, and the language allows them to be combined into more complex programs. Environments that can be automated through scripting include software applications, web pages within a web browser, the shells of operating systems (OS), embedded systems, as well as numerous games.
The term "scripting language" is also used loosely to refer to dynamic high-level general-purpose languages, such as Perl, Tcl, and Python, with the term "script" often used for small programs in such languages, or in domain-specific languages such as the text-processing languages sed and AWK.
Scripting is often contrasted with system programming, as in Ousterhout's dichotomy or "programming in the large and programming in the small". In this view, scripting is particularly glue code, connecting software components, and a language specialized for this purpose is a glue language.
Glue languages are especially useful for writing and maintaining:
- custom commands for a command shell;
- smaller programs than those that are better implemented in a compiled language;
- "wrapper" programs for executable, like a batch file that moves or manipulates files and does other things with the operating system before or after running an application like a word processor, spreadsheet, data base, assembler, compiler, etc.;
- scripts that may change;
- rapid prototypes of a solution eventually implemented in another, usually compiled, language.