స్క్రిప్టింగ్ భాషలు

సాఫ్టువేరు వ్రాయు భాషలను ప్రధానంగా 2 వర్గాలుగా విభజించవచ్చును.
 
* ప్రోగ్రామింగ్ భాషలు
* **స్క్రిప్టింగ్ భాషలు**

**స్క్రిప్టింగ్ భాష:** దీనిని ప్రధానంగా సాఫ్టువేరు అనువర్తనాల్ని (Software application) నియంత్రించుటకై వాడుతారు. "స్క్రిప్ట్" లను సాధారణ ప్రోగ్రాములనుండి వేరుచేయటానికి ప్రధాన కారణం, వీటిని అప్లికేషన్ తో నిమిత్తం లేకుండా ఎక్జిక్యూట్ చేయగలగడం, ఇంకా కంపైలేషన్ లేకుండా ఇంటర్ప్రిటేషన్ మాత్రమే చేయటం మొదలగునవిగా చెప్పుకోవచ్చు.
## చరిత్ర
ఆదేశాలతో పనిచేసే మొట్టమొదటి షెల్ 1960 లో తయారు చేయబడినాయి. ఈ shells కాల విభజన ద్వారా పనులు చెయుటకు ఉపయోగించపబడినవి. shells స్క్రిప్టింగ్ యొక్క అవశ్యకతను చూపినాయి. shell స్క్రిప్టింగ్ వల్ల మనిషి అనుక్షణం అదేశాలు లేదా నులభమైన macro అదేశాలు పంపనవసరం లేదు. సంకేత పదాలతొ ఒక వ్యాజ్యము తయారు చేసి shell కు అందచెస్తే చాలు. సంకేత పదాలతొ కూడిన ఈ వ్యాజ్యమే షెల్ స్క్రిప్ట్. స్క్రిప్టింగ్ తొ సమాంతరంగా క్లిష్టమైన అవసరాలకు అనుగుణంగా అంతర్భాగ (embedded) స్క్రిప్టింగ్ పద్ధతులు తయారు చేయబడినాయి,మొదట్లో అంతర్భాగ (embedded) స్క్రిప్టింగ్ పద్ధతులు కష్టసాధ్యమైన మనిషి అవసరం లేని విదంగా batch పనులకు వుపయొగించేవారు.కాలక్రమేణా ఉపయోగి వ్రాయు పద్ధతులు (స్క్రిప్టింగ్ పద్ధతి అనుసారం) సరి చూచుటకు గణితయంత్ర (computer) పద్ధతులుగా (program) తయారు చేయబడినవి,

స్క్రిప్టింగ్ అభివృద్ధి చెందుతూ టూరింగ్ పరిపూర్ణతను (Turing-completeness) సాధించింది. అంటే ఒక స్క్రిప్టింగ్ భాషలో వ్రాయబడిన గణకయంత్ర పద్ధతిని (computer program) మరో భాషలో అనువదించేంత సౌలభ్యం సమకూరింది. 
As scripting facilities developed they achieved Turing-completeness, which meant that they could be used to express any computer algorithm that could be expressed by any other programming language. The skills and techniques developed in application programming were brought to bear. The nascent scripting languages acquired variables, sequencing, iteration, decisions, procedures, and even modules. In time some embedded scripting languages became complex enough to be used to extend the application. Emacs, first developed in the late 1970s, is one classic example still in daily use. Most of the editing functionality of Emacs is written in its general scripting language, Emacs Lisp, around a core written in C.

