Skip to main content

Scripting language Contents Examples | Characteristics | History | Types of scripting languages | References | Further reading | Other websites | Navigation menu"Beginner's Introduction to Perl"Programming is Hard, Let's Go Scripting…76"Scripting Languages""In praise of scripting"IBM System/360 Operating System Job Control Language (C28-6529-4)"TRAC, A Procedure-Describing Language for the Reactive Typewriter"the original"Multics Glossary -A- (active function)""VM AND THE VM COMMUNITY: Past, Present, and Future""Multics Glossary -R- (RUNCOM)"Patterns for Scripted ApplicationsCommon Development Scenarios

Programming languages


programming languagecomputerweb browserMicrosoft Excelcommand line interfaceoperating systemmainframesserversgeneral-purpose programming languagescompiledJavaJavascriptread–eval–print loopfunctionsJavaimperative programminginterpretedbytecodecompiled languagemachine codeend-user developmentabstractionmainframe computersJob Control Languagetime-sharingshell scriptsCalvin MooersTRACMulticsLouis PouzinCTSSStuart MadnickCP/CMSEXECEXECEXEC 2REXXTclLuaglue codeTexas InstrumentsTI-92Lispjob controlcommand-line interpretersUnix shellAppleScriptQuakeCweb browsersAdobe












Scripting language




From Wikipedia, the free encyclopedia






Jump to navigation
Jump to search


A scripting or script language is a programming language that supports scripts. Scripts are usually short computer programs that do steps that could be done one at a time by a person. This automates a job to make it easier and more reliable. A scripting language is often a simpler language, and easier to learn than other languages, but still can do many things.


Scripts may run inside of another program, like in a web browser or Microsoft Excel. They may also be a shell that runs from a command line interface and makes calls to the operating system (OS). The shell is considered interactive - the user can choose what to type, and the shell responds to the command. These can be used to control jobs on mainframes and servers.


Some people say a scripting language must be tied to a specific use. Others use a wider definition and include general-purpose programming languages that are interpreted, not compiled. General-purpose means it can be used in many ways for different things. Some general-purpose languages (such as Java) have variations that can be scripted (Javascript). There is no specific rule on what is, or is not, a scripting language.




Contents





  • 1 Examples


  • 2 Characteristics


  • 3 History


  • 4 Types of scripting languages

    • 4.1 Glue languages


    • 4.2 Job control languages and shells


    • 4.3 GUI scripting


    • 4.4 Application-specific languages


    • 4.5 Extension/embeddable languages



  • 5 References


  • 6 Further reading


  • 7 Other websites




Examples |


Some common examples of scripting languages:



  • Bash and C shell, as control languages for the Unix or Unix-like operating systems

  • Scripts that run inside another applications are called an extension language. Web browsers allow several kinds of scripts, including ECMAScript (JavaScript) or XUL. For instance, the Google home page uses JavaScript. Visual Basic for Applications is used inside Microsoft Office. Lua is a language purposely made as an extension language, and can be used within many applications.

  • Games that have scripting extensions include the Second Life virtual world and the Trainz Railroad simulators. In other games like Wesnoth, the variety of actual games played are scripts written by other users.

  • Text-processing languages sed and AWK

  • General purpose: Perl,[1]Tcl, and Python[2] are high-level programming languages (closer to human language than to machine code) that can be used for a many different things. Some of these languages were first made for a particular use, and then were changed into general-purpose languages.


Characteristics |


Most scripting languages are made to be easy to learn. They often can be either short files with source code, or entered one command at a time in a command line interface, which has a read–eval–print loop (REPL, language shell).[3] This usually means a simple set of commands. There might not be functions or a main, it just runs from start to finish. If something doesn't work, a programmer can make quick changes and run it again. This makes a scripting language good for making a rapid prototype to see if an idea works.


For example, most people do not call Java a scripting language, because of its lengthy syntax and rules about which classes exist in which files, and because Java cannot be executed interactively in a REPL. It needs files with source code, and they can only contain definitions that must be used by a host application or application launcher. (Java is not the same as JavaScript).


But Python allows choices - functions can be put in a file, it can be run without functions and use imperative programming style, or even use it interactively (type and run one line at a time).


print ("Hello World")


This one line of Python code prints "Hello World"; no main() function or anything else is needed.


