Thursday, April 10, 2008


Scripting redirects here. For other uses, see script.
Scripting languages (commonly called scripting programming languages or script languages) are computer programming languages that are typically interpreted and can be typed directly from a keyboard. Thus, scripts are often distinguished from programs, because programs are converted permanently into binary executable files (i.e., zeros and ones) before they are run. Scripts remain in their original form and are interpreted command-by-command each time they are run. Scripts were created to shorten the traditional edit-compile-link-run process. The name 'script' is derived from the written script of the performing arts, in which dialogue is set down to be interpreted by actors and actresses--the programs. Early script languages were often called batch languages or job control languages. Scripting languages can also be compiled, but because interpreters are simpler to write than compilers, they are interpreted more often than they are compiled.
The term scripting language is not technical, though embedding and dependence on a larger system are usually criteria. In computer games, scripts extend game logic, tailoring the game engine to particular game data. Scripts also make applications programmable from within, so that repetitive tasks can be quickly automated. Of course, not every scripting system that grows beyond its original design and delegation acquires a new name. Full-blown in-game languages such as UnrealScript exist, and JavaScript is a very influential standard, supported by virtually every browser on the market.

Description

Types of scripting languages

Main article: Shell script Job control languages and shells
With the advent of Graphical user interfaces came a specialized kind of scripting language for controlling a computer. These languages interact with the same graphic windows, menus, buttons, and so on that a system generates. These languages are typically used to automate repetitive actions or configure a standard state. In principle, they could be used to control any application running on a GUI-based computer; but, in practice, the support for such languages depend on the application and operating system. Such languages are also called "macro languages" when control is through keyboard interaction.

AutoHotkey
AutoIt
Expect
Automator Scripting programming language GUI Scripting
Many large application programs include an idiomatic scripting language tailored to the needs of the application user. Likewise, many computer game systems use a custom scripting language to express the programmed actions of non-player characters and the game environment. Languages of this sort are designed for a single application; and, while they may superficially resemble a specific general-purpose language (e.g. QuakeC, modeled after C), they have custom features that distinguish them.

Action Code Script
ActionScript
AutoLISP
BlobbieScript[1]
Emacs Lisp
Game Maker Language
HyperTalk
IPTSCRAE
Lingo
LotusScript
MATLAB
MAXScript
Maya Embedded Language
mIRC script
NWscript
QuakeC
UnrealScript
Vim Scripting Language
Visual Basic for Applications
ZZT-oop Application-specific languages
An important type of application-specific scripting language is one used to provide custom functionality to dynamic web pages. Such languages are specialized for web applications and other Internet uses. However, most modern web programming languages are powerful enough for general-purpose programming.

Web programming languages

Active Server Pages
Java Server Pages
ColdFusion
IPTSCRAE
Lasso
MIVA Script
PHP
SMX
XSLT Server-side

JavaScript
JScript
VBScript
Tcl Text processing languages
Some languages, such as Perl, began as scripting languages but were developed into programming languages suitable for broader purposes. Other similar languages -- frequently interpreted, memory-managed, or dynamic -- have been described as "scripting languages" for these similarities, even if they are more commonly used for applications programming. They are usually not called "scripting languages" by their own users.

APL
Boo
Dylan
Ferite
Groovy
Io
Lisp
Lua
MUMPS (M)
newLISP
Nuva
Perl
PHP
Python
Ruby
Scheme
Smalltalk
SuperCard
Tcl (Tool command language)
Revolution Scripting programming language General-purpose dynamic languages
A number of languages have been designed for the purpose of replacing application-specific scripting languages by being embeddable in application programs. The application programmer (working in C or another systems language) includes "hooks" where the scripting language can control the application. These languages serve the same purpose as application-specific extension languages but with the advantage of allowing some transfer of skills from application to application.
JavaScript began as and primarily still is a language for scripting inside of web browsers; however, the standardization of the language as ECMAScript has made it popular as a general purpose embeddable language. In particular, the Mozilla implementation SpiderMonkey is embedded in several environments such as the Yahoo! Widget Engine. Other applications embedding ECMAScript implementations include the Adobe products Adobe Flash (ActionScript) and Adobe Acrobat (for scripting pdf files).
Tcl was created as an extension language but has come to be used more frequently as a general purpose language in roles similar to Python, Perl, and Ruby.

Ch (C/C++ interpreter)
ECMAScript a.k.a. DMDScript, JavaScript, JScript
EOS Scripting Language
Falcon
Ferite
GameMonkeyScript
Guile
ICI
Lua
Pawn
Python
RBScript (REALbasic Script)
Squirrel
Tcl
Windows PowerShell
Z-Script Others

List of programming languages
Domain-specific programming language
Macro and preprocessor languages
Web template languages
Ousterhout's dichotomy

No comments: