A scripting language, script language or extension language is a programming language A programming language is an 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 control the behavior of a machine, to express algorithms precisely, or as a mode of human communication that allows control of one or more software applications Application software, also known as applications or apps, is computer software designed to help the user to perform singular or multiple related specific tasks. Examples include Enterprise software, Accounting software, Office suites, Graphics software and media players. "Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the end-user The end-user is a concept in software engineering, referring to an abstraction of the group of persons who will ultimately operate a piece of software.[1] Scripts are often interpreted In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language. An interpreter may be a program that either from source code or bytecode Bytecode is a term which has been used to denote various forms of instruction sets designed for efficient execution by a software interpreter as well as being suitable for further compilation into machine code. Since instructions are processed by software, they may be arbitrarily complex, but are nonetheless often akin to traditional hardware, whereas the applications they control are traditionally compiled A compiler is a computer program that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code). The most common reason for wanting to transform source code is to create an executable program to native machine code. [2]
The name "script" is derived from the written script of the performing arts The performing arts are those forms of art which differ from the plastic arts insofar as the former uses the artist's own body, face, and presence as a medium, and the latter uses materials such as clay, metal or paint which can be molded or transformed to create some physical art object. The term "performing arts" first appeared in the, in which dialogue is set down to be spoken by human actors.[citation needed] Early script languages were often called batch languages In DOS, OS/2, and Microsoft Windows, a batch file is a text file containing a series of commands intended to be executed by the command interpreter. When a batch file is run, the shell program reads the file and executes its commands, normally line-by-line. Batch files are useful for running a sequence of executables automatically and are often or job control languages. Such early scripting languages were created to shorten the traditional edit-compile A compiler is a computer program that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code). The most common reason for wanting to transform source code is to create an executable program-link In computer science, a linker or link editor is a program that takes one or more objects generated by a compiler and combines them into a single executable program-run process.
Contents |
History
Early mainframe computers Mainframes are powerful computers used mainly by large organizations for critical applications, typically bulk data processing such as census, industry and consumer statistics, enterprise resource planning, and financial transaction processing (in the 1950s) were non-interactive, instead using batch processing Batch processing is execution of a series of programs on a computer without manual intervention. IBM's Job Control Language Job Control Language is a scripting language used on IBM mainframe operating systems to instruct the system on how to run a batch job or start a subsystem. The term "Job Control Language" can also be used generically to refer to all languages which perform these functions, such as Burroughs' WFL and ICL's OCL. This article is (JCL) is the archetype of language used to control batch processing.
The first interactive shells A shell is a piece of software that provides an interface for users to an operating system shell which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include any software that is "built around" a particular component, such as web browsers and email clients that are & were developed in the 1960s to enable remote operation of the first time-sharing Time-sharing is the sharing of a computing resource among many users by means of multiprogramming and multi-tasking. Its introduction in the 1960s, and emergence as the prominent model of computing in the 1970s, represents a major technological shift in the history of computing systems, and these used shell scripts, which controlled running computer programs within a computer program, the shell.
Historically, there was a clear distinction between "real" high speed programs written in languages such as C C is a general-purpose computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system, and simple, slow scripts written in languages such as Bourne Shell The Bourne shell, or sh, was the default Unix shell of Unix Version 7, and replaced the Thompson shell, whose executable file had the same name, sh. It was developed by Stephen Bourne, of AT&T Bell Laboratories, and was released in 1977 in the Version 7 Unix release distributed to colleges and universities. It remains a popular default shell or Awk AWK is a programming language that is designed for processing text-based data, either in files or data streams, and was created at Bell Labs in the 1970s. The name AWK is derived from the family names of its authors — Alfred Aho, Peter Weinberger, and Brian Kernighan; however, it is not commonly pronounced as a string of separate letters but. But as technology improved, the performance differences shrank and interpreted languages like Java Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode (class file), Lisp Lisp is a family of computer programming languages with a long history and a distinctive, fully parenthesized syntax. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older. Like Fortran, Lisp has changed a great deal since its early days, and a number of dialects have, Perl Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular amongst programmers. Larry Wall continues to oversee and Python Python is a general-purpose high-level programming language whose design philosophy emphasizes code readability. Python aims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive. Its use of indentation for block delimiters is unusual among popular programming languages emerged and gained in popularity to the point where they are considered general-purpose programming languages and not just languages that "drive" an interpreter.
Languages such as Tcl Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration," according to the author, with programmers devising their own (poor quality) languages intended to be embedded into applications, Tcl gained acceptance on its own. It is commonly used for rapid prototyping, scripted applications, GUIs and testing and Lua In computing, Lua is a lightweight, reflective, imperative and functional programming language, designed as a scripting language with extensible semantics as a primary goal. The name comes from the Portuguese word lua meaning "moon". Lua has a relatively simple C API compared to other scripting languages were specifically designed as general purpose scripting languages that could be embedded in any application or used on their own. Other languages such as Visual Basic for Applications Visual Basic for Applications is an implementation of Microsoft's event-driven programming language Visual Basic 6, and associated integrated development environment (IDE), which is built into most Microsoft Office applications. By embedding the VBA IDE into their applications, developers can build custom solutions using Microsoft Visual Basic. It (VBA) provided strong integration with the automation facilities of an underlying system. Embedding of such general purpose scripting languages instead of developing a new language for each application also had obvious benefits, relieving the application developer of the need to code a language translator from scratch and allowing the user to apply skills learned elsewhere.
The Common Gateway Interface The Common Gateway Interface is a standard protocol that defines how webserver software can delegate the generation of webpages to a console application. Such applications are known as CGI scripts; they can be written in any programming language, although scripting languages are often used allowed scripting languages to control web servers A web server is a computer program that delivers content, such as web pages, using the Hypertext Transfer Protocol (HTTP), over the World Wide Web. The term web server can also refer to the computer or virtual machine running the program. In large commercial deployments, a server computer running a web server can be rack-mounted with other servers, and thus communicate over the web. Scripting languages that made use of CGI early in the evolution of the Web include Perl Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular amongst programmers. Larry Wall continues to oversee, ASP Active Server Pages , also known as Classic ASP or ASP Classic, was Microsoft's first server-side script engine for dynamically-generated web pages. Initially released as an add-on to Internet Information Services (IIS) via the Windows NT 4.0 Option Pack, it was subsequently included as a free component of Windows Server (since the initial release, and PHP PHP: Hypertext Preprocessor is a widely used, general-purpose scripting language that was originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document. As a general-purpose.
Some software incorporates several different scripting languages. Modern web browsers A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content. Hyperlinks present in resources enable users to easily navigate their browsers to typically provide a language for writing extensions to the browser itself, and several standard embedded languages for controlling the browser, including JavaScript JavaScript is an implementation of the ECMAScript language standard and is typically used to enable programmatic access to computational objects within a host environment. It can be characterized as a prototype-based object-oriented scripting language that is dynamic, weakly typed and has first-class functions. It is also considered a functional (a dialect of ECMAScript ECMAScript is the scripting language standardized by Ecma International in the ECMA-262 specification and ISO/IEC 16262. The language is widely used for client-side scripting on the web, in the form of two well-known dialects, JavaScript and JScript. Another well-known dialect is ActionScript) and CSS Cascading Style Sheets is a style sheet language used to describe the presentation semantics (that is, the look and formatting) of a document written in a markup language. Its most common application is to style web pages written in HTML and XHTML, but the language can also be applied to any kind of XML document, including SVG and XUL.
Types of scripting languages
Job control languages and shells
Main article: Shell script A shell script is a script written for the shell, or command line interpreter, of an operating system. It is often considered a simple domain-specific programming language. Typical operations performed by shell scripts include file manipulation, program execution, and printing textA major class of scripting languages has grown out of the automation of job control, which relates to starting and controlling the behavior of system programs. (In this sense, one might think of shells as being descendants of IBM's JCL, or Job Control Language Job Control Language is a scripting language used on IBM mainframe operating systems to instruct the system on how to run a batch job or start a subsystem. The term "Job Control Language" can also be used generically to refer to all languages which perform these functions, such as Burroughs' WFL and ICL's OCL. This article is, which was used for exactly this purpose.) Many of these languages' interpreters double as command-line interpreters A command-line interpreter is a computer program that reads lines of text entered by a user and interprets them in the context of a given operating system or programming language such as the Unix shell A Unix shell is a command-line interpreter and script host that provides a traditional user interface for the Unix operating system and for Unix-like systems. Users direct the operation of the computer by entering command input as text for a command line interpreter to execute or by creating text scripts of one or more such commands or the MS-DOS COMMAND.COM COMMAND.COM is the filename of the default operating system shell for DOS operating systems and the default command line interpreter on 16/32-bit versions of Windows . It has an additional role as the first program run after boot, hence being responsible for setting up the system by running the AUTOEXEC.BAT configuration file, and being the. Others, such as AppleScript AppleScript is a scripting language devised by Apple Inc., and built into Mac OS. More generally, "AppleScript" is the word used to designate the Mac OS scripting interface, which is meant to operate in parallel with the graphical user interface offer the use of English-like commands to build scripts. This combined with Mac OS X Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, Mac OS X has been included with all new Macintosh computer systems. It is the successor to Mac OS 9, the final release of the "classic" Mac OS, which had been Apple's primary operating system since 198's Cocoa Cocoa is one of Apple Inc.'s native object-oriented application program environments for the Mac OS X operating system. It is one of five major APIs available for Mac OS X; the others are Carbon, POSIX , X11 and Java frameworks allows user to build entire applications using AppleScript AppleScript is a scripting language devised by Apple Inc., and built into Mac OS. More generally, "AppleScript" is the word used to designate the Mac OS scripting interface, which is meant to operate in parallel with the graphical user interface & Cocoa Cocoa is one of Apple Inc.'s native object-oriented application program environments for the Mac OS X operating system. It is one of five major APIs available for Mac OS X; the others are Carbon, POSIX , X11 and Java objects.
GUI Scripting
With the advent of graphical user interfaces A graphical user interface (sometimes pronounced gooey) is a type of user interface item that allows people to interact with programs in more ways than typing such as computers; hand-held devices such as MP3 Players, Portable Media Players or Gaming devices; household appliances and office equipment with images rather than text commands. A GUI 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. They do this by simulating the actions of a human user. These languages are typically used to automate user actions or configure a standard state. Such languages are also called "macros A macro in computer science is a rule or pattern that specifies how a certain input sequence (often a sequence of characters) should be mapped to an output sequence (also often a sequence of characters) according to a defined procedure. The mapping process that instantiates (transforms) a macro into a specific output sequence is known as macro" when control is through simulated key presses or mouse clicks.
These languages could in principle be used to control any application running on a GUI-based computer; but, in practice, the support for such languages typically depends on the application and operating system An operating system is the software on a computer that manages the way different programs use its hardware, and regulates the ways that a user controls the computer. Operating systems are found on almost any device that contains a computer with multiple programs—from cellular phones and video game consoles to supercomputers and web servers. Some. There are a few exceptions to this limitation. Some GUI scripting languages are based on recognizing graphical objects from their display screen pixels In digital imaging, a pixel is a single point in a raster image. The pixel is the smallest addressable screen element; it is the smallest unit of picture that can be controlled. Each pixel has its own address. The address of a pixel corresponds to its coordinates. Pixels are normally arranged in a 2-dimensional grid, and are often represented. These GUI scripting languages do not depend on support from the operating system, or application.
Application-specific languages
Many large application programs include an idiomatic scripting language tailored to the needs of the application user. Likewise, many computer game PC games are created by one or more game developers, often in conjunction with other specialists and either published independently or through a third party publisher. They may then be distributed on physical media such as DVDs and CDs, as Internet-downloadable, possibly freely redistributable, software, or through online delivery services such as systems use a custom scripting language to express the programmed actions of non-player characters A non-player character, often shortened to NPC, is a character that is controlled by the gamemaster in role-playing games. When this definition extends to video games, an NPC in a video game is usually part of the program, and not controlled by a human 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. Emacs Lisp, while a fully formed and capable dialect of Lisp, contains many special features that make it most useful for extending the editing functions of Emacs. An application-specific scripting language can be viewed as a domain-specific programming language specialized to a single application.
Web browsers
Main article: Client-side scriptingWeb browsers are applications for displaying web pages. A host of special-purpose languages has developed to control their operation. These include JavaScript, a scripting language superficially resembling Java; VBScript by Microsoft, which only works in Internet Explorer; XUL by the Mozilla project, which only works in Firefox; and XSLT, a presentation language that transforms XML content into a new form. Techniques involving the combination of XML and JavaScript scripting to improve the user's impression of responsiveness have become significant enough to acquire a name: AJAX.
Text processing languages
The processing of text-based records is one of the oldest uses of scripting languages. Scripts written for the Unix tools AWK, sed, and grep automate tasks that involve text-based configuration and log files. Of high importance here is the regular expression, a language developed for the formal description of the lexical structure of text, and used by all of these tools.
Perl was originally designed to overcome limitations of these tools and has grown to be one of the most widespread general purpose languages.
General-purpose dynamic languages
See also: Dynamic programming languageSome 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.
Extension/embeddable 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 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.
Other complex and task-oriented applications may incorporate and expose an embedded programming language to allow their users more control and give them more functionality than can be available through a user interface, no matter how sophisticated. For example, Autodesk Maya 3D authoring tools embed the MEL scripting language, or Blender which has Python to fill this role.
Some other types of applications that need faster feature addition or tweak-and-run cycles (e.g. game engines) also use an embedded language. During the development, this allows them to prototype features faster and tweak more freely, without the need for the user to have intimate knowledge of the inner workings of the application or to rebuild it after each tweak (which can take a significant amount of time.) The scripting languages used for this purpose range from the more common and more famous Lua and Python to lesser-known ones such as AngelScript and Squirrel.
Market analysis
According to a global survey performed by Evans Data in 2008 [1], the most widespread scripting language is JavaScript. The second most widespread is PHP. Perl is the third most widespread scripting language, but in North America it enjoys significantly more popularity.[3]
See also
- Architecture description language
- Build automation
- Domain-specific language
- Glue code
- Interpreted language
- Interpreter directive
- List of programming languages
- Macro and preprocessor languages
- Ousterhout's dichotomy
- Programming in the large and programming in the small
- Shebang (Unix)
- Shell (computing)
- System programming
References
- ^ IEEE Computer, 2008, In praise of scripting, Ronald Loui author
- ^ Brown, Vicki. ""Scripting Languages"". http://www.mactech.com/articles/mactech/Vol.15/15.09/ScriptingLanguages/index.html. Retrieved 2009-07-22.
- ^ PHP, JavaScript, Ruby, Perl, Python, and Tcl Today: The State of the Scripting Universe - CIO.com
External links
- Patterns for Scripted Applications
- A study of the Script-Oriented Programming (SOP) suitability of selected languages — from The Scriptometer
- A Slightly Skeptical View on Scripting Languages by Dr. Nikolai Bezroukov
- Rob van der Woude's Scripting Pages — Administrative scripting related information (includes examples)
- Are Scripting Languages Any Good? A Validation of Perl, Python, Rexx, and Tcl against C, C++, and Java (PDF) — 2003 study
- Scripting: Higher Level Programming for the 21st Century by John K. Ousterhout
- Use of VBScript in QTP automation
- Scripting on the Java platform — JavaWorld
- "Programming is Hard - Let's Go Scripting" by Larry Wall - Perl.com transcript of his State of the Onion speech.
|
|||||
Categories: Scripting languages | Programming paradigms
|
Tue, 13 Jul 2010 05:01:47 GMT+00:00
MiamiHerald.com ... producer Doug Liman), Covert Affairs tries to power itself past its script deficiencies with a high-adrenaline stream of car crashes and gunfights. ... Review: USA's 'Covert Affairs' HitFix (blog)
Kanen Flowers
Mon, 08 Mar 2010 05:28:50 GM
[Since then, nCircle has changed this . scripting language. to Python and -- in my opinion - defeated the purpose of the reason the . scripting language. was created in the first place.] There was a time, believe it or not, when an intrusion ...
Q. Just got a question and I can't seem to find it anywhere. Pros and cons with respect to as a server-side scripting language. compare with php, jsp, asp
Asked by cynical - Mon May 7 17:21:31 2007 - - 2 Answers - 0 Comments
A. It's pretty good all around.. cons are.. server needs to support it.. .. its harder to program in... over php... same as asp.. easier than JSP over PHP.. its more secure... and faster and reading/writing to files.. uploads etc.. are better supported in it. Hope it heps Blue chip hosting staff,
Answered by Blue chip hosting - Mon May 7 17:27:34 2007