A scripting language is usually interpreted from source code or bytecode.[4] However, something has to run the script (interpret it) so the computer understands it. This is an application, or something in the OS. That is often written in a compiled language and distributed in machine code form (as an executable that doesn't make sense to humans).


Scripting languages may be designed to be used by the people using a program — end-user development. Other times they may be built by programmers for their own use. Scripting languages often use abstraction, a form of information hiding. This means users do not need to know the details of variable types, data storage, and memory management.


Scripts are often made or changed by the person executing them,[5] but some are shared or sold to others. For example, when large parts of games are written in a scripting language. Sometimes a script can be compiled before others use it. Once compiled, it will run faster and doesn't need another application to run it. And this prevents end users from changing the code.



History |


Early mainframe computers (in the 1950s) were not interactive, but used scripts stored in batch files. IBM's Job Control Language (JCL) is the common example of a scripting language used to control batch processing.[6]


The first interactive shells were made in the 1960s to help remote operation of the first time-sharing systems. These used shell scripts, which can run computer programs within a computer program, the shell. Calvin Mooers in his TRAC language is generally given credit with inventing command substitution. This lets commands change the script (self-modifying code).[7]Multics calls these active functions.[8]Louis Pouzin wrote an early processor for command scripts called RUNCOM for CTSS around 1964. Stuart Madnick at MIT wrote a scripting language for IBM's CP/CMS in 1966. He originally called this processor COMMAND, later named EXEC.[9] Multics included an offshoot of CTSS RUNCOM, also called RUNCOM.[10]EXEC was eventually replaced by EXEC 2 and REXX.


Languages such as Tcl and Lua were made from the start to be general-purpose scripting languages that could be put into any application. Other languages such as Visual Basic for Applications (VBA) could do much of the same, but needed to work only with certain applications. Using a general-purpose scripting language instead of making a new language for each application usually makes it easier for both the person writing the application and the user writing the scripts.



Types of scripting languages |



Glue languages |


Scripting is sometimes used to connect different applications. This is called glue code, and a language made just for this purpose is a glue language. Pipelines and shell scripting are common examples of glue languages. But if a lot of logic is written in a script file, it is better to think of it as simply another software application, not "glue".


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 that do some automated things before or after running an application like a spreadsheet, data base, compiler, etc.;

  • scripts that may change often;

Glue language examples:


  • AppleScript

  • awk

  • JCL

  • Lua

  • m4

  • Perl


  • Unix Shell scripts (ksh, csh, bash, sh and others)

  • VBScript

  • Work Flow Language

  • Windows PowerShell

  • XSLT

Devices like programmable calculators may also have their own glue languages. For example, the Texas Instruments TI-92, by factory default can be programmed with a command script language. The TI-NSpire calculator understands the Lua language. Others understand some kind of Basic language, or maybe Lisp or something else.



Job control languages and shells |



This group has come from the automation of job control, which relates to starting and controlling the behavior of system programs, starting from IBM's JCL. Many of these languages' interpreters also work as command-line interpreters such as the Unix shell or the MS-DOS COMMAND.COM. Others, such as AppleScript offer the use of English-like commands to build scripts.



GUI scripting |


When building graphical user interfaces, a way of testing it is needed. Specialized scripting languages were made to control graphic windows, menus, buttons, and so on just like a human user would. Many times, these can be used to copy exactly what a person does (moving a mouse, clicking or typing on a keyboard). This action or set of actions that is copied and remembered is called a macro.



Application-specific languages |


Many large applications include a scripting language built just for that application. The application can be a game or a business program. This type of language is made for a single application. They make look like a general-purpose language (e.g. QuakeC, modeled after C), they have custom features that distinguish them.



Extension/embeddable languages |


This is like an application-specific scripting languages, in that it controls an application, but the language can be used in many applications.


JavaScript started as a language for scripting inside web browsers; but it is now a general-purpose embeddable language. It is also used in Adobe products for instance.


Some languages shift from one type to another over time, usually as they add capability to do more things.



References |




  1. Sheppard, Doug (2000-10-16). "Beginner's Introduction to Perl". dev.perl.org. Retrieved 2011-01-08..mw-parser-output cite.citationfont-style:inherit.mw-parser-output .citation qquotes:"""""""'""'".mw-parser-output .citation .cs1-lock-free abackground:url("//upload.wikimedia.org/wikipedia/commons/thumb/6/65/Lock-green.svg/9px-Lock-green.svg.png")no-repeat;background-position:right .1em center.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration abackground:url("//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Lock-gray-alt-2.svg/9px-Lock-gray-alt-2.svg.png")no-repeat;background-position:right .1em center.mw-parser-output .citation .cs1-lock-subscription abackground:url("//upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Lock-red-alt-2.svg/9px-Lock-red-alt-2.svg.png")no-repeat;background-position:right .1em center.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registrationcolor:#555.mw-parser-output .cs1-subscription span,.mw-parser-output .cs1-registration spanborder-bottom:1px dotted;cursor:help.mw-parser-output .cs1-ws-icon abackground:url("//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/12px-Wikisource-logo.svg.png")no-repeat;background-position:right .1em center.mw-parser-output code.cs1-codecolor:inherit;background:inherit;border:inherit;padding:inherit.mw-parser-output .cs1-hidden-errordisplay:none;font-size:100%.mw-parser-output .cs1-visible-errorfont-size:100%.mw-parser-output .cs1-maintdisplay:none;color:#33aa33;margin-left:0.3em.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration,.mw-parser-output .cs1-formatfont-size:95%.mw-parser-output .cs1-kern-left,.mw-parser-output .cs1-kern-wl-leftpadding-left:0.2em.mw-parser-output .cs1-kern-right,.mw-parser-output .cs1-kern-wl-rightpadding-right:0.2em


  2. Programming is Hard, Let's Go Scripting…, Larry Wall, December 6, 2007


  3. Hey, Tony; Pápay, Gyuri (2014). The Computing Universe: A Journey through a Revolution. Cambridge University Press. p. 76. ISBN 978-1-31612322-5, "A major characteristic of modern scripting languages is their interactivity, sometimes referred to as a REPL programming environment. […] The characteristics of ease of use and immediate execution with a REPL environment are sometimes taken as the definition of a scripting language."


  4. Brown, Vicki. "Scripting Languages". Retrieved 2009-07-22.


  5. Loui, Ronald (2008). "In praise of scripting". IEEE Computer.


  6. IBM Corporation (1967). IBM System/360 Operating System Job Control Language (C28-6529-4) (PDF).


  7. Mooers, Calvin. "TRAC, A Procedure-Describing Language for the Reactive Typewriter". Archived from the original on 2001-04-25. Retrieved March 9, 2012.


  8. Van Vleck(ed.), Thomas. "Multics Glossary -A- (active function)". Retrieved March 9, 2012.CS1 maint: Extra text: authors list (link)


  9. Varian, Melinda. "VM AND THE VM COMMUNITY: Past, Present, and Future" (PDF). Retrieved March 9, 2012.


  10. Van Vleck, Thomas(ed.). "Multics Glossary -R- (RUNCOM)". Retrieved March 9, 2012.CS1 maint: Extra text: authors list (link)




Further reading |



  • Barron, David William (2000). The World of Scripting Languages. ISBN 0-471-99886-9.


Other websites |



  • Patterns for Scripted Applications at the Internet Archive

  • Common Development Scenarios




Retrieved from "https://simple.wikipedia.org/w/index.php?title=Scripting_language&oldid=5549969"










Navigation menu


























(RLQ=window.RLQ||[]).push(function()mw.config.set("wgPageParseReport":"limitreport":"cputime":"0.224","walltime":"0.272","ppvisitednodes":"value":574,"limit":1000000,"ppgeneratednodes":"value":0,"limit":1500000,"postexpandincludesize":"value":15583,"limit":2097152,"templateargumentsize":"value":281,"limit":2097152,"expansiondepth":"value":7,"limit":40,"expensivefunctioncount":"value":0,"limit":500,"unstrip-depth":"value":1,"limit":20,"unstrip-size":"value":28554,"limit":5000000,"entityaccesscount":"value":0,"limit":400,"timingprofile":["100.00% 217.230 1 -total"," 79.04% 171.698 1 Template:Reflist"," 58.92% 127.998 7 Template:Cite_web"," 13.99% 30.390 1 Template:Main_article"," 11.45% 24.876 3 Template:Cite_book"," 3.42% 7.431 1 Template:URL"," 1.32% 2.857 1 Template:Wayback"," 1.12% 2.436 1 Template:Main_other"],"scribunto":"limitreport-timeusage":"value":"0.127","limit":"10.000","limitreport-memusage":"value":2933447,"limit":52428800,"cachereport":"origin":"mw1325","timestamp":"20190606165100","ttl":2592000,"transientcontent":false););"@context":"https://schema.org","@type":"Article","name":"Scripting language","url":"https://simple.wikipedia.org/wiki/Scripting_language","sameAs":"http://www.wikidata.org/entity/Q187432","mainEntity":"http://www.wikidata.org/entity/Q187432","author":"@type":"Organization","name":"Contributors to Wikimedia projects","publisher":"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":"@type":"ImageObject","url":"https://www.wikimedia.org/static/images/wmf-hor-googpub.png","datePublished":"2016-11-09T15:24:46Z","dateModified":"2016-12-16T07:21:11Z","headline":"programming language for special run-time environments"(RLQ=window.RLQ||[]).push(function()mw.config.set("wgBackendResponseTime":106,"wgHostname":"mw1248"););

Popular posts from this blog

Category:9 (number) SubcategoriesMedia in category "9 (number)"Navigation menuUpload mediaGND ID: 4485639-8Library of Congress authority ID: sh85091979ReasonatorScholiaStatistics

Circuit construction for execution of conditional statements using least significant bitHow are two different registers being used as “control”?How exactly is the stated composite state of the two registers being produced using the $R_zz$ controlled rotations?Efficiently performing controlled rotations in HHLWould this quantum algorithm implementation work?How to prepare a superposed states of odd integers from $1$ to $sqrtN$?Why is this implementation of the order finding algorithm not working?Circuit construction for Hamiltonian simulationHow can I invert the least significant bit of a certain term of a superposed state?Implementing an oracleImplementing a controlled sum operation

Magento 2 “No Payment Methods” in Admin New OrderHow to integrate Paypal Express Checkout with the Magento APIMagento 1.5 - Sales > Order > edit order and shipping methods disappearAuto Invoice Check/Money Order Payment methodAdd more simple payment methods?Shipping methods not showingWhat should I do to change payment methods if changing the configuration has no effects?1.9 - No Payment Methods showing upMy Payment Methods not Showing for downloadable/virtual product when checkout?Magento2 API to access internal payment methodHow to call an existing payment methods in the registration form?