Языки сценариев скрипты

A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system.[1] Scripting languages are usually interpreted at runtime rather than compiled.

A scripting language’s primitives are usually elementary tasks or API calls[clarification needed], and the scripting language allows them to be combined into more programs. Environments that can be automated through scripting include application software, text editors, web pages, operating system shells, embedded systems, and computer games. A scripting language can be viewed as a domain-specific language for a particular environment; in the case of scripting an application, it is also known as an extension language. Scripting languages are also sometimes referred to as very high-level programming languages, as they sometimes operate at a high level of abstraction, or as control languages, particularly for job control languages on mainframes.

The term scripting language is also used in a wider sense, namely, to refer to dynamic high-level programming languages in general; some are strictly interpreted languages, while others use a form of compilation.
In this context, the term script refers to a small program in such a language; typically, contained in a single file, and no larger than a few thousand lines of code.

The spectrum of scripting languages ranges from small to large, and from highly domain-specific language to general-purpose programming languages. A language may start as small and highly domain-specific and later develop into a portable and general-purpose language; conversely, a general-purpose language may later develop special domain-specific dialects.

Examples[edit]

  • AWK, a text-processing language available in most Unix-like operating systems, which has been ported to other operating systems.
  • Bash, an interpreted scripting language for use on Unix, GNU and other Unix-like operating systems and environments.
  • Groovy is an object-oriented scripting language for the Java platform, similar to Python, Ruby, and Smalltalk.
  • JavaScript (later: ECMAScript), originally a very small, highly domain-specific language, limited to running within a web browser to dynamically modify the web page being shown, that later developed into a widely portable general-purpose programming language.
  • Lisp, a family of general-purpose languages and extension languages for specific applications, e.g. Emacs Lisp, for the Emacs editor.
  • Lua, a language designed for use as an extension language for applications in general, used by many different applications.
  • Perl,[2] a text-processing language that later developed into a general-purpose language, also used as an extension language for various applications.
  • PowerShell, a scripting language originally for use with Microsoft Windows but later also available for macOS and Linux.
  • Python, a general-purpose scripting language with simple syntax, particularly suited to text processing and also used as an extension language.
  • Rexx, a scripting language in IBM’s VM/SP R3. NetRexx and Object Rexx are based on REXX. Used on several platforms. Also used as extension languages for applications.
  • sed, a text-processing language available in most Unix-like operating systems, which has been ported to other operating systems.
  • Tcl,[3] a scripting language for Unix-like environments, popular in the 1990s. Can be used in conjunction with Tk to develop GUI applications.
  • Visual Basic for Applications (VBA), an extension language developed specifically for Microsoft Office applications, and implemented at least partially in many non-Microsoft applications.

Some game systems have been extensively extended in functionality by scripting extensions using custom languages, notably the Second Life virtual world (using Linden Scripting Language) and the Trainz franchise of Railroad simulators (using TrainzScript). In some games, such as Wesnoth, users may play custom variants of the game defined by user-contributed scripts.

Characteristics[edit]

Typical scripting languages are intended to be very fast to learn and write in, either as short source code files or interactively in a read–eval–print loop (REPL, language shell).[4] This generally implies relatively simple syntax and semantics; typically a «script» (code written in the scripting language) is executed from start to finish, as a «script», with no explicit entry point.

For example, it is uncommon to characterise Java as a scripting language because of its lengthy syntax and rules about which classes exist in which files, and it is not directly possible to execute Java interactively, because source files can only contain definitions that must be invoked externally by a host application or application launcher.

public class HelloWorld {
    public void printHelloWorld() {
        System.out.println("Hello World");
    }
}

This piece of code intended to print «Hello World» does nothing as main() is not declared in HelloWorld class, although the one below would be useful.

public class HelloWorld {
    public void printHelloWorld() {
        System.out.println("Hello World");
    }
    public static void main(String[] args) {
        printHelloWorld();
    }
}

In the example above, main is defined and so this can be invoked by the launcher, although this still cannot be executed interactively.
In contrast, Python allows the definition of some functions in a single file, or to avoid functions altogether and use imperative programming style, or even use it interactively.

This one line of Python code prints «Hello World»; no declarative statement like main() is required here.

A scripting language is usually interpreted from source code or bytecode.[5] By contrast, the software environment (interpreter) the scripts are written for is typically written in a compiled language and distributed in machine code form.

Scripting languages may be designed for use by end users of a program—end-user development—or may be only for internal use by developers, so they can write portions of the program in the scripting language. Scripting languages typically use abstraction, a form of information hiding, to spare users the details of internal variable types, data storage, and memory management.

Scripts are often created or modified by the person executing them,[6] but they are also often distributed, such as when large portions of games are written in a scripting language, notably the Google Chrome T-rex game.

History[edit]

Early mainframe computers (in the 1950s) were non-interactive, instead using batch processing. IBM’s Job Control Language (JCL) is the archetype of languages used to control batch processing.[7]

The first interactive shells were developed in the 1960s to enable remote operation of the first time-sharing systems, and these used shell scripts, which controlled running computer programs within a computer program, the shell. Calvin Mooers in his TRAC language is generally credited with inventing command substitution, the ability to embed commands in scripts that when interpreted insert a character string into the script.[8] Multics calls these active functions.[9]
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.[10] Multics included an offshoot of CTSS RUNCOM, also called RUNCOM.[11] EXEC was eventually replaced by EXEC 2 and REXX.

Languages such as Tcl and Lua were specifically designed as general-purpose scripting languages that could be embedded in any application. Other languages 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.

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 JavaScript (a dialect of ECMAScript) or XUL.

Types[edit]

Scripting languages can be categorized into several different types, with a considerable degree of overlap among the types.

Glue languages[edit]

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 glue code, connecting software components, and a language specialized for this purpose is a glue language. Pipelines and shell scripting are archetypal examples of glue languages, and Perl was initially developed to fill this same role. Web development can be considered a use of glue languages, interfacing between a database and web server. But if a substantial amount of logic is written in script, it is better characterized as simply another software component, not «glue».

Glue languages are especially useful for writing and maintaining:

  • custom commands for a command shell;[12]
  • smaller programs than those that are better implemented in a compiled language;[13]
  • «wrapper» programs for executables, 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.;[14]
  • scripts that may change;[15]
  • Rapid application development of a solution eventually implemented in another, usually compiled, language.[citation needed]

Glue language examples:

  • AppleScript
  • ColdFusion
  • DCL
  • Embeddable Common Lisp
  • ecl
  • Erlang
  • EXEC
  • EXEC2
  • JCL
  • CoffeeScript
  • Julia
  • JScript and JavaScript
  • Lua
  • m4
  • Perl (5 and Raku)
  • PHP
  • PowerShell
  • Pure
  • Python
  • Rebol
  • Red
  • Rexx
  • NetRexx
  • Ruby
  • Scheme
  • Tcl
  • Unix Shell scripts (ksh, csh, bash, sh and others)
  • VBScript
  • Work Flow Language
  • XSLT

Macro languages exposed to operating system or application components can serve as glue languages. These include Visual Basic for Applications, WordBasic, LotusScript, CorelScript, Hummingbird Basic, QuickScript, Rexx, SaxBasic, and WinWrap Basic. Other tools like AWK can also be considered glue languages, as can any language implemented by a Windows Script Host engine (VBScript, JScript and VBA by default in Windows and third-party engines including implementations of Rexx, Perl, Tcl, Python, XSLT, Ruby, Modern Pascal, Delphi, and C). A majority of applications can access and use operating system components via the object models or its own functions.

Other devices like programmable calculators may also have glue languages; the operating systems of PDAs such as Windows CE may have available native or third-party macro tools that glue applications together, in addition to implementations of common glue languages—including Windows NT, DOS, and some Unix shells, Rexx, Modern Pascal, PHP, and Perl. Depending upon the OS version, WSH and the default script engines (VBScript and JScript) are available.

Programmable calculators can be programmed in glue languages in three ways. For example, the Texas Instruments TI-92, by factory default can be programmed with a command script language. Inclusion of the scripting and glue language Lua in the TI-NSpire series of calculators could be seen as a successor to this. The primary on-board high-level programming languages of most graphing calculators (most often Basic variants, sometimes Lisp derivatives, and more uncommonly, C derivatives) in many cases can glue together calculator functions—such as graphs, lists, matrices, etc. Third-party implementations of more comprehensive Basic version that may be closer to variants listed as glue languages in this article are available—and attempts to implement Perl, Rexx, or various operating system shells on the TI and HP graphing calculators are also mentioned. PC-based C cross-compilers for some of the TI and HP machines used with tools that convert between C and Perl, Rexx, AWK, and shell scripts to Perl, Modern Pascal, VBScript to and from Perl make it possible to write a program in a glue language for eventual implementation (as a compiled program) on the calculator.[citation needed]

Editor languages[edit]

A number of text editors support macros written either using a macro language built into the editor, e.g., The SemWare Editor (TSE), vi improved (VIM), or using an external implementation, e.g., XEDIT, or both, e.g., KEDIT. Sometimes text editors and edit macros are used under the covers to provide other applications, e.g., FILELIST and RDRLIST in CMS .

Job control languages and shells[edit]

A 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[16] (in this sense, one might think of shells as being descendants of IBM’s JCL, or Job Control Language, which was used for exactly this purpose). Many of these languages’ interpreters double 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[edit]

With the advent of graphical user interfaces, a specialized kind of scripting language emerged for controlling a computer. These languages interact with the same graphic windows, menus, buttons, and so on, that a human user would. They do this by simulating the actions of a user. These languages are typically used to automate user actions. Such languages are also called «macros» when control is through simulated key presses or mouse clicks, as well as tapping or pressing on a touch-activated screen.

These languages could in principle be used to control any GUI application; but, in practice their use is limited because their use needs support from the application and from the operating system. There are a few exceptions to this limitation. Some GUI scripting languages are based on recognizing graphical objects from their display screen pixels. These GUI scripting languages do not depend on support from the operating system or application.

When the GUI provides the appropriate interfaces, as in the IBM Workplace Shell, a generic scripting language, e.g. OREXX, can be used for writing GUI scripts.

Application-specific languages[edit]

Application specific languages can be split in many different categories, i.e. standalone based app languages (executable) or internal application specific languages (postscript, xml, gscript as some of the widely distributed scripts, respectively implemented by Adobe, MS and Google) among others 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. 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.

Extension/embeddable languages[edit]

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 may be technically equivalent to an application-specific extension language but when an application embeds a «common» language, the user gets the advantage of being able to transfer skills from application to application. A more generic alternative is simply to provide a library (often a C library) that a general-purpose language can use to control the application, without modifying the language for the specific domain.

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. On the other hand, Rexx was originally created as a job control language, but is widely used as an extension language as well as a general-purpose language. Perl is a general-purpose language, but had the Oraperl (1990) dialect, consisting of a Perl 4 binary with Oracle Call Interface compiled in. This has however since been replaced by a library (Perl Module), DBD::Oracle.[17][18]

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 Maya Embedded Language, or Blender which uses 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.

Ch is another C compatible scripting option for the industry to embed into C/C++ application programs.

See also[edit]

  • Architecture description language
  • Authoring language
  • Build automation[19]
  • Configuration file
  • Interpreter directive / Shebang (Unix)
  • Templating language

References[edit]

  1. ^ «ECMAScript 2019 Language Specification». www.ecma-international.org. Retrieved 2018-04-02.
  2. ^ Sheppard, Doug (2000-10-16). «Beginner’s Introduction to Perl». dev.perl.org. Retrieved 2011-01-08.
  3. ^ Programming is Hard, Let’s Go Scripting…, Larry Wall, December 6, 2007
  4. ^ 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.»{{cite book}}: CS1 maint: postscript (link)
  5. ^ Brown, Vicki. «Scripting Languages». Retrieved 2009-07-22.
  6. ^ Loui, Ronald (2008). «In praise of scripting». IEEE Computer. Archived from the original on 2015-09-23. Retrieved 2013-08-27.
  7. ^ IBM Corporation (1967). IBM System/360 Operating System Job Control Language (C28-6529-4) (PDF).
  8. ^ Mooers, Calvin. «TRAC, A Procedure-Describing Language for the Reactive Typewriter». Archived from the original on 2001-04-25. Retrieved March 9, 2012.
  9. ^ Van Vleck, Thomas (ed.). «Multics Glossary – A — (active function)». Retrieved March 9, 2012.
  10. ^ Varian, Melinda. «VM AND THE VM COMMUNITY: Past, Present, and Future» (PDF). Retrieved March 9, 2012.
  11. ^ Van Vleck, Thomas (ed.). «Multics Glossary – R — (RUNCOM)». Retrieved March 9, 2012.
  12. ^ «What is glue code (glue code language)? — Definition from WhatIs.com». WhatIs.com. Retrieved 2022-01-31.
  13. ^ Larson, Quincy (10 January 2020). «Interpreted vs Compiled Programming Languages». Free Code Camp. Retrieved 23 February 2022.{{cite web}}: CS1 maint: url-status (link)
  14. ^ Balkis, Anton. «Script Adalah». Raja Tips. Retrieved 23 February 2022.{{cite web}}: CS1 maint: url-status (link)
  15. ^ Axelsson, Mats. «Shell scripts — What can you change». Linux Hint. Retrieved 23 February 2022.{{cite web}}: CS1 maint: url-status (link)
  16. ^ «Job Control Basics (Bash Reference Manual)». www.gnu.org. Retrieved 2022-05-20.
  17. ^ Oraperl, CPAN]
  18. ^
    Perl, Underground Oracle FAQ
  19. ^ van Rossum, Guido (January 6–8, 1998). «Glue it all together». Glue It All Together With Python. python.org.

Further reading[edit]

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

External links[edit]

  • Patterns for Scripted Applications at the Wayback Machine (archived October 10, 2004)

A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system.[1] Scripting languages are usually interpreted at runtime rather than compiled.

A scripting language’s primitives are usually elementary tasks or API calls[clarification needed], and the scripting language allows them to be combined into more programs. Environments that can be automated through scripting include application software, text editors, web pages, operating system shells, embedded systems, and computer games. A scripting language can be viewed as a domain-specific language for a particular environment; in the case of scripting an application, it is also known as an extension language. Scripting languages are also sometimes referred to as very high-level programming languages, as they sometimes operate at a high level of abstraction, or as control languages, particularly for job control languages on mainframes.

The term scripting language is also used in a wider sense, namely, to refer to dynamic high-level programming languages in general; some are strictly interpreted languages, while others use a form of compilation.
In this context, the term script refers to a small program in such a language; typically, contained in a single file, and no larger than a few thousand lines of code.

The spectrum of scripting languages ranges from small to large, and from highly domain-specific language to general-purpose programming languages. A language may start as small and highly domain-specific and later develop into a portable and general-purpose language; conversely, a general-purpose language may later develop special domain-specific dialects.

Examples[edit]

  • AWK, a text-processing language available in most Unix-like operating systems, which has been ported to other operating systems.
  • Bash, an interpreted scripting language for use on Unix, GNU and other Unix-like operating systems and environments.
  • Groovy is an object-oriented scripting language for the Java platform, similar to Python, Ruby, and Smalltalk.
  • JavaScript (later: ECMAScript), originally a very small, highly domain-specific language, limited to running within a web browser to dynamically modify the web page being shown, that later developed into a widely portable general-purpose programming language.
  • Lisp, a family of general-purpose languages and extension languages for specific applications, e.g. Emacs Lisp, for the Emacs editor.
  • Lua, a language designed for use as an extension language for applications in general, used by many different applications.
  • Perl,[2] a text-processing language that later developed into a general-purpose language, also used as an extension language for various applications.
  • PowerShell, a scripting language originally for use with Microsoft Windows but later also available for macOS and Linux.
  • Python, a general-purpose scripting language with simple syntax, particularly suited to text processing and also used as an extension language.
  • Rexx, a scripting language in IBM’s VM/SP R3. NetRexx and Object Rexx are based on REXX. Used on several platforms. Also used as extension languages for applications.
  • sed, a text-processing language available in most Unix-like operating systems, which has been ported to other operating systems.
  • Tcl,[3] a scripting language for Unix-like environments, popular in the 1990s. Can be used in conjunction with Tk to develop GUI applications.
  • Visual Basic for Applications (VBA), an extension language developed specifically for Microsoft Office applications, and implemented at least partially in many non-Microsoft applications.

Some game systems have been extensively extended in functionality by scripting extensions using custom languages, notably the Second Life virtual world (using Linden Scripting Language) and the Trainz franchise of Railroad simulators (using TrainzScript). In some games, such as Wesnoth, users may play custom variants of the game defined by user-contributed scripts.

Characteristics[edit]

Typical scripting languages are intended to be very fast to learn and write in, either as short source code files or interactively in a read–eval–print loop (REPL, language shell).[4] This generally implies relatively simple syntax and semantics; typically a «script» (code written in the scripting language) is executed from start to finish, as a «script», with no explicit entry point.

For example, it is uncommon to characterise Java as a scripting language because of its lengthy syntax and rules about which classes exist in which files, and it is not directly possible to execute Java interactively, because source files can only contain definitions that must be invoked externally by a host application or application launcher.

public class HelloWorld {
    public void printHelloWorld() {
        System.out.println("Hello World");
    }
}

This piece of code intended to print «Hello World» does nothing as main() is not declared in HelloWorld class, although the one below would be useful.

public class HelloWorld {
    public void printHelloWorld() {
        System.out.println("Hello World");
    }
    public static void main(String[] args) {
        printHelloWorld();
    }
}

In the example above, main is defined and so this can be invoked by the launcher, although this still cannot be executed interactively.
In contrast, Python allows the definition of some functions in a single file, or to avoid functions altogether and use imperative programming style, or even use it interactively.

This one line of Python code prints «Hello World»; no declarative statement like main() is required here.

A scripting language is usually interpreted from source code or bytecode.[5] By contrast, the software environment (interpreter) the scripts are written for is typically written in a compiled language and distributed in machine code form.

Scripting languages may be designed for use by end users of a program—end-user development—or may be only for internal use by developers, so they can write portions of the program in the scripting language. Scripting languages typically use abstraction, a form of information hiding, to spare users the details of internal variable types, data storage, and memory management.

Scripts are often created or modified by the person executing them,[6] but they are also often distributed, such as when large portions of games are written in a scripting language, notably the Google Chrome T-rex game.

History[edit]

Early mainframe computers (in the 1950s) were non-interactive, instead using batch processing. IBM’s Job Control Language (JCL) is the archetype of languages used to control batch processing.[7]

The first interactive shells were developed in the 1960s to enable remote operation of the first time-sharing systems, and these used shell scripts, which controlled running computer programs within a computer program, the shell. Calvin Mooers in his TRAC language is generally credited with inventing command substitution, the ability to embed commands in scripts that when interpreted insert a character string into the script.[8] Multics calls these active functions.[9]
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.[10] Multics included an offshoot of CTSS RUNCOM, also called RUNCOM.[11] EXEC was eventually replaced by EXEC 2 and REXX.

Languages such as Tcl and Lua were specifically designed as general-purpose scripting languages that could be embedded in any application. Other languages 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.

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 JavaScript (a dialect of ECMAScript) or XUL.

Types[edit]

Scripting languages can be categorized into several different types, with a considerable degree of overlap among the types.

Glue languages[edit]

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 glue code, connecting software components, and a language specialized for this purpose is a glue language. Pipelines and shell scripting are archetypal examples of glue languages, and Perl was initially developed to fill this same role. Web development can be considered a use of glue languages, interfacing between a database and web server. But if a substantial amount of logic is written in script, it is better characterized as simply another software component, not «glue».

Glue languages are especially useful for writing and maintaining:

  • custom commands for a command shell;[12]
  • smaller programs than those that are better implemented in a compiled language;[13]
  • «wrapper» programs for executables, 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.;[14]
  • scripts that may change;[15]
  • Rapid application development of a solution eventually implemented in another, usually compiled, language.[citation needed]

Glue language examples:

  • AppleScript
  • ColdFusion
  • DCL
  • Embeddable Common Lisp
  • ecl
  • Erlang
  • EXEC
  • EXEC2
  • JCL
  • CoffeeScript
  • Julia
  • JScript and JavaScript
  • Lua
  • m4
  • Perl (5 and Raku)
  • PHP
  • PowerShell
  • Pure
  • Python
  • Rebol
  • Red
  • Rexx
  • NetRexx
  • Ruby
  • Scheme
  • Tcl
  • Unix Shell scripts (ksh, csh, bash, sh and others)
  • VBScript
  • Work Flow Language
  • XSLT

Macro languages exposed to operating system or application components can serve as glue languages. These include Visual Basic for Applications, WordBasic, LotusScript, CorelScript, Hummingbird Basic, QuickScript, Rexx, SaxBasic, and WinWrap Basic. Other tools like AWK can also be considered glue languages, as can any language implemented by a Windows Script Host engine (VBScript, JScript and VBA by default in Windows and third-party engines including implementations of Rexx, Perl, Tcl, Python, XSLT, Ruby, Modern Pascal, Delphi, and C). A majority of applications can access and use operating system components via the object models or its own functions.

Other devices like programmable calculators may also have glue languages; the operating systems of PDAs such as Windows CE may have available native or third-party macro tools that glue applications together, in addition to implementations of common glue languages—including Windows NT, DOS, and some Unix shells, Rexx, Modern Pascal, PHP, and Perl. Depending upon the OS version, WSH and the default script engines (VBScript and JScript) are available.

Programmable calculators can be programmed in glue languages in three ways. For example, the Texas Instruments TI-92, by factory default can be programmed with a command script language. Inclusion of the scripting and glue language Lua in the TI-NSpire series of calculators could be seen as a successor to this. The primary on-board high-level programming languages of most graphing calculators (most often Basic variants, sometimes Lisp derivatives, and more uncommonly, C derivatives) in many cases can glue together calculator functions—such as graphs, lists, matrices, etc. Third-party implementations of more comprehensive Basic version that may be closer to variants listed as glue languages in this article are available—and attempts to implement Perl, Rexx, or various operating system shells on the TI and HP graphing calculators are also mentioned. PC-based C cross-compilers for some of the TI and HP machines used with tools that convert between C and Perl, Rexx, AWK, and shell scripts to Perl, Modern Pascal, VBScript to and from Perl make it possible to write a program in a glue language for eventual implementation (as a compiled program) on the calculator.[citation needed]

Editor languages[edit]

A number of text editors support macros written either using a macro language built into the editor, e.g., The SemWare Editor (TSE), vi improved (VIM), or using an external implementation, e.g., XEDIT, or both, e.g., KEDIT. Sometimes text editors and edit macros are used under the covers to provide other applications, e.g., FILELIST and RDRLIST in CMS .

Job control languages and shells[edit]

A 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[16] (in this sense, one might think of shells as being descendants of IBM’s JCL, or Job Control Language, which was used for exactly this purpose). Many of these languages’ interpreters double 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[edit]

With the advent of graphical user interfaces, a specialized kind of scripting language emerged for controlling a computer. These languages interact with the same graphic windows, menus, buttons, and so on, that a human user would. They do this by simulating the actions of a user. These languages are typically used to automate user actions. Such languages are also called «macros» when control is through simulated key presses or mouse clicks, as well as tapping or pressing on a touch-activated screen.

These languages could in principle be used to control any GUI application; but, in practice their use is limited because their use needs support from the application and from the operating system. There are a few exceptions to this limitation. Some GUI scripting languages are based on recognizing graphical objects from their display screen pixels. These GUI scripting languages do not depend on support from the operating system or application.

When the GUI provides the appropriate interfaces, as in the IBM Workplace Shell, a generic scripting language, e.g. OREXX, can be used for writing GUI scripts.

Application-specific languages[edit]

Application specific languages can be split in many different categories, i.e. standalone based app languages (executable) or internal application specific languages (postscript, xml, gscript as some of the widely distributed scripts, respectively implemented by Adobe, MS and Google) among others 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. 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.

Extension/embeddable languages[edit]

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 may be technically equivalent to an application-specific extension language but when an application embeds a «common» language, the user gets the advantage of being able to transfer skills from application to application. A more generic alternative is simply to provide a library (often a C library) that a general-purpose language can use to control the application, without modifying the language for the specific domain.

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. On the other hand, Rexx was originally created as a job control language, but is widely used as an extension language as well as a general-purpose language. Perl is a general-purpose language, but had the Oraperl (1990) dialect, consisting of a Perl 4 binary with Oracle Call Interface compiled in. This has however since been replaced by a library (Perl Module), DBD::Oracle.[17][18]

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 Maya Embedded Language, or Blender which uses 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.

Ch is another C compatible scripting option for the industry to embed into C/C++ application programs.

See also[edit]

  • Architecture description language
  • Authoring language
  • Build automation[19]
  • Configuration file
  • Interpreter directive / Shebang (Unix)
  • Templating language

References[edit]

  1. ^ «ECMAScript 2019 Language Specification». www.ecma-international.org. Retrieved 2018-04-02.
  2. ^ Sheppard, Doug (2000-10-16). «Beginner’s Introduction to Perl». dev.perl.org. Retrieved 2011-01-08.
  3. ^ Programming is Hard, Let’s Go Scripting…, Larry Wall, December 6, 2007
  4. ^ 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.»{{cite book}}: CS1 maint: postscript (link)
  5. ^ Brown, Vicki. «Scripting Languages». Retrieved 2009-07-22.
  6. ^ Loui, Ronald (2008). «In praise of scripting». IEEE Computer. Archived from the original on 2015-09-23. Retrieved 2013-08-27.
  7. ^ IBM Corporation (1967). IBM System/360 Operating System Job Control Language (C28-6529-4) (PDF).
  8. ^ Mooers, Calvin. «TRAC, A Procedure-Describing Language for the Reactive Typewriter». Archived from the original on 2001-04-25. Retrieved March 9, 2012.
  9. ^ Van Vleck, Thomas (ed.). «Multics Glossary – A — (active function)». Retrieved March 9, 2012.
  10. ^ Varian, Melinda. «VM AND THE VM COMMUNITY: Past, Present, and Future» (PDF). Retrieved March 9, 2012.
  11. ^ Van Vleck, Thomas (ed.). «Multics Glossary – R — (RUNCOM)». Retrieved March 9, 2012.
  12. ^ «What is glue code (glue code language)? — Definition from WhatIs.com». WhatIs.com. Retrieved 2022-01-31.
  13. ^ Larson, Quincy (10 January 2020). «Interpreted vs Compiled Programming Languages». Free Code Camp. Retrieved 23 February 2022.{{cite web}}: CS1 maint: url-status (link)
  14. ^ Balkis, Anton. «Script Adalah». Raja Tips. Retrieved 23 February 2022.{{cite web}}: CS1 maint: url-status (link)
  15. ^ Axelsson, Mats. «Shell scripts — What can you change». Linux Hint. Retrieved 23 February 2022.{{cite web}}: CS1 maint: url-status (link)
  16. ^ «Job Control Basics (Bash Reference Manual)». www.gnu.org. Retrieved 2022-05-20.
  17. ^ Oraperl, CPAN]
  18. ^
    Perl, Underground Oracle FAQ
  19. ^ van Rossum, Guido (January 6–8, 1998). «Glue it all together». Glue It All Together With Python. python.org.

Further reading[edit]

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

External links[edit]

  • Patterns for Scripted Applications at the Wayback Machine (archived October 10, 2004)

Сценарные языки программирования (скрипт языки)

Языки передачи, хранения, обработки и представления информации

Первые скриптовые языки начали разрабатываться в 1960-ых годах с целью автоматизации
процесса редактирования — компиляции — линковки — запуска при написании программ.
Изначально их возможности были бедны — они просто избавляли от необходимости повтора нескольких команд,
т. е.это были просто текстовые файлы, содержащие команды, которые обычно вводились операторами.

Скрипты не требуют компиляции (преобразования в машинный код), а выполняются посредством интеграции в программное окружение.

Сетевые языки — языки, предназначенные для организации взаимодействия удаленных компьютеров в интенсивном интерактивном режиме,
а поэтому они построены на принципах интерпретации, то есть построчной, интерактивной обработки строк программного кода,
описывающего некоторый сценарий (скрипт) сетевого взаимодействия компьютеров, поэтому часто они называются скриптовыми языками,
хотя скриптовые языки не обязательно являются сетевыми, к примеру, пакетные командные языки различных операционных сред.

Скриптовые языки применяются как для клиентского (JScript, VBScript),
так и для серверного (PHP) программирования веб-сайтов.

Имеются и универсальные скрипт-языки (Perl, Python, Ruby, Tcl).
Последние создавались для некоторых определённых целей, но со временем расширялись и применялись для всё более широкого круга задач
(например, Perl изначально создавалася как язык обработки текста, но затем был значительно усовершенствован).
Сейчас их уже называют не скриптовыми, а динамическими языками программирования, т.к.
они позволяют определять типы данных и осуществлять синтаксический анализ и компиляцию «на лету» — на этапе выполнения программы.
Такие языки удобны для быстрой разработки приложений.

Помимо упомянутых, к динамическим языкам относят также Smalltalk и JavaScript.
Некоторыми динамическими чертами обладает и Visual Basic.

Технологии Perl, SSI, PHP предназначены для разработки динамических веб-сайтов
и доступны на любой платформе.

Разделы страницы о сценарных языках программирования (скрипт-языках):

  • Виды сценарных языков
  • Справочники скриптовых языков и библиотеки веб-скриптов
  • Встроенные (прикладные) сценарные языки
  • Командно-сценарные языки (в т.ч. скрипт-оболочки для операционных систем):
    • Юникс-оболочка Shell
  • Универсальные сценарные языки (общего назначения):
    • Язык CGI-программирования Perl
    • Язык функционального программирования Python
    • Контекстный интерпретатор REBOL
    • Интерпретатор Ruby
    • Сценарный интерпретатор R
    • Событийный язык прототипов Tcl
  • Специальные сценарные языки:
    • Язык Lua

Виды сценарных языков

Типы скриптовых языков:

  1. Языки обработки текста:
    AWK, Perl (последний изначально был таким, но затем был значительно усовершенствован и стал универсальным).
  2. Командные оболочки: AppleScript, sh, csh, bash.
    AppleScript в 2007 году встроен в Mac OS X.
  3. Языки для веб-разработки:
    серверные (PHP),
    клиентские (JavaScript — считающийся «встроенным» сценарным языком),
    универсальные (ниже).
  4. Универсальные (Perl, Python, Tcl, Ruby).
    Обычно эти языки создавались для каких-то конкретных целей, но со временем расширялись и применялись
    для всё более и более широкого круга задач (в т.ч. веб-разработки).
    Сейчас их уже называют «динамическими» языками программирования.
  5. Встроенные в прикладные программы (VBA, ActionScript).
    В прикладной программе скрипт — это программа, которая автоматизирует некоторую задачу,
    которую без сценария пользователь делал бы вручную, используя интерфес программы.

Справочники скриптовых языков и библиотеки веб-скриптов

  • Портал Web-Script
    HTML, CSS, PHP, Perl, JavaScript, Object Pascal…
  • SCRIPT information network
    (обзоры и некоторые руководства по языкам скриптов: JS, VBS, Perl, PHP).
  • Скрипты на WOweb.ru — Лучшие скрипты — Бесплатные скрипты.

Встроенные (прикладные) сценарные языки

Сценарные языки этого типа начали появляться в 1980-е годы, когда на промышленных ПК стало возможным интерактивное общение с ОС.
В клиент-серверной архитектуре такие языки работали в клиентской части программного обеспечения.

Это такие языки как:

  • AutoLISP (диалект Лисп в САПРе AutoCAD),
  • ECMAScript и его диалекты (JScript и JavaScript, применяемые в
    клиентском веб-программировании,
    и ActionScript — язык API во Flash-анимации),
  • Emacs Lisp (диалект Лисп в текстовых редакторах Emacs),
  • ERM (ER-модель для описания концептуальной схемы предметной области),
  • Game Maker Language,
  • LotusScript,
  • MQL4 script,
  • UnrealScript,
  • VBA (Visual Basic for Application),
  • ВЯ 1С:Предприятие.

Командно-сценарные языки (в т.ч. скрипт-оболочки ОС)

Они появились ещё в 1960-х годах для управления заданиями в операционных системах (самый известный — JCL для OS/360).
В этот класс входят языки пакетной обработки (англ. batch language)
и языки командных оболочек, например sh (и его разновидности bash, csh, ksh) для Unix.
Эти языки чаще всего используются в пакетном режиме обработки.

Другие известные командно-сценарные языки:

  • Pilot,
  • REXX (от IBM для OS/2),
  • AppleScript (язык сценариев для Apple);
  • интерпретаторы командной строки COMMAND.COM и cmd.exe,
  • а также скрипт-язык VB Script
  • и средство автоматизации PowerShell от Microsoft для MS DOS, OS/2 и Windows.

Юникс-оболочки Shell (sh, csh, bash)

Bourne shell (часто sh по имени исполняемого файла) — ранняя командная оболочка UNIX,
разработанная 1978 г. Стивеном Борном из Bell Labs
и выпущенная в составе 7-го издания операционной системы UNIX (UNIX Version 7).
Даннаяоболочка является де-факто стандартом и доступна почти в любом дистрибутиве *nix.
Существует много командных оболочек, основанных (идейно или напрямую) на Bourne shell.

C shell (csh) — командная оболочка UNIX со встроенным скриптовым языком, разработанная Биллом Джоем,
активным разработчиком BSD UNIX, в 1979 году.
Базировался на коде командного интерпретатора шестой версии UNIX.
Скриптовый язык не уступает шеллу Борна по мощности, но отличается синтаксисом.
В то время как Борн скопировал все основные операторы с языка Algol 68, Билл Джой использовал в качестве макета
язык C, вероятно, руководствуясь своими предпочтениями и предпочтениями других пользователей BSD UNIX.

Bash (от англ. Bourne again shell, каламбур «Born again» shell — «Возрождённый» shell) —
усовершенствованная и модернизированная вариация командной оболочки Bourne shell.
Одна из наиболее популярных современных разновидностей командной оболочки UNIX.
Особенно популярна в среде GNU/Linux, где она часто используется в качестве предустановленной командной оболочки.

Bash — это акроним от Bourne-again-shell, «еще-одна-командная-оболочка-Борна».
Название — игра слов: Bourne-shell — одна из популярных разновидностей командной оболочки для UNIX (sh),
автором которой является Стивен Борн (1978), усовершенствована в 1987 году Брайаном Фоксом.
Фамилия Bourne (Борн) перекликается с английским словом born, означающим «родившийся», отсюда: рождённая-вновь-командная оболочка.

  • .

Универсальные сценарные языки (общего назначения)

Для человека с молотком любая проблема кажется гвоздем.

Язык CGI-программирования Perl

Одногорбый верблюд дромадер - символ Перла

PHP — это малое зло, созданное некомпетентными любителями,
а Perl — это громадное и хитроумное зло, созданное опытными и извращёнными профессионалами.
(Jon Ribbens, программист)

Два девиза Perl:

  1. есть больше одного способа сделать это;
  2. простые вещи должны быть простыми, а сложные вещи — возможными.

Perl — высокоуровневый интерпретируемый динамический язык программирования общего назначения,
созданный Ларри Уоллом, лингвистом по образованию.
Название языка представляет собой аббревиатуру от Practical Extraction and Report Language
(«практический язык для извлечения данных и составления отчётов»).
Сначала аббревиатура состояла из 5 символов и совпадала с английским словом pearl («жемчужина»).
А когда стало известно, что такой язык существует, букву «а» убрали.

Основной особенностью языка считаются его богатые возможности для работы с текстом,
в том числе реализованные при помощи регулярных выражений.
Perl унаследовал много свойств от языков С, shell script, AWK.

На сегодняшний день Perl стал неотъемлемым инструментом в инструментарии web-программистов.
В отличии от таких технологий как JavaScript и VBScript, perl-скрипты выполняются на сервере [альтернатива PHP],
что позволяет создавать полноценные интерактивные приложения, управлять базами данных, почтой,
создавать баннерные сети, счетчики, гостевые книги, форумы и многое, многое другое.

Perl прославился как язык, программы на котором очень сложно понять спустя 5 минут после написания.
Обилие одно-двух-символьных функций и переменных делает своё дело.
Текст больше похож на набор смайликов, чем на программу. Особенно, если в ней используются регулярные выражения.
Perl — один из немногих языков, где регулярные выражения закреплены на уровне синтаксиса.

  • The Perl Directory — perl.org Официальный сайт разработчиков Perl.
  • Язык программирования PERL.
    Профессионально созданный сайт. Хорошо наполнен [!]
  • Учебник по Perl. В т.ч.
    Ресурсы Perl.
  • Что такое Перл? Прошлое, настоящее и будущее языка.
  • О Перловке на Лурке.
  • Проект «Язык программирования Perl».
    Проект создан с целью помочь как начинающим так и профессионалам в разработке своих web приложений на Perl.
    Здесь Вы найдёте документацию и учебники по Perl, справочники [хорошие статьи разных авторов].
  • ЯЗЫК ПРОГРАММИРОВАНИЯ PERL.

Язык функционального программирования Python

Питон - символ скриптового языка Python

Python — объектно-ориентированный язык сверхвысокого уровня.
Python, в отличии от Java, не требует исключительно объектной ориентированности,
но классы в Python так просто изучить и так удобно использовать,
что даже новые и неискушенные пользователи быстро переходят на ОО-подход…

Одной из интересных синтаксических особенностей языка является выделение блоков программы с помощью отступов.

Появился в: 1990 г.
Автор(ы): Гвидо ван Россум.
Испытал влияние: ABC, Modula-3, Lisp, Smalltalk, C, Java, Icon.
Повлиял на: Ruby, Boo, Groovy, ECMAScript.

Groovy — объектно-ориентированный язык программирования, разработанный для платформы Java
как дополнение к языку Java с возможностями Python, Ruby и Smalltalk.

Python (Питон) — высокоуровневый язык программирования общего назначения
с акцентом на производительность разработчика и читаемость кода.
Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций.

Python поддерживает несколько парадигм программирования [!], в т.ч.
структурное, объектно-ориентированное, функциональное, императивное, аспектно-ориентированное.

Основные архитектурные черты — динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений,
поддержка многопоточных вычислений и удобные высокоуровневые структуры данных.

Код в Python организовывается в функции и классы, которые могут объединяться в модули (которые в свою очередь могут быть объединены в пакеты).

Python пригодится в случаях, когда задачи, связанные с анализом данных, вплетаются в работу веб-приложений,
или если статистический код требуется инкорпорировать в рабочую базу данных.
Python, будучи полнофункциональным языком программирования, отлично подходит для реализации алгоритмов с их последующим практическим использованием.

Обязательно установите NumPy /SciPy (научные вычисления) и pandas (манипуляции с данными), чтобы приспособить Python для анализа данных.
Кроме того, обратите внимание на библиотеку matplotlib для создания графики и scikit-learn для машинного обучения.

Контекстный интерпретатор REBOL

REBOL (Relative Expression Based Object Language) — контекстно-зависимый объектный язык программирования,
созданный специально для распределенных вычислений в Web. Позиционируется как язык обмена сообщениями.

REBOL (Ребол) — это высокоуровневый мета-язык.
Основные концепции языка: скрипты (тексты), выражения, серии, блоки, файлы, функции, объекты, модули, порты,
протоколы, синтаксический анализ, математика, ошибки, графика нижнего уровня, графические диалекты
.
Язык прост в понимании, ему можно учить школьников и немедленно начинать программировать.
Но, одновременно, он достаточно мощный благодаря своей универсальности,
а отдельные приемы и методологии могут быть предметом глубокого университетского курса.

Интерпретатор Ruby

Ruby - рубин программирования?

Ruby — универсальный скрипт-язык для ООП, пришедшего на смену Perl + Python,
и сочетающего также достоинства языков Smalltalk, Eifel, Ada, Java.
Используется для быстрого программирования прототипов систем и в других областях.

История языка Ruby началась в 1993 году, когда Якихиро Мацумото (известный как “matz”)
взялся за реализацию собственного скриптового языка, который бы был таким же мощным и удобным, как Perl,
и более объектно-ориентированным, чем Python [концептуально повлияли также
языки искусственного интеллекта].

Первая общедоступная версия 0.95 увидела свет в 1995 году. После этого Ruby быстро получил широкое распространение в Японии —
это легко объяснимо происхождением языка и отсутствием языкового барьера между первыми пользователями Ruby и его создателем.
За период с 1995 по 2002 год в Японии вышло около двадцати книг о Ruby, и Ruby стал в этой стране более популярным языком, чем Python.
После 2000 года началось распространение Ruby по всему миру…

Сейчас, по данным компании Black Duck Software, Ruby — четвёртый по их количеству язык программирования после Java, C/C++ и C#…
Тем не менее, это говорит не о популярности Ruby, а об активном и заинтересованном сообществе разработчиков вокруг языка,
которые так страстно и трепетно относятся к последнему…

Регулярные выражения — спасение от всех бед для одних и ночной кошмар для других разработчиков,
а если говорить объективно, то это мощнейший инструмент, требующий, однако, большой осторожности при применении.
Регулярные выражения (регексы, регекспы, регулярки) в языке Ruby основаны на синтаксисе Perl 5
и потому в основных чертах знакомы всем, кто использовал Perl, Python или PHP.
Но Ruby тем и хорош, что каждый компонент языка реализован со своим собственным подходом,
упрощающим использование данного инструмента и увеличивающим его мощность.

Главная цель Ruby — эффективность разработки программ, и пользователи найдут, что программирование на нем эффективно и даже забавно.
Этот язык хорошо приспособлен для таких проблемных областей, как обработка текста, программирование CGI и XML,
программирование для сети, приложения с графическим интерфейсом, прототипирование и обучение программированию.

Ruby – это тщательно сбалансированный язык. Его создатель, Yukihiro Matsumoto,
соединил конструкции его любимых языков (Perl, Smalltalk, Eiffel, Ada и Lisp),
чтобы сформировать новый язык, в котором функциональное программирование уравновешено императивным (процедурным).
Он часто повторял, что он “старается сделать Ruby естественным, но не простым языком в том плане, как он отображает жизнь.
Основываясь на этом, он добавляет: «Ruby прост на вид, но очень сложен внутри, подобно нашему человеческому телу.»

Порталы о языке Ruby

Обзоры и статьи о Ruby

Сценарный интерпретатор R со статанализом и графопостроением

R — интерпретируемый язык программирования, основным способом работы с которым является командный интерпретатор.
Язык является регистрозависимым, в плане синтаксиса он похож, с одной стороны, на функциональные
языки типа Scheme, с другой — на типичные современные сценарные языки, с простым синтаксисом и небольшим набором основных конструкций.
Язык объектный: любой программный объект в нём имеет набор атрибутов — именованный список значений, определяющих его.