Some mainstream languages, such as Lisp, adapted well to embedding within applications by providing high expressive power in a small footprint. Others, such as Tcl and Lua, were specifically designed as general purpose scripting languages that could be embedded in any application or used on their own. Other systems such as Visual Basic for Applications (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.

Although historically most scripting languages have been interpretive rather than compiled languages, applications requiring speed require fast extensions. QuakeC, developed for use in scripting the Quake game engine (mid-1990s), is an example of a scripting language that is compiled to bytecode which is interpreted by a bytecode interpreter or virtual machine. This isn't exactly new. In the seventies, a common system command and scripting language of DEC's RSTS/E operating system prior to version 9 of the O/S was Basic, compiled to bytecode.

Developed from the start to run in applets under the control of a web browser, Java provided the ultimate in multiplatform client-side scripting. Compiled to bytecode, it runs inside a Java Virtual Machine which provides security for the end user and abstracts the programming environment to simplify the programmer's task. Java has since found far more important uses in large-scale server-side scripting, however.

Early web servers provided primitive scripting facilities to generate non-static web content in response to an incoming query by launching a program or shellscript to handle each individual task (Common Gateway Interface), but the relatively high cost of launching a process for each query led to the development of server systems such as ASP, PHP, and JSP, which remained memory resident and came with their own scripting languages specialised for the purpose of serving web content. In using modules scripted in Java, JSP provides a highly sophisticated software engineering infrastructure to web-based scripting.

Some software incorporates several different scripting languages. Modern web browsers typically provide a language for writing extensions to the browser itself, and several standard embedded languages for controlling the browser, including ECMAScript (more commonly known as Javascript), CSS, and HTML.

## వివిధ రకాలైన స్క్రిప్టింగ్ భాషలు

### జాబ్ కంట్రోల్ భాషలు
జాబ్ కంట్రోల్ భాషల పుట్టుకకు కంప్యూటరు తన పనులను తనంతట తానుగా చేసుకునేలా తీర్చిదిద్దాలనే ఉద్దేశమే కారణం. వీటి లక్ష్యం చాలా వరకు కంప్యూటరు అంతర్గత ప్రోగ్రాములు ప్రారంభించబడటానికి, వాటి నడవడికను నిర్దేశించటానికి ఉద్దేశించబడి ఉంటుంది. చాలావరకు ఈ భాషలను అర్థం చేసుకుని దానిని కంప్యూటరు భాషలో తర్జుమా చేసే అనువాద ప్రోగ్రాములు సదరు కంప్యూటరుకు ఆదేశాలు అందించేందుకు అనువుగా రూపొందించబడి ఉంటాయి. అంటే వీటి ద్వారా మనం కంప్యూటరుకు నేరుగా ఆదేశాలు పంపే వీలుంటుందన్నమాట. ఉదాహరణకు Unix Shell, MS-DOSకున్న కమాండ్ ప్రాంప్ట్ (command.com) లాంటివి. ఇకపోతే అసలు ఇలాంటి కమాండ్ ప్రాంఫ్టులే లేని కంప్యూటర్లకు ఆపిల్ స్క్రిప్ట్ లాంటి ప్రోగ్రాములు ఆ సదుపాయాన్ని కల్పిస్తాయి.

### జి యువ్ ఐ స్క్రిప్టింగు
క్రమంగా గ్రాఫికల్ యూజర్ ఇంటర్ఫేస్ (జి. యు.ఐ - కంప్యూటర్ తెరపై చిత్రాలను ఉంచి, వాటిని ఆఙ్ఞలతో (కమాండ్లతో) అనుసంధానించటం. ఆ చిత్రాలను మౌస్ తో నొక్కి అనుసంధానించబడిన కమాండ్లను పనిచేయించగల సదుపాయాన్ని జి.యు.ఐ అంటారు. దీనివల్ల కంప్యూటర్ కమాండ్లను కంఠతా పట్టే శ్రమ తప్పింది. జి.యు.ఐ ప్రచారంలో రావటంతో కంప్యూటర్లను పనిచేయించటానికి కొత్త స్క్రిప్టింగ్ భాష అవసరమైయింది. ఈ భాషలు జి.యు.ఐ ద్వారా ఉత్పన్నమైన విండోలు, మెనులు, బటన్లతో పనిచేయగలిగేవి. ఎల్లప్పుడూ పునరావృతం అయ్యే పనులను కంప్యూటర్ తనంతట తానే చేసుకునేలా లేదా కంప్యూటర్లు ఒక ప్రామాణిక స్థితి (Standard state)కి రావటానికి అనువయ్యే కమాండ్లను కూర్చటానికి ఈ భాషలను సాధారణంగా వాడుతారు. సిద్ధాంతపరంగా ఈ భాషలను జి.యు.ఐ ఉన్న ఏ కంప్యూటర్ అప్ప్లికేషన్తోనైనా వాడవచ్చు. కానీ, నిజానికి ఈ భాషలను వాడటానికి సదరు అప్లికేషన్, కంప్యూటర్ ఆపరేటింగ్ సిస్టం అనువుగా ఉంటేనే సాధ్యం. ఈ భాషలను "మాక్రో" (Macros) అని కూడా పిలుస్తారు. మాక్రోలను వాడి మనం నిత్యం వాడే కొన్ని కీబోర్డు, మౌస్ నొక్కులను కంప్యూటర్ ఙ్ఞాపకం ఉంచుకునేలా చేయవచ్చు. దీనివల్ల తేలికపాటి పనులను సులభంగా ఎలాంటి ప్రోగ్రాములు రాయనవసరం లేకుండా చేసుకునే సదుపాయం కలిగింది.

### అప్లికేషన్-స్పెసిఫిక్ భాషలు
చాలావరకు పెద్ద పెద్ద అప్లికేషన్ ప్రోగ్రాములను (వర్డ్, ఎక్సెల్ లాంటివి) వాడుకదారులు తమకు కావలసిన విధంగా మలచుకునేందుకు అనువుగా ఒక స్క్రిప్టింగ్ భాషను కలిగి ఉంటాయి. అలాగే చాలా కంప్యూటరు ఆటల సిస్టాలు కూడా తమదైన స్క్రప్టింగ్ భాషను కలిగి ఉంటాయి. దీని ద్వారా ఆట ఆడే పరిసరాలను, ఇతర అనేక ఆట సంబంధమైన విషయాలను ఆటగాళ్ళు తమకు నచ్చిన విధంగా తీర్చిదిద్దుకోవచ్చు. అయితే ఇలాంటి స్క్రిప్టింగ్ భాషలు కేవలం ఆయా అప్లికేషన్ల కోసమే పనిచేస్తాయి; కొన్నిసార్లు వీటికీ, సాధారణ ప్రోగ్రామింగ్ భాషలకు పోలికలు కనిపించవచ్చు (ఉదా:- క్వేక్ సి, సి ప్రోగ్రామింగ్ భాషను పోలి ఉంటుంది), కాకపోతే వీటిలో సాధారణ భాషలో లేని అదనపు హంగులు ఉంటాయి. సాధారణ ప్రోగ్రామింగ్ భాషను ఒక అప్లికేషన్ కోసం పనిచేసేలా అనువుగా మలిస్తే, ఇలాంటి స్క్రిప్టింగ్ భాషలు తయారవుతాయి. Emacs LISP అనే భాష సాధారణ ప్రోగ్రామింగ్ కోసం వాడే LISP భాషను పోలి ఉంటుంది. LISP లా పని చేయగలగటంతో పాటు Emacs అనే అప్లికేషన్ ప్రోగ్రాంతో అదనపు పనులు చేసేందుకు వీలు కల్పిస్తుంది.

### వెబ్ బ్రౌజర్లు
Web browsers are typically used to render HTML, but in time a host of special-purpose languages has developed to control their operation. These include ECMAScript, a very versatile procedural scripting language superficially resembling Java, Cascading style sheets, which enable style metadata to be abstracted from content, XML which can be used for content in conjunction with style metadata, as an alternative to HTML, 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 subjective impression of responsiveness have become significant enough to acquire a name: AJAX. The Document Object Model standard ensures that all browsers respond in a predictable manner to the same Javascript.

The Mozilla project has developed its own system for extending the user interface of the browser itself, called XUL.

వెబ్ బ్రౌజర్లు HTML భాషలో వ్రాసిన కోడును కంప్యూటరు తెరపై చూపడానికి తయారైనా కాలక్రమేణా ఈ బ్రౌజర్ల కోసం ప్రత్యేక భాషలు పుట్టుకొచ్చాయి. ఇలాంటి భాషల్లో ECMAScript అనేది వైవిధ్యభరితమైన స్క్రిప్టింగ్ భాష.

### వెబ్ సర్వర్లు
On the server side of the http link, application servers and other dynamic content servers such as Web content management systems provide content through a large variety of techniques and technologies typified by the scripting approach. Particularly prominent in this area are JSP, PHP, and ASP, but other developments such as Ruby on Rails have carved out a niche.
### టెక్స్ట్ ప్రాసెసింగ్ భాషలు
The processing of text-based records is one of the oldest uses of scripting languages. Many, such as Unix's awk, sed, and grep were originally designed to aid programmers in automating tasks that involved Unix text-based configuration and log files. Of primary 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 the limitations of these tools, but has grown to be one of the most widespread general purpose scripting 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.
కొన్ని భాషలు, ఉదాహరణకు పెర్ల్ వంటివి మొదట స్క్రిప్టింగ్ భాషలుగా ప్రారంభం అయినాయి, కానీ తరువాత పూర్తి స్థాయి ప్రోగ్రామింగ్ భాషగా, విభిన్న కార్యాలకు సరిపోయేవిగా మారాయి.

### ఎక్స్ టెన్షన్ /ఎంబెడ్ చేయబడిన భాషలు
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.
## ఇంకా
*Domain-specific programming language
*List of programming languages
*Macro and preprocessor languages
*Ousterhout's dichotomy
*Shebang
*Web template languages
## బయటి లింకులు
*Python programming language 
*A study of the Script-Oriented Programming (SOP) suitability of selected languages  &ndash; from The Scriptometer.
*A Slightly Skeptical View on Scripting Languages by Dr. Nikolai Bezroukov
*Scripting: Higher Level Programming for the 21st Century by John K. Ousterhout
* Are Scripting Languages Any Good? A Validation of Perl, Python, Rexx, and Tcl against C, C++, and Java (PDF) &mdash; 2003 study
*Scripting on the Java platform - JavaWorld

*