В целом, как язык программирования, R довольно прост и даже примитивен.
Его наиболее сильная сторона — возможность неограниченного расширения с помощью пакетов.
В базовую поставку R включен основной набор пакетов, а всего по состоянию на 2019 год доступно более 15 316 пакетов.
В R реализованы практически все актуальные средства универсальных статистических вычислений,
такие как регрессионный анализ и анализ временных рядов,
а также множество специфических алгоритмов для решения узкоспециализированных задач и исследований в отдельных областях.

Ещё одна особенность языка — возможность создания качественной графики типографского уровня,
которая может быть экспортирована в распространённые графические форматы и использована для презентаций или публикаций.
Имеются готовые пакеты, связывающие R с GUI-фреймворками (например, основанными на Tcl/Tk)
и позволяющие создавать специализированные утилиты статистического анализа с графическим интерфейсом пользователя
и отображением результатов в виде графиков и диаграмм.

Язык R просто создан для визуализаций. Обязательно ознакомьтесь с пакетами для визуализации ggplot2, ggvis, googleVis и rCharts.

Событийный язык прототипов Tcl (Tool command language)

Перо - символ скрипт-языка Tcl

Интерпретируемый язык программирования высокого уровня Tcl ориентирован преимущественно на автоматизацию рутинных процессов ОС
и крупных программных систем, состоя из мощных команд, ориентированных на работу с абстрактными нетипизированными объектами.

Принципиальное отличие Tcl от командных языков ОС состоит в независимости от типа системы и, самое главное,
он позволяет создавать переносимые программы с графическим интерфейсом (GUI).

Tcl (Tool Command Language — «командный язык инструментов», читается «тикль») — скриптовый язык высокого уровня.
Tcl часто применяется совместно с графической библиотекой Tk (Tool Kit).
Связку Tcl/Tk по-русски иногда называют «Так-тикль».

Области применения языка — быстрое прототипирование, создание графических интерфейсов для консольных программ (пакетов программ),
встраивание в прикладные программы, тестирование. Иногда Tcl применяется для создания CGI скриптов.

Tcl, наряду с Perl и Python, стал одним из 3 классических скриптовых языков общего назначения.
Эта троица фигурирует не только в качестве списка свободных дистрибутивов, собираемых в ActiveState,
но и, например, как языки, на которых (помимо диалекта PL/pgSQL) можно писать триггеры и хранимые процедуры сервера БД PostgreSQL.

Особенностью языка является отсутствие ключевых слов.
Понятие команды в Tcl аналогично понятию процедуры или функции распространённых языков программирования.
Это относится и к управляющим конструкциям языка.
В сочетании с элементарным синтаксисом это обеспечивает хорошую расширяемость языка,
в том числе и библиотеками, написанными на других языках, таких как C/C++ или Java.

В Tcl также качественно реализована модель управления программой на основе событий.
События могут генерироваться таймером, при появлении данных в канале, изменении значения переменной,
при завершении какой-либо внешней программы, или просто при работе пользователя с интерфейсом Tk.
Можно задавать свои события и управлять ими.

Как и большинство современных скриптовых языков Tcl содержит развитые средства работы с регулярными выражениями,
работает с ассоциативными массивами и другими динамическими структурами данных.

В базовом Tcl нет поддержки ООП, однако существует множество расширений Tcl объектно-ориентированными механизмами,
реализованных в виде подключаемых библиотек на С, или самом Tcl.
Пространства имён поддерживаются на уровне ядра языка.

На Tcl легко программировать в функциональном стиле: он обеспечивает такие механизмы,
как функции высшего порядка и абстракции функций, хотя Tcl редко используют таким образом.

Специальные сценарные языки

Язык тиражирования Lua

Lua ([лу́а], порт. «луна») — интерпретируемый язык программирования, разработанный подразделением Tecgraf
(Computer Graphics Technology Group) Католического университета Рио-де-Жанейро (Бразилия).
Интерпретатор языка является свободно распространяемым, с открытыми исходными текстами на языке Си.

По возможностям, идеологии и реализации язык ближе всего к JavaScript,
однако Lua отличается более мощными и гораздо более гибкими конструкциями
[поэтому, несмотря на его изначально узкое предназначение, он считается уже языком общего назначения].

Язык широко используется для создания тиражируемого программного обеспечения
(например, на нём написан графический интерфейс пакета Adobe Lightroom).

Также получил известность как язык программирования уровней и расширений во многих играх (в том числе World of Warcraft)
из-за удобства встраивания, скорости исполнения кода и лёгкости обучения.


На правах рекламы (см.
условия):


Ключевые слова для поиска сведений о сценарных языках программировании:

На русском языке: компьютерные языки написания скриптов, сценарное программирование, интерпретаторы, скрипт-языки;

На английском языке: script languages, Perl, Ruby, Python.


Страница обновлена 28.09.2022

Яндекс.Метрика


Оглавление

  1. История развития скриптов

  2. Основные принципы скриптов

  3. Преимущества скриптов

  4. Недостатки скриптов

  5. Типы скриптов

  6. Примеры скриптовых языков

  7. Роль скриптов в продвижении

  8. Использование языка JavaScript в контекстной рекламе

В современном программировании в Сети скрипты (сценарии) – это отдельные последовательности действий, созданные для автоматического выполнения задачи. Если готового сценария нет, пользователь выполняет эти действия вручную с соответствующими затратами времени и возможностями появления ошибок. 

Для написания скриптов используются специальные языки программирования, которые так и называются – скриптовые. Соответственно, скриптовый язык программирования – это набор лексический, семантических и синтаксических правил для создания и редактирования скриптов. Корректно также синонимичное название «язык сценариев».

История развития скриптов

Рассмотрим для примера историю развития наиболее распространенного скриптового языка JavaScript. Именно с его помощью реализуются множество решений по взаимодействию пользователей с сайтами, программируются широкие возможности интерактивных страниц.

В 1995 году компания Netscape для своего популярного на тот момент браузера Netscape Navigator 2.0 предложила специальный язык под названием LiveScript. На то время возможности языка были очень скудными, и многие просто не понимали, что такое скрипт (script) в браузере. Тогда он мог проверять и обрабатывать те данные, которые пользователь оставлял на странице сайта через форму. Такая проверка давала возможность контролировать правильность введенных данных и избегать отправки формы без нужной информации. Вскоре название этого языка было изменено на JavaScript.

Через некоторое время известный конкурент Netscape – корпорация Microsoft – создал свою версию JavaScript. Несмотря на то что такой скриптовый язык программирования имел немного отличающиеся функции, он успешно прижился и получил собственное название JScript. Он начал использоваться в браузере Internet Explorer начиная с версии 3.0. Через некоторое время и другие браузеры стали поддерживать JavaScript.

Со временем язык развивался и совершенствовался, теперь с его помощью можно успешно решать гораздо более сложные задачи. Интерпретатор JavaScript является встроенным элементом всех современных браузеров.

Несмотря на жесткую конкуренцию, Microsoft и Netscape вместе с наиболее авторитетными разработчиками обеспечения для деятельности в Интернете трудились в организации W3C. В результате были подготовлены единые стандарты и рекомендации. Но все же языки JavaScript и JScript имеют определенные различия, что необходимо учитывать в работе.

Основные принципы скриптов

Интерпретатор языка JavaScript встроен во все популярные браузеры. Именно поэтому любой браузер понимает, что такое скрипт на этом языке. Эти коды успешно выполняются в тот момент, когда пользователь обращается к страницам сайта. Но такие же скрипты могут успешно работать и на сервере, если на нем установлен интерпретатор JavaScript. Сценарии могут выполняться как на стороне клиента, в браузере, так и непосредственно на сервере.

Скрипты имеют следующие цели:

  • SEO-скрипты (шаблоны) для продвижения сайтов. Обычно под их управлением работают специализированные программы автоматизации этого процесса. Наиболее известные – ZennoPoster, Human Emulator;
  • системы для сбора статистики посещений (счетчики посещаемости). Эти скрипты чаще всего создаются с применением JavaScript;
  • сценарии для обращения к базам данных. Здесь лидирует язык PHP;
  • скрипты для работы гостевых книг и создания комментариев к записям. Чаще всего применяется комбинация PHP и JavaScript;
  • скрипты для динамического отображения сайтов. В этом случае скриптовый язык определяется языком написания CMS;
  • скрипты для изменения части страницы сайта без ее перезагрузки. При реализации используются технологии Ajax. В этом случае на первый план выходят асинхронный JavaScript и XML. Веб-приложения производят обмен данных с сервером в «фоне», изменения на страницах сайта происходят без их полной перезагрузки. Пользователи обычно не замечают таких изменений, и им не нужно понимать, что такое скриптовый язык программирования, чтобы отлично взаимодействовать с сайтом.

Преимущества скриптов

  1. Их применение дает возможность вносить программные изменения без опасения разрушить всю систему. Если скрипт написан с ошибкой, то при его выполнении они будут выданы в результате. При этом сайт останется работоспособным.
  2. Использование скриптов дает возможность получать проблемно ориентированный набор команд. В этом случае одна строка сценария позволяет выполнять такой же объем действий, как программа из многих десятков строк на компилируемом языке. На этом примере наглядно видно, что такое сценарий в программировании и насколько его применение ускоряет решение задач.
  3. С использованием скриптов успешно реализуется кроссплатформенность выполнения задач. Отличным примером является JavaScript – одни и те же сценарии на этом языке без проблем выполняют браузеры в различных операционных системах.

Недостатки скриптов

  1. Заметно большее время исполнения. Практически во всех случаях интерпретируемые сценарии требуют для выполнения гораздо больше времени и компьютерных ресурсов.
  2. До сих пор для таких языков не создана качественная среда разработки уровня IDE.
  3. В продвижение и рекламу этих языков вкладываются недостаточные средства. Как это ни парадоксально, относительная доступность и условная бесплатность сценарных языков приводят к тому, что у разработчиков просто не хватает средств на маркетинг и рекламу. Поэтому для многих крупных денежных проектов выбираются Java или C#.

Типы скриптов

По степени быстродействия они подразделяются на языки динамического разбора (sh, COMMAND.COM) и требующие предварительной компиляции, такие как Perl. Также скриптовые языки разбиваются на несколько больших групп по применению.

Выделяют:

  • командно-сценарные (JCL, sh, bash, csh, ksh, AppleScript, COMMAND.COM и cmd.exe, VBScript);
  • прикладные (AutoLISP, JScript, JavaScript, ActionScript, Game Maker Language, VBA и др.);
  • универсальные сценарные (Tcl, Lua, Perl, PHP, Python, REBOL, Ruby).

Примеры скриптовых языков

Наиболее известные: PHP, Perl, Python, AngelScript, JavaScript, JScript и другие. Все они являются высокоуровневыми. По своему механизму действия скриптовые языки обычно интерпретируются, а не компилируются.

Роль скриптов в продвижении

Использование в процессе программирования страниц слайдеров, динамических навигационных меню, активных элементов анимации позволяет расширить юзабилити сайтов, увеличить их посещаемость. Удачные решения на этой основе значительно повышают продажи. В качестве примера можно рассмотреть специальные технологии создания видеопродающих страниц. Здесь используются приемы на основе JavaScript.

И таких решений множество.

Отдельно стоит отметить технологии создания скриптов, имитирующих с помощью специальных программ действия пользователей в различных направлениях. Такие скрипты и шаблоны формируются на основе программ ZennoPoster, Human Emulator и их аналогов.

Уникальность таких решений базируется на том, что в шаблонах ZennoPoster может быть запрограммирована любая последовательность действий реального пользователя. При этом программа может эмулировать одновременно практически неограниченное количество пользователей, применять как собственные, так и получаемые из Интернета информационные базы.

В качестве примера можно рассмотреть шаблоны, позволяющие в автоматизированном режиме выполнять множество действий по продвижению сайтов и товаров в социальной сети «ВКонтакте». Другие шаблоны обеспечивают размещение объявлений или иной информации в Сети. Третьи в автоматизированном режиме могут генерировать множество блогов и страниц, на которых размещаются ссылки или коммерческая информация. Пользователи, которые видят результаты таких действий, обычно не знают, что это заскриптованный алгоритм размещает информацию для них в соцмедиа.

Во многих случаях для продвижения сайтов необходимо множество аккаунтов почты. В качестве примера можно рассмотреть почтовый сервис mail.ru. Автоматизированный шаблон для программы ZennoPoster легко справляется с этой задачей. При этом скрипт не просто заходит на страницу регистрации, но также самостоятельно выполняет работу по разгадыванию капчи, определяет возможный бан IP-адреса и выполняет много других действий.

Использование языка JavaScript в контекстной рекламе

Еще в 2012 году рекламная система Google AdWords внесла в свой интерфейс возможности использования скриптов для автоматизации управления рекламной кампанией. Такой способ управления работает значительно быстрее, чем использование API. 

К тому же он не требует применения сложных языков программирования. Задачи на основе скриптов запускаются по расписанию. Они обеспечивают регулярную проверку аккаунта, дают возможность анализировать статистику рекламы и вносить любые заданные изменения. 

При этом можно в автоматизированном режиме отслеживать качество рекламных объявлений, отключать неэффективные каналы рекламы и подключать эффективные.

Скрипт, или сценарий, — это небольшая программа, которая выполняет конкретную задачу. Обычно у скриптов нет своего визуального интерфейса: это код, который запускается по команде, отрабатывает, совершает нужные действия и завершается. Обычно такие программы нужны, чтобы автоматизировать повторяющиеся действия.

Скрипты появились в прошлом веке и изначально представляли собой наборы указаний для старых компьютеров: они описывали какую-то задачу, которую должна была выполнить операционная система. С тех пор сфера их использования сильно расширилась. Теперь это не только командные оболочки для ОС — скрипты используются везде. Они есть на сайтах, внутри крупных систем и в некоторых офисных документах. Обычно их записывают в файлы, которые исполняются на стороне браузера, сервера или другой системы.

Создавать скрипты можно почти на любом языке программирования, но некоторые подходят для этого лучше других. Такие языки называются скриптовыми. Мы подробнее поговорим о них в одном из следующих блоков.

Сейчас скрипты используются почти в любой области разработки. В первую очередь это веб: одни скрипты отвечают за выполнение действий на «внешней» стороне сайта, другие — занимаются отправкой и обработкой данных с сервера и обратно. Но сайты — далеко не единственная сфера применения скриптов.

Скрипты можно использовать для автоматизации повседневных действий в любой отрасли. Если речь о разработке — написанный под конкретные задачи сценарий может обрабатывать данные, рисовать график на основе входной информации, связываться с сервером, анимировать дизайн сайта или делать что-то еще. Но и в офисной работе с документами, и в рекламе есть место скриптам. Их пишут программисты или сами работники офиса.

В большинстве случаев — разработчики разных направлений, но не только. Скрипты могут писать системные администраторы, DevOps, сетевые инженеры, тестировщики, специалисты по анализу данных и так далее. А еще — белые хакеры: вредоносный код часто тоже является скриптом, просто задачи у него специфические.

Умение написать скрипт пригодится и офисному работнику, и менеджеру по рекламе. Этим людям часто приходится работать с большими объемами данных, и будет удобно, если сценарий выполнит рутинные действия за них.

В теории написать скрипт можно почти на любом языке программирования, кроме совсем узкоспециализированных. Но если язык не скриптовый, это будет неудобно и неэффективно. Четких критериев скриптового языка нет, хотя часто выделяют косвенные:

  • это обычно языки, которые интерпретируются, а не компилируются;
  • типизация у них чаще динамическая, то есть тип переменной присваивается «на лету», а не жестко закрепляется в момент создания;
  • они не требуют долгой настройки среды и окружения: файл со скриптом легко запустить, например из командной строки или браузера.

Самый популярный скриптовый язык сегодня — JavaScript. Его понимают все современные браузеры, поэтому JavaScript активно используют в вебе, при разработке интернет-сайтов. На втором месте по популярности — Python. Его применяют более широко, в том числе в машинном обучении и анализе данных. Еще есть PHP — на нем пишут скрипты для «серверной» стороны сайта.

Существуют специализированные внутренние скриптовые языки, которые работают в какой-то большой системе. Например, свой язык есть у AutoCAD: на нем можно отдавать команды программе. Или у MATLAB: на нем пишутся скрипты для решения сложных математических задач. А в Microsoft Office встроен Visual Basic: на нем можно писать скрипты для работы с документами, таблицами и презентациями. Такие сценарии называются макросами.

Никуда не делись и изначальные скрипты — те, которые выполняются внутри операционных систем. Тут тоже есть свои языки. Для Unix и Linux это Bash и Shell, а для Windows — PowerShell. Эти языки работают внутри ОС, писать на них команды можно в консоли, а можно создавать отдельные файлы со скриптами и запускать их.

Вот только несколько примеров заданий, которые можно переложить с живого человека на скрипт. А иногда эти действия вообще не сможет выполнить никто, кроме программы, например запуск анимации на сайте или отправка данных серверу.

Выполнение рутинных действий, автоматизация. Например, нужно быстро заменить в тексте все кавычки-лапки на кавычки-елочки. Или взять информацию из файла или базы, чтобы сгенерировать в другом месте что-то еще. Или обработать разнородные данные… Все это можно сделать и руками, но будет долго и неэффективно. К тому же легко что-то пропустить и ошибиться. Проще написать и запустить скрипт.

Действия пользователя на сайте. Во фронтенде — отрасли разработки, которая занимается «передней», видимой пользователю частью сайта, — без скриптов никуда. Почти все интерактивные, динамические действия на сайте, которые вам доступны, выполняются за счет скриптов. Вы выполняете какое-то действие — скрипт запускается.

Сайт может работать и без скриптов: такие действия, как отправка формы или переход по ссылке, возможны без их использования. Но всплывающие окна, автокоррекция формата даты, подсказки в поиске и многое другое — это всё скрипты.

Подгрузка контента. Еще одна важная роль скриптов на сайте — подгружать контент. Например, когда вы листаете ленту в соцсети, в какой-то момент внизу автоматически подгружается больше постов. Это тоже происходит с помощью скриптов: они загружают больше контента, когда совершается действие — пользователь доходит до низа экрана. Если бы такого не было, вам пришлось бы переходить по ссылкам-страницам или соцсеть бы постоянно зависала, пытаясь подгрузить огромное количество контента разом.

Динамические элементы дизайна. Скрипты можно использовать для украшения. Так, с их помощью работают интерактивные элементы дизайна. Например, когда пользователь вводит во всплывающем окне некорректные данные, оно «трясется» — проигрывает анимацию. Она запускается по скрипту. Или на сайте есть элемент, который анимируется, если на него нажать, — это тоже скрипт. Еще более распространенный пример — динамическое меню: оно появляется, если пользователь кликнет на иконку или наведет на нее курсор.

Так можно делать не только на сайтах, просто веб — одна из наиболее популярных отраслей использования сценариев.

Продвижение и реклама. Огромное количество маркетинговых функций работает с помощью скриптов. Например, всплывающее окно с лотереей, которое показывается пользователю, когда он заходит на коммерческий сайт. Вся лотерея работает на скриптах. Или реклама в виде мини-игры на JavaScript, или красивые переходы от одного рекламного предложения к другому — всё это скрипты.

Можно создавать сценарии, которые имитируют действия пользователя на сайте: так делают, например, для теста юзабилити. Можно автоматически публиковать статьи, настраивать кампании, собирать статистику по рекламе и продвижению, оптимизировать страницу под SEO и делать многое другое.

Скрипты не стоит путать с плагинами. Кажется, будто их функции схожи, но нет. Скрипт — это маленькая программа, в нем обычно ничего нет, кроме строчек программного кода. Он не зависит от основной системы — только от языка программирования. Если понадобится изменить скрипт, можно будет просто его переписать.

А плагин — это полноценный модуль, часто с собственным графическим интерфейсом. Он подключается к определенной системе и ориентирован только на нее. Сам по себе он не запустится, к тому же больше весит и хуже модифицируется.

Существуют библиотеки скриптов — в них содержатся сценарии для решения частых задач. Библиотеки обычно бесплатные, достаточно скачать их и подключить нужные части их кода к своему проекту. Это помогает сэкономить время создания скрипта.

Но пользоваться библиотеками не всегда оправданно. Они весят больше, чем один скрипт, созданный вручную, могут «тянуть» за собой разные зависимости, а написанный там код не всегда удобно адаптировать под конкретную задачу. Поэтому скрипты обычно пишут самостоятельно, если задача не совсем шаблонная. А библиотеки используются как вспомогательные инструменты.

Скорость написания. Скрипт обычно пишется быстро и легко, он небольшой и не требует переписывать всю большую систему. При этом десяток строчек кода может сэкономить несколько часов работы программиста.

Независимость. Сценарий – это независимый блок кода, в отличие от модуля или плагина. Его не нужно подолгу встраивать в основной программный продукт, он может вообще с ним не связываться. Поэтому скрипты довольно безопасны: маловероятно, что их создание и применение сломает что-то в большой системе. Даже если они не будут работать, их можно переписать без ущерба основной программе и запустить снова.

Универсальность. Скрипт можно запустить практически где угодно. Главное, чтобы в этой среде был установлен интерпретатор языка, который отвечает за прочтение и исполнение кода. Например, интерпретаторы JavaScript есть в браузерах, поэтому написанный на этом языке код можно запустить в любом браузере, и он будет работать.

Но обычно скрипты изначально пишут под конкретную платформу, и предполагается, что где-то еще их запускать не будут, поэтому думать о кроссплатформенности при создании почти не надо.

Функциональность. Скрипт по определению ориентирован на конкретное действие, на решение определенной задачи и экономию времени. При этом сценарии очень гибкие. С их помощью можно запрограммировать практически любое действие, даже сложное. Они расширяют возможности систем. Когда скрипты стали активно использовать в вебе, сайты стали красивее и функциональнее: сравните интернет 10 лет назад и сейчас.

Возможность автоматизации. Благодаря сценариям можно не думать о самостоятельном решении рутинных задач. Скрипт сделает все сам и освободит время для более важных задач. Это касается не только разработчиков, но и пользователей: скрипты делают сайт или программу удобнее для них.

Скорость выполнения. При написании скриптов часто не думают об оптимизации. Исключение — отрасли, где скорость выполнения очень критична. Это логично: если потратить кучу времени на оптимизацию скрипта, можно потерять все его преимущества. Но по этой причине скрипты могут работать не слишком быстро. Особенно если речь идет о каких-то больших действиях. Важен этот минус бывает в вебе: «перегруженный» скриптами медленный сайт неудобен пользователям и мешает SEO.

Вес. Один сценарий обычно весит немного. Но если их несколько и они не оптимизированы, суммарный вес скриптов может быть довольно большим, нагружать браузер и замедлять выполнение всей программы. А пользователи не любят терять время. Если речь о сервисах в интернете, на «тяжелые» блоки кода на сайте ругаются Google и Яндекс. Они могут понизить рейтинг в выдаче, а это вредит SEO-продвижению.

Риск ухудшить юзабилити. Звучит странно: скрипты как раз нужны для юзабилити. Но представьте себе человека, который отключил выполнение сценариев в браузере, чтобы не тратить заканчивающийся трафик, а потом зашел на сайт с динамическим меню. Если разработчик не подумает о таком заранее, человек просто не сможет использовать возможности сайта. Поэтому фронтенд и похожие направления требуют внимательности и умения думать о разных ситуациях, а на скрипты нельзя полагаться всегда.

Блокировка страницы при ошибке. Еще одна вероятная ситуация: скрипт не сработал, и поэтому пользователь не может выполнить нужное ему действие. К счастью, в современных командах разработки очень тщательно проверяют ошибки перед деплоем, то есть публикацией и развертыванием кода. А еще скрипты на веб-странице нельзя размещать в верхней части HTML-документа: если так сделать, они будут подгружаться первыми. Тогда, если что-то пойдет не так, страница не загрузится совсем.

Чтобы создавать простые сценарии, не обязательно досконально знать выбранный язык программирования. Для легких задач хватит основ. А вот если вы хотите работать со скриптами профессионально, учиться придется дольше — но зато использовать их «для себя» можно начать быстро. Правда, понадобится освоить несколько вещей.

Мы советуем изучить синтаксис и принципы языка, а конкретно для написания скриптов — принятые практики и паттерны их построения. Это поможет научиться сразу писать хорошо. Если вы хотите в веб, понадобится понять, как работают сайты и как устроены страницы. Это уже компьютерная грамотность, ей тоже можно обучиться. А для работы в продвижении нужно узнать больше про алгоритмы Google и Яндекса, маркетинг и рекламу.

Можно воспользоваться туториалами в сети, документацией языка, образовательными статьями и учебниками. А можно записаться на курсы — и получить знания для входа в новую профессию.

Что такое скрипт и скриптовый язык

Скрипт (script с англ. сценарий) — это небольшая программа, которая последовательно выполняет список однотипных задач. Простыми словами, скрипт — это автоматизация какого-то рутинного процесса: заменить в статье дефисы на тире, кавычки лапки (“”) на ёлочки («») или подготовка файлы сайта для загрузки на сервер.

Написать скрипт можно на любом языке, если он поддерживает описание инструкций в виде последовательности действий, то есть алгоритмов:

  1. Открыть сайт X.
  2. Нажать кнопку Y.
  3. Подождать N секунд.
  4. Закрыть сайт и так далее.

По похожим сценариям работают актеры, повара, заводы. Каждый из них выполняет последовательность действий, будь то рецепт блюда или технология по эксплуатации станка. Эту последовательность действий можно описать в подавляющем большинстве языков программирования.

Вот только называть язык скриптовым только потому, что на нем можно писать сценарии, нельзя. Есть и другие критерии:

  • Чаще интерпретируется, а не компилируется — переводится на машинный язык во время запуска, а не предварительно.
  • Типизация обычно динамическая: тип данных может в любой момент меняться, и не определяться во время компиляции.
  • Он более высокоуровневый — больше понятен человеку, чем компьютеру.

Сейчас будет моё личное мнение:

Сложно выделить, что делает язык скриптовым. Например, Java таковым не считается, хотя он подходит по всем критериям:

  • На нем можно писать инструкции для компьютера, которые будут выполняться как сценарий.
  • Java компилируется в байт-код, который во время запуска интерпретируется в машинный язык.
  • В нем допустима динамическая типизация, благодаря дженерикам.
  • У него достаточно высокий уровень абстракции — то же объектно-ориентированное программирование.

Дженерик (обобщение) — такое описание данных при написании алгоритма или функции, которое позволяет использовать разные типы данных, не переписывая алгоритм.

На мой взгляд, есть всего один корректный критерий классификации: язык должен быть создан специально для того, чтобы выполнять сценарии внутри какой-либо программы. Например, VBA, на котором пишут макросы для Excel, или WitcherScript для игр The Witcher 3 и CyberPunk 2077, а также sh для терминалов.

Какие бывают типы скриптов

Скрипты и языки для их написания можно разделить на следующие типы:

  • Консольные или командные — Bash, PowerShell.
  • Расширяющие или встраиваемые — JavaScript, Lua, VBA.
  • Макросы или скрипты графического интерфейса — зависит от программы.
  • Универсальные — Python, PHP, JavaScript.

На каких языках нельзя писать скрипты

Существуют языки, созданные для решения конкретных задач и не предполагающие написания алгоритмов (разве что математических). Например, язык для аналитики данных R.

Рассмотрим возможности двух языков на примере анализа данных:

Таблица выше показывает, насколько ограничен узкоспециализированный R по сравнению с языком общего назначения Python.

Скрипты нельзя писать на:

  • R — он используется только для аналитики данных.
  • SQL — предназначен только для запросов к базам данных.
  • MATLAB — только для математических вычислений.
  • Solidity — для написания смарт-контрактов.

Эти языки задумывались для решения конкретных задач и в них просто нет возможностей для написания скриптов. Иначе ничего бы не помешало использовать и их. Как говорится, любой инструмент — это молоток.

Плохо ли это? Наоборот, создатели узкоспециализированных языков могут позволить себе сосредоточиться на главных возможностях своего языка и сделать их действительно мощными и удобными. И в зависимости от сложности задачи программист решает — использовать ли отдельный язык или достаточно будет языка общего назначения.

Где и кем используются скриптовые языки

Языки, поддерживающие написание скриптов, используются во всех сферах и для решения всех задач:

  • Разработка под iOS или OS X — Swift.
  • Разработка под Android — Java или Kotlin.
  • Создание игр — C# или C++.
  • Веб-разработка — PHP, Python, JavaScript.
  • Аналитика — Python, Java, JavaScript.
  • Программирование устройств — Python, C++.

Формальных ограничений на использование тех или иных языков в разных сферах нет — просто могут быть некоторые сложности. Например, можно создать приложение для OS X хоть на Python, просто оно будет медленно работать. Можно создать интерфейс сайта хоть на ассемблере — но тут уже медленно работать будете вы.

Что же касается сценарных языков, их используют в специальных случаях, например:

  • WitcherScript или Lua для написания квеста для игры.
  • VBA для создания макроса для бухгалтерской таблицы.

Также не стоит забывать и про скрипты — их тоже может писать кто и угодно и для чего угодно. Например, чтобы улучшить позиции сайта в поисковой выдаче.

Как скрипты помогают в SEO

С помощью кода можно решить любую задачу, если соблюдены три условия:

  • Это теоретически возможно.
  • Есть достаточно времени на написание кода.
  • Есть достаточно времени на выполнение кода.

Теоретически возможно предсказывать будущее, если рассчитать движение всех частиц во Вселенной. Вот только на сбор данных, написание кода и запуск такой программы уйдет слишком много времени. Поэтому, к сожалению, демон Лапласа не поможет угадать ключи, которые со 100 % вероятностью продвинут сайт в топ за один час.

А вот заставить скрипт проанализировать тексты на сайте, просмотреть конкурентов, изучить поисковую выдачу, чтобы он предложил несколько подходящих ключей — вполне возможно.

Вот ещё несколько полезных примеров:

  • мониторинг онлайна сайта;
  • анализ текстов на количество ключей, их актуальность, на ошибки и прочее;
  • проверка скорости загрузки;
  • проверка оптимизации для людей с ограниченными возможностями;
  • анализ безопасности;
  • ведение статистики;
  • автопостинг по разным площадкам;
  • анализ поведенческих факторов;
  • сбор данных о пользователях;
  • сбор данных о конкурентах и так далее.

И все эти скрипты уже кем-то написаны и давно используются в индустрии. Например, с помощью PageSpeed от Google можно проверить скорость загрузки сайта, узнать о возможных причинах торможения и понять, что можно исправить и улучшить. Яндекс.Метрика позволяет вести статистику посещений и следить за активностью пользователей.

В зависимости от вашего знания предметной области и вашей фантазии вы можете придумать еще какие-то скрипты, написать их или заказать их разработку. Это может быть что-то новое, а может быть и объединением нескольких других скриптов. Например, можно взять готовый скрипт мониторинга и добавить в него отправку уведомлений в Телеграм или запуск каких-нибудь служб восстановления.

Преимущества и недостатки скриптов

Преимущества скриптов делают их идеальным инструментом для задач, для которых они используются:

  1. Их легко написать, что экономит время. Они небольшие, поэтому можно особо не переживать из-за чистоты кода или правильной архитектуры.
  2. Их не нужно встраивать в целую систему, чтобы выполнить какие-то действия.
  3. Не нужно беспокоиться о кроссплатформенности кода — скрипты пишутся под определенные задачи и запускаются сразу на целевых платформах.
  4. Гибкость — можно добавить в программу любые действия и параметры. А в случае необходимости скрипт легко переписывается.

Есть и недостатки, но в контексте требований к скриптам они не имеют значения. Например, чуть более медленная скорость выполнения. Условно говоря, с помощью скрипта, который работает одну секунду, вы экономите час своего времени. Но вместо того, чтобы удовлетвориться этим, вы решаете потратить еще десять часов, чтобы скрипт выполнялся за полсекунды.

Как научиться использовать сценарные языки

Первый шаг — определиться, зачем вы хотите этому учиться. Чтобы автоматизировать небольшие процессы или писать моды к играм, парсить данные или создавать мобильные приложения? Зная ответ на этот вопрос, вы можете подобрать подходящий язык и попробовать его изучить.

Важно! Язык — это инструмент. Подбирайте подходящий для ваших задач — список был в разделе выше.

Если сомневаетесь, выбирайте JavaScript или Python. Это очень популярные языки, которые быстро развиваются, по ним много обучающих материалов и много вакансий для программистов. Также они легки для освоения.

Второй шаг — изучите основные принципы программирования. Их не так много и они общие (но не всегда идентичные) для большинства языков. И если через несколько месяцев вы поймете, что ошиблись с выбором, сможете быстро перестроиться под новый язык.

Третий шаг — придумайте несколько небольших проектов и реализуйте их на своем языке. Чем меньше у вас опыта — тем меньше должен быть проект. Не нужно строить Бурдж-Халифа, если вы ни одного гвоздя в жизни не забили. Второй и третий шаги можно совмещать.

Практиковаться нужно как можно больше, а начинать — как можно раньше. Теория важна, но без практики ничего не стоит, потому что программирование — это про решение проблем, а не про алгоритмы, структуры, парадигмы и другие умные слова.

Если не можете придумать интересные проекты, можете погуглить идеи для новичков — их полно для любого языка и уровня владения им.

Скриптовый
язык
(англ. scripting
language, также называют язык сценариев) –
язык программирования, разработанный
для записи «сценариев», последовательностей
операций, которые пользователь может
выполнять на компьютере. Простые
скриптовые языки раньше часто называли
языками пакетной обработки (batch languages
или job control languages). Сценарии всегда
интерпретируются, а не компилируются.

Сценарий
(скрипт)

это программа, которая автоматизирует
некоторую задачу, которую без сценария
пользователь делал бы вручную, используя
интерфейс программы.

Поскольку сценарии
интерпретируются из исходного кода
динамически при каждом исполнении, они
выполняются обычно значительно медленнее
готовых программ, оттранслированных в
машинный код на этапе компиляции. Поэтому
сценарные языки не применяются для
написания программ, требующих оптимальности
и быстроты исполнения. Но из-за простоты
они часто применяются для написания
небольших, одноразовых («проблемных»)
программ. Также, в плане быстродействия
скриптовые языки можно разделить на
языки динамического разбора (sh,
command.com) и предварительно компилируемые
(Perl).

Языки
динамического разбора

считывают инструкции из файла программы
минимально требующимися блоками, и
исполняют эти блоки, не читая дальнейший
код.

Предкомпилируемые
языки
вначале считывают
всю программу, компилируют её всю либо
в машинный код, либо в какой-то внутренний
формат, и лишь затем –
исполняют получившийся код.

Для создания
пользовательских расширений язык
сценариев удобен в ряде случаев:

  • безопасность.
    Скриптовый язык обеспечивает
    программируемость без риска дестабилизации
    системы. Скрипты не компилируются, а
    интерпретируются. Поэтому неправильно
    написанная программа выведет
    диагностическое сообщение, не вызывая
    падение системы;

  • наглядность.
    Язык сценариев используется, если
    необходим выразительный код. Концепция
    программирования в скриптовом языке
    может кардинально отличаться от основной
    программы;

  • простота.
    Код имеет собственный набор программ,
    поэтому одна строка может выполнять
    те же операции, что и десятки строк на
    обычном языке. Поэтому для написания
    кодов не требуется программист высокой
    квалификации;

  • кроссбраузерность.
    Скриптовые языки ориентированы на
    кроссбраузерность. Например, JavaScript
    может исполняться браузерами практически
    под всеми современными операционными
    системами.

Выделяют следующие
типы скриптовых языков:

  • универсальные:
    Forth, AngelScript, Perl, PHP, Python, Tcl (Tool command language),
    Squirrel, REBOL, Ruby, AutoIt, Lua;

  • встроенные
    в прикладные программы:

    VBA, UnrealScript, AutoLISP, Emacs Lisp, Game Maker Language, MQL4
    script, ERM;

  • командные
    оболочки:
    sh, AppleScript,
    bash, csh, ksh, JCL, cmd.exe, command.com, REXX, Visual Basic
    Script;

  • встраиваемые:
    Guile, Script.NET, ActionScript, Lingo (используется в
    редакторе Director), Sleep, браузерные Jscript и
    JavaScript.

Некоторые приложения
имеют встроенную возможность расширения
сценариями, написанными на любом
универсальном скриптовом языке, например,
автоматический планировщик задач или
библиотека SWIG.

К скриптам также
относят многие консольные утилиты,
которые поддерживают выполнение
записанной в файл последовательности
команд.

Контрольные
вопросы

  1. Как классифицируются
    компьютерные сети?

  2. Что
    представляет собой семиуровневая
    модель структуры протоколов связи?

  3. Какие существуют
    основные протоколы сети Интернет?

  4. Как происходит
    адресация в сети Интернет?

  5. Какие
    распространенные сервисы сети Интернет?

  6. Какие
    области охватывает разработчик
    Web-дизайна сайта?

  7. Какие
    инструменты существуют для разработки
    Web-сайта?

  8. Для
    чего предназначены языки HTML и XML?

  9. Что
    содержит структура HTML-документа

  10. Для
    чего предназначены скриптовые языки
    программирования?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Как использовать скрипты в программировании

Скрипты широко используются в программировании, но не все разработчики до конца понимают, что это такое. Особенно этим грешат новички, которые часто копируют чужие scripts, не разбираясь в том, как они устроены. Из-за этого у них не получается писать собственные скриптовые сценарии.

Что такое скрипт

Скрипт – это четкая последовательность действий, обозначенная при помощи инструментов скриптового языка программирования. Его можно принимать за маленькую программу, которая встраивается в код базового приложения и автоматизирует выполнение конкретной задачи.

Рассмотрим пример работы сценария на веб-сайте. Предположим, пользователь нажал на кнопку оформления заказа. На странице выполнилось условие, которое инициирует отправку данных на сервер. Backend-приложение обрабатывает запрос и в ответ запускает скриптовый файл. В зависимости от заложенного в него сценария выполняется действие, информация о котором отправляется обратно на сайт. В итоге кнопка не просто нажимается, а отправляет пользователя на страницу для заполнения обратной заявки. Действий на первый взгляд много, но происходят мгновенно.

В случае с веб-приложениями scripts могут исполняться как на сервере хостинга, так и в браузере пользователя, зашедшего на сайт. Например, тот же JavaScript часто исполняется в браузерном окне для проверки правильности заполнения обратных форм. Он же отвечает за более красочное и динамическое отображение сайта. Без JavaScript страницы были бы статичными.

Преимущества использования

Высокая популярность сценариев в программировании объясняется многочисленными плюсами:

  • Простота редактирования. Каждый скрипт – это самостоятельный элемент, который можно отредактировать, как угодно, никак не воздействуя на работоспособность остального года.
  • Безопасность. Это достоинство логично следует из предыдущего. Так как scripts являются автономными участками кода, внезапный выход одного из них из строя не сломает софт.
  • Оперативное решение задач. Если правильно писать и использовать скрипты, они работают не хуже, чем громоздкие участки кода, а то и достигают поставленной задачи еще быстрее.
  • Кроссплатформенность. Написанный на одной платформе сценарий можно перенести на другой, так как скриптовые языки программирования по большей части интерпретируемые.

Особенно широко scripts применяются в отрасли веб-разработки для автоматизации работы приложений.

Есть ли минусы

Не обошлось и без недостатков, например, скриптовые языки разработки в большинстве своем несколько медленнее по сравнению с компилируемыми. ЯП, на которых пишутся скрипты, считаются в IT-среде относительно легкими. За счет низкого порога вхождения в сферу попадает много кадров с низкой квалификацией. Это плохо отражается на качестве разрабатываемых scripts.

Скриптовые языки

Есть группа скриптовых, или как их еще называют, сценарных языков программирования:

  • JavaScript;
  • Python;
  • PHP;
  • Perl;
  • Shell;
  • AngelScript.

Каждый язык, на котором пишутся скрипты, относится к определенной группе. Например, Shell – это командно-сценарный инструмент, предназначенный для выполнения различного рода задач в операционных системах. Писать и исполнять код можно непосредственно в системной консоли.

Вторая категория сценарных ЯП – встроенные или прикладные. Они имеют строго ограниченное применение и обычно являются внутренними инструментами системы или конкретной программы. Яркий пример – это AutoLISP, который используется для написания Scripts в САПР AutoCAD.

К третьей категории относятся сценарные языки общего назначения. Сюда входит большинство известных инструментов для создания scripts, в том числе популярные JavaScript, Python и PHP. Они хорошо подходят для решения целого спектра задач, из-за чего и пользуются востребованностью.

Основные функции скрипта

Вот некоторые идеи касательно того, как использовать скрипты в программировании:

  • Сбор статистической информации. Как крупные аналитические приложения, так и простейшие счетчики числа посетителей на странице, опираются на скрипты. Обычно эти сценарии пишут на JavaScript.
  • Динамический сайт. Одна из важных функций – возможность динамической подгрузки информации на странице без ее обновления. Также скрипты используются для динамичного отображения элементов сайта, делают его более привлекательным.
  • Запросы к базе данных. Язык PHP применяется для взаимодействия между базой данных и пользовательским интерфейсом, который отображается на веб-странице.
  • Сервисы комментариев. Гостевые книги и комментарии работают на скриптовых приложениях – без них невозможно сделать динамическое появление новых записей под постами.

На этом возможности языков разработки для создания scripts не заканчиваются. Скрипты также применяются с целью упрощения громоздкого кода, используются в поисковой оптимизации и даже в разработке трехмерных игровых приложений для смартфонов и компьютеров.

Как пользоваться

Ответ зависит от того, о каком скрипте идет речь. Например, инструмент Shell дает запускать сценарии из командной строки, причем даже простая команда формата «pwd ; whoami» представляет собой полноценный скрипт. Другое дело – веб-скрипты. Их нужно сначала загрузить на сервер хостинга, правильно разграничить права доступа, запустить инсталлятор для создания всех конфигурационных файлов, а затем настроить через панель управления. Это уже тема для отдельной статьи.

Как написать

Для создания сценариев нужно хорошо понимать конкретный язык программирования, на котором принято писать scripts, а также иметь базовые навыки разработки. Часто в скриптовых сценариях используются такие инструменты, как переменные, циклы и строки. Обычно понимание того, какие скрипты и как их нужно написать, приходит к людям, которые давно работают в сфере IT и понимают, что некоторые задачи можно и нужно автоматизировать. Когда есть конкретная задача, а не только желание писать scripts ради их написания, программировать сценарии проще.

Скрипты могут как упростить и автоматизировать задачи разработчика, так и наладить работу веб-сайта или онлайн-приложения, сняв нагрузку с остального кода. В любом случае разбираться в том, как работают scipts, будет крайне полезным навыком и сделает программиста более востребованным в IT-индустрии.

Понравилась статья? Поделить с друзьями:
  • Языческий праздник интра
  • Языки сценариев реферат
  • Языческий праздник зимнего солнцестояния
  • Языки сценариев или скриптов
  • Языческий праздник дьылгаяк