Языками сценариев являются

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)

На чтение 5 мин Просмотров 1.6к. Опубликовано 10.09.2020

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

Язык сценариев — это язык программирования, который интерпретируется, то есть переводится в машинный код при запуске кода, а не заранее. Языки сценариев часто используются для коротких сценариев над полными компьютерными программами. JavaScript, Python и Ruby — всё это примеры языков сценариев.

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

Язык сценариев (также известный как сценарии или сценарий) чётко определяется как серия команд, которые могут выполняться без необходимости компиляции . Хотя все языки сценариев являются языками программирования, не все языки программирования являются языками сценариев. PHP, Perl и Python — распространённые примеры языков сценариев.

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

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

Содержание

  1. Интерпретируемые и компилируемые языки программирования
  2. Серверные сценарии против клиентских сценариев
  3. Примеры языков сценариев на стороне сервера
  4. Примеры языков сценариев на стороне клиента
  5. Приложения языков сценариев
  6. Плюсы и минусы языков сценариев
  7. Плюсы
  8. Минусы
  9. Вывод

Интерпретируемые и компилируемые языки программирования

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

В компилируемых языках программирования программа компилятора переводит код, написанный на языке программирования высокого уровня, на язык более низкого уровня, чтобы программа могла выполняться. Программы C или Java обычно должны быть сначала скомпилированы для запуска. Два хорошо известных компилятора — это Eclipse для Java и gcc для C и C ++.

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

Серверные сценарии против клиентских сценариев

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

Языки сценариев на стороне сервера работают на веб-сервере. Когда клиент отправляет запрос, сервер отвечает, отправляя контент через HTTP. Напротив, языки сценариев на стороне клиента работают на стороне клиента — в их веб-браузерах.

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

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

Примеры языков сценариев на стороне сервера

Ниже приведены примеры языков сценариев на стороне сервера.

Язык Комментарии
PHP Самый популярный серверный язык, используемый в интернете.
ASP.NET Фреймворк веб-приложений, разработанный Microsoft.
Node.js Может работать на множестве платформ, включая Windows, Linux, Unix, Mac и т. Д.
Java Используется во всём, от Bluetooth в автомобильной стереосистеме до приложений НАСА.
Ruby Динамический. Особое внимание уделяется простоте.
Perl Немного мэшапа между C, сценарием оболочки, AWK и sed.
Python Отлично подходит для обучения новичков. Использует более короткий код.

Примеры языков сценариев на стороне клиента

Ниже приведены примеры языков сценариев на стороне клиента.

Язык Комментарии
HTML Основа веб-разработки.
CSS Улучшает внешний вид и графику на страницах в вашем веб-браузере.
JavaScript Хотя обычно на стороне клиента, иногда может использоваться и на стороне сервера.

Приложения языков сценариев

Языки сценариев используются во многих областях, как в интернете, так и за его пределами. Помимо серверных и клиентских приложений, в системном администрировании могут использоваться языки сценариев. Примерами скриптов, используемых в системном администрировании, являются Shell, Perl и Python.

Языки сценариев также используются во многих играх и мультимедиа. Например, в модах Minecraft используется Java, чтобы пользователи могли создавать собственные миры и предметы в игре. Кроме того, Second Life , Trainz и Wesnoth позволяют пользователям создавать расширения для игр.

Подобно расширениям, используемым в играх, расширения в других программах, таких как расширения браузера Google Chrome, все запускаются с использованием языков сценариев.

Плюсы и минусы языков сценариев

Плюсы

Использование языков сценариев даёт много преимуществ перед другими языками программирования. Они с открытым исходным кодом. Это позволяет пользователям со всего мира присоединиться к процессу улучшения. Другие плюсы включают:

  • Не требует компиляции, хотя иногда это необходимо.
  • Легко переносить между операционными системами.
  • Языки сценариев делают веб-страницы удобными.
  • Легче учиться и писать.
  • Скрипты можно использовать в качестве прототипа программ, что позволяет сэкономить время на тестовых проектах.

Минусы

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

Вывод

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

Скриптовый
язык
(англ. 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. Для
    чего предназначены скриптовые языки
    программирования?

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

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
Ошибка базы данных: Table ‘a111530_forumnew.rlf1_users’ doesn’t exist

Языки сценариев: что это такое и для чего они нужны?

Оригинал: Scripting Languages: What and Why?

Автор: Juliet Kemp

Дата публикации: 14 декабря 2016 г.

Перевод: А.Панин

Дата перевода: 8 января 2017 г.

Для чего компилировать исходный код программы, если от нее не требуется высокой производительности?

Для чего это нужно?

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

Языки сценариев на сегодняшний день используются чуть ли не повсеместно; но чем они являются на самом деле? По сути, язык сценариев отличается от традиционного языка программирования не функциями, а назначением: он предназначен для создания и последующего исполнения сценариев (или, грубо говоря, автоматизированного исполнения последовательностей команд).

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

Как правило, языки сценариев проектируются с целью достижения максимальной скорости изучения и разработки. Однако, ввиду того, что данные языки являются интерпретируемыми (это утверждение справедливо в большинстве случаев, но имеются и исключения, такие, как язык Ruby, который может быть как интерпретируемым, так и компилируемым в зависимости от реализации), созданные с их использованием сценарии зачастую исполняются медленнее, чем бинарные программы, созданные с использованием компилируемых языков программирования. Постоянно растущая популярность этих языков напрямую связана с постоянным повышением производительности доступного аппаратного обеспечения. Чем быстрее работает компьютер, тем меньшее значение будет иметь разница в скорости между интерпретируемыми и компилируемыми программами; при этом решающее значение будет иметь скорость процесса разработки. Пропуск этапа компиляции значительно упрощает цикл разработки и отлично сочетается с такими современными практиками программирования, как экстремальное программирования. При этом по мере увеличения объема кода и сложности программного обеспечения может появиться смысл в возврате к использованию компилируемого языка программирования.

На сегодняшний день в мире языков сценариев доминируют высокоуровневые динамические языки программирования общего назначения, обычно рассматриваемые как «связующие» языки, объединяющие несколько программных компонентов. Другие языки сценариев, такие, как Sed, Awk или (являющийся более современным) JavaScript являются предметно-ориентированными. JavaScript является встраиваемым языком, который используется исключительно в рамках определенных приложений или наборов приложений. Emacs Lisp является еще одним специфичным для приложения языком сценариев, при этом во многих играх используются собственные реализации языков сценариев или особые диалекты существующих языков сценариев. Наконец, языки для управления задачами и языки командных интерпретаторов, таких, как Bash, являются еще одной формой языков сценариев и обычно используются в качестве «связующих» языков для интерпретаторов и утилит с интерфейсом командной строки.

История развития языков сценариев

Первые мэйнфреймы не поддерживали широкого спектра механизмов (или вообще не поддерживали механизмов) взаимодействия с пользователями; вместо них использовались очереди задач. Для упрощения процесса обработки задач были разработаны различные языки, включая язык Job Control Language, созданный специалистами компании IBM.

В 1960 году на смену языкам обработки задач пришли интерактивные командные оболочки и сценарии, позволяющие автоматизировать запуск программ. Они позволили задействовать дополнительные удобные функции благодаря работе множества программистов. Язык TRAC, созданный Калвином Муерсом, принес идеи подстановки команд в сценариях, а также использования вывода этих команд в рамках этих же сценариев — этот механизм напоминает оператор обратных кавычек в современных командных оболочках.

Стьюарт Мадник из MIT разработал язык сценариев CMS EXEC (в оригинале имевший имя COMMAND) для IBM VM/CMS OS в конце 60-х годов прошлого века. Он поддерживал управляющие выражения различных типов (включая условные инструкции и циклы), а также несколько встроенных функций. Очевидно, что именно с данного момента началось развитие современных языков сценариев.

Множество Мандельброта

Множество Мандельброта определено на плоскости комплексных чисел (представленной, как система координат (x,y)). Для каждого комплексного числа c должна существовать ограниченная последовательность:

zk+1 = zk2 + c

Если для числа c последовательность является ограниченной, это число находится в множестве Мандельброта. Если же последовательность является неограниченной, число c не находится в множестве Мандельброта.

При расчете мы будем осуществлять 50-кратную итерацию в рамках последовательности и в том случае, если значение zk + 1 будет покидать окружность радиусом 2 вокруг значения c, мы будем делать вывод о том, что число c не находится в рассматриваемом множестве.

Наша система координат будет иметь ось x с координатами от -2 до 1 и ось y с координатами от -1 до 1. Мы будем отображать ее с помощью ASCII-символов начиная с верхнего левого угла (с координатами x=-2, y=1), причем вывод результатов будет заключаться в последовательном выводе строк по оси y. Каждый ASCII-символ (пробел или *) будет соответствовать сдвигу на 0.05 по оси координат. Вы сможете самостоятельно заменить жестко заданные значения для того, чтобы оценить полученные в результате изменения или добавить поддержку цветов для того, чтобы визуально усложнить вывод.

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

Множество Мандельброта

Perl

Ларри Уолл выпустил версию 1.0 интерпретатора языка Perl в 1987 году. Его цель заключалась в создании языка сценариев общего назначения для Unix, максимально упрощающего процесс обработки отчетов. Повышение производительности доступного аппаратного обеспечения ознаменовало эпоху, в которой эффективность практик программирования приобрела большую важность по сравнению с производительностью кода, а Ларри Уолл, в свою очередь, не преминул подтвердить данный тезис на практике. Предшественниками языка Perl были языки Awk (представленный в 1977 году) и Unix shell sh (представленный в 1978 году), причем сам этот язык опередил появление ядра Linux (первая версия которого была представлена в 1991 году) на несколько лет. (Обратитесь к странице, расположенной по адресу http://history.perl.org/PerlTimeline.html, если вас интересует шкала времени с указанием различных этапов развития Unix/Linux и выдержками из соответствующих новостных групп.)

Версии 2 (1988 года) и 3 (1989 года) интерпретатора Perl были представлены общественности спустя непродолжительное время. Версия 4 интерпретатора Perl была выпущена лишь для того, чтобы четко увязать ее с каноническим руководством по программированию на языке Perl, изданным под названием «Программирование на Perl» (в оригинале «Programming Perl» или «Camel Book»).

Код версии 5 интерпретатора Perl (1994 года) был частично переписан и позволял использовать ряд новых сущностей, включая объекты и модули. Поддержка этих сущностей, в свою очередь, ознаменовала расцвет ресурса CPAN (Comprehensive Perl Archive Network), являющегося репозиторием компонентов интерпретатора и модулей Perl, в 1995 году. Хотя CPAN и является крайне полезным ресурсом, на нем несложно потеряться; на момент написания статьи на нем было опубликовано 157742 модуля, причем качество этих модулей значительно отличается и в некоторых случаях на нем крайне сложно найти модуль высокого качества для выполнения той или иной задачи. (Проект MetaCPAN и модуль Task::Kensho от Enlightened Perl Organisation были созданы специально для решения описанной проблемы.)

Версия 6 интерпретатора Perl находится в стадии активной разработки и на сегодняшний день рассматривается разработчиками как отдельная реализация языка программирования; обратная совместимость с классическим языком Perl не является их целью, тем не менее, в будущем Perl 6 должен стать «эталонной реализацией языка Perl». Изменения в язык вносятся главным образом с целью упорядочивания его синтаксиса. Разработка данной версии интерпретатора началась в 2000 году и продолжается до сих пор.

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

Совет: несмотря на то, что языки Sed и Awk являются предметно-ориентированными, вы сможете найти и код общего назначения на этих языках, обратившись к веб-сайту Rosetta Code!

Дополнительная информация: неофициальной расшифровкой названия языка Perl является «Practical Extraction and Reporting Language» («практический язык для извлечения данных и составления отчетов»), но Ларри Уолл предпочитает использовать свой шуточный вариант «Pathalogically Eclectic Rubbish Lister» («паталогически эклектичный перечислитель мусора»).

Код на Perl

Интерпретатор Perl поставляется в составе практически всех современных дистрибутивов Linux; если он не установлен в вашей системе, вам придется воспользоваться менеджером пакетов дистрибутива для его установки. А это код программы «Hello World»:

#!/usr/bin/perl -w
print "Hello Worldn";

Последовательность символов #! является последовательностью шебанг, сообщающей системе о том, что остальную часть строки следует считать путем к исполняемому файлу интерпретатора, причем при запуске интерпретатора нужно передать ему путь к открытому файлу сценария. Таким образом, при запуске сценария hello.pl первая его строка сообщает системе о том, что следует исполнить бинарный файл /usr/bin/perl и передать ему путь к файлу сценария hello.pl для интерпретации. Интерпретаторы языков сценариев обычно игнорируют последовательность символов шебанг либо из-за того, что символ # является индикатором строки комментария, либо из-за того, что эта последовательность символов известна интерпретатору и игнорируется им.

Параметр -w позволяет активировать механизм вывода сообщений об ошибках, который является весьма полезным на практике. (Вы также можете добавить в свой сценарий строку use strict; сразу же после первой строки для того, чтобы заранее получать информацию об определенных ошибках времени компиляции и исполнения.) Вы наверняка заметили, что все инструкции языка Perl заканчиваются символом ;. Теперь следует сделать файл сценария исполняемым и запустить его с помощью команды ./hello.pl.

А это гораздо более интересный код, отображающий множество Мандельброта в окне вашего эмулятора терминала:

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

Циклы for используют по три значения: for (начальное_значение; конечное_значение; приращение) {..}. Вы можете как увеличивать, так и уменьшать значение переменной в рамках цикла for, кроме того, никто не запрещает вам использовать вложенные циклы таким же образом, как в примере выше.

Использованный в коде выше оператор ? является сокращенным вариантом условной инструкции it-then-else. В том случае, если функция возвращает истинное логическое значение true (обозначающее, что значение находится за пределами множества), мы выводим символ пробела; в противном случае мы выводим символ звездочки.

Исполнение сценария на языке Perl

Исполнение сценария на языке Perl

Python

Язык Python является чуть ли не ровесником языка Perl; Гвидо ван Россум (великодушный пожизненный диктатор сообщества разработчиков Python) начал работу над реализацией первой версии его интерпретатора под номером 0.9.0 в 1989 году и выпустил ее в 1991 году. На тот момент интерпретатор уже позволял использовать классы и механизм их наследования, а также функции, основные типы данных и модули. В 1994 году наконец была выпущена версия 1.0 данного интерпретатора, поддерживающая функции lambda, map, filter и reduce, хорошо знакомые разработчикам, использующим язык Lisp. Изначально логичный и простой синтаксис языка Python прорабатывался главным образом с целью привлечения к разработке программных продуктов не-программистов; на сегодняшний день он все еще дорабатывается с целью достижения максимальной логичности и простоты синтаксических конструкций, но не-программисты уже не рассматриваются в качестве его целевой аудитории.

Функции языка Python могут свободно расширяться, причем модули могут разрабатываться как с использованием языка Python, так и с использованием языка C; это означает, что коллеги Гвидо ван Россума, привыкшие к языку C, могли начинать работу с новым для них языком Python без дополнительной подготовки. Одна из целей автора языка заключалась в создании своеобразного моста между языком командной оболочки и языком C; другими словами, он создавал второй язык для разработчиков, постоянно использующих языки C и C++, который мог бы применяться в тех случаях, когда использование языка C или C++ нецелесообразно. В основу языка Python были положены идеи, заимствованные из таких языков программирования, как ABC (язык программирования для не-программистов), C, Bash, Lisp, Perl и Java.

В версию интерпретатора 2.0, выпущенную в 2000 году, была добавлена абстракция списков, предназначенная для упрощения методики создания и обработки различных списков и основывающаяся на идее, заимствованной из функциональных языков программирования. Версия интерпретатора 3.0 была выпущена в 2008 году и содержала огромное количество изменений, направленных главным образом на сокращение избыточности, накопленной в процессе разработки предыдущих версий интерпретатора Python (с неизбежным нарушением обратной совместимости). В отличие от подхода разработчиков интерпретатора Perl, у разработчиков версии 3.0 интерпретатора Python был следующий девиз: «Должен существовать один, а еще лучше единственный очевидный способ выполнения конкретной задачи». При этом была сохранена мультипарадигменность, присущая языкам сценариев общего назначения; в результате вы можете использовать язык Python для написания объектно-ориентированного, структурного, функционального кода и так далее. Подобная гибкость хотя и является полезной, но нередко также становится причиной возникновения сложностей при разборе кода других людей особенно начинающими разработчиками.

Код на языке Python является компактным (вам придется написать меньше строк кода для выполнения той же работы по сравнению, к примеру, с языком Java) и хорошо читаемым, исполняется достаточно быстро, позволяет вести быструю разработку программ (как и все остальные языки сценариев), позволяет применять приемы объектно-ориентированного программирования и может ложиться в основу программных решений для широкого спектра областей применения. Однако, он все же исполняется медленнее, чем машинный код, полученный в результате использования компилируемых языков программирования, и, несмотря на благотворное воздействие некоторых оптимизаций, не используется в веб-приложениях на стороне клиента. Появление огромного количества библиотек для данного языка в последние годы значительно повысило его популярность; он всегда был доступен для начинающих разработчиков, а сейчас стал актуален и для профессионалов.

Прекрасное интервью Гвидо ван Россума об истоках языка программирования Python доступно по ссылке www.artima.com/intv/pythonP.html.

Код на языке Python

В вашей системе наверняка также установлен интерпретатор языка Python (если это не так, вам следует воспользоваться менеджером пакетов вашего дистрибутива для его установки). А это код программы «Hello World»:

#!/usr/bin/python
print "Hello World"

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

А это код на языке Python, визуализирующий множество Мандельброта:

Как и в случае языка программирования Perl, мы импортируем библиотеку (в данном случае это библиотека math) для работы с комплексными числами. В Python x + yi является аналогом x + y * 1j.

Функции обозначаются с помощью ключевого слова def. В рамках циклов for используется ключевое слово range. В рамках диапазонов, объявляемых с помощью ключевого слова ranage, должны использоваться целочисленные значения, но, как и в данном случае, при необходимости использования цикла с нецелочисленными значениями, вы можете умножить целочисленное значение из диапазона на нецелочисленное и использовать результат в рамках цикла.

Так как интерпретатор Python автоматически добавляет символ новой строки при использовании функции print, для получения вывода без символов новой строки нам придется использовать метод объекта строки join. Обратите внимание на циклы for в рамках инструкции print/join, а также методику использования условной инструкции if not ... else. В данном случае для сохранения результатов работы функции mandelbrot и объединения их в рамках списка используется абстракция списков.

Исполнение сценария на языке Python

Исполнение сценария на языке Python

JavaScript

Как известно, язык JavaScript был разработан Бренданом Эйхом, работавшим компании Netscape, за 10 дней в 1995 году. В то время компания Netscape предлагала клиентам серверное решение с переносимой версией виртуальной машины Java для исполнения апплетов на стороне сервера и нуждалась в более простом интерпретируемом и доступном для не-программистов языке программирования для взаимодействия с ними. Изначально этот язык носил имя LiveScript и был интегрирован в состав веб-браузера Netscape Navigator в 1995 году, но через некоторое время он был переименован в JavaScript одновременно с добавлением поддержки апплетов Java в этот веб-браузер, что, вероятно, являлось очередным маркетинговым ходом. Это интерпретируемый язык программирования для разработки сценариев, исполняющихся на стороне клиента непосредственно в веб-браузере.

Впоследствии специалисты компании Microsoft осуществили обратный инжениринг JavaScript с целью создания языка JScript, поддержка которого была добавлена в веб-браузер IE3 и веб-сервер IIS в 1996 году. Различия между двумя упомянутыми реализациями языка программирования затрудняли разработку интерактивных веб-сайтов, корректно работающих в обоих веб-браузерах, причем всю вину за это положение вещей начали возлагать именно на JavaScript. По этой причине компания Netscape связалась с организацией по международным стандартам ECMA, в результате чего в 1997 году был опубликован официальный стандарт ECMAScript. Язык JavaScript является лучшей известной реализацией данного стандарта; ActionScript 3 является еще одной его реализацией.

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

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

Однако, по мере роста популярности веб-приложений и в результате создания технологии Ajax (Asynchronous JavaScript and XML: механизм асинхронного взаимодействия с веб-сервером для обновления состояния элементов веб-страницы без ее полной перезагрузки, позволяющий повысить пользовательские качества веб-приложений), репутация JavaScript начала улучшаться, а сам язык стал все чаще использоваться профессионалами. Сегодня язык JavaScript активно используется для создания динамических веб-приложений и веб-страниц — без него практически не обойтись, если необходимо создать современную веб-страницу. Фреймворк Node.js наконец позволил использовать JavaScript не только на стороне клиента, но и на стороне сервера, а API HTML 5 позволяют размещать на страницах множество новых управляющих элементов, улучшая их пользовательские качества — разумеется, не в ущерб безопасности.

Код на языке JavaScript

Вы не сможете инициировать исполнение сценария на языке JavaScript с помощью команды в терминале; для того, чтобы испытать сценарий в работе вам придется открыть с помощью веб-браузера файл hello.html со следующим содержимым:

<!DOCTYPE HTML>
<html>
<head></head>
<body>

<script>
alert("Hello World")
document.write("Hello World")
</script>

</body>
</html>

Это минималистичная HTML-страница, предназначенная исключительно для исполнения сценария, код которого расположен в рамках тэга <script>. Фактически данный сценарий осуществляет двукратный вывод строки «Hello world»: вызов alert позволяет вывести всплывающее предупреждение (с автоматически добавленной кнопкой OK); вызов document.write позволяет вывести упомянутую строку в рамках тела документа HTML. Как и язык Python, язык JavaScript в общем случае не требует наличия символа точки с запятой после каждой инструкции (но позволяет использовать его), причем по поводу того, стоит ли использовать этот символ после каждой из инструкций или все же не стоит, не существует единого устоявшегося мнения. Вы также можете создать отдельный файл сценария с именем file.js и подключить его к HTML-странице:

А это код сценария для работы с множеством Мандельброта:

В первой строке сценария вы можете установить идентификатор элемента документа, с которым будет работать сценарий на языке JavaScript. (Обратите внимание на то, что элемент тела документа должен иметь идентификатор, то есть, значение параметра id для корректной работы сценария.)

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

Как и в Python, в JavaScript переменные не должны иметь четко указанных типов, но при этом они должны объявляться с помощью ключевого слова var перед использованием (хотя это и не обязательно).

Циклы for работают практически так же, как и в двух описанных выше языках сценариев. Так как в JavaScript нет библиотеки для работы с комплексными числами, нам придется обрабатывать их действительные и мнимые части по отдельности. Инструкция document.write не позволяет выводить символы пробелов, поэтому вместо них в данном сценарии осуществляется вывод символов обратных кавычек.

Если вам хочется использовать все возможности HTML для вывода более привлекательной версии фрактала (не на основе ASCII-символов), вы также можете поискать соотвествующий код на веб-сайте Rosetta Code (rosettacode.org). И, как в случае с языками Perl и Python, существует огромное количество сетевых ресурсов с информацией, необходимой для изучения дополнительных возможностей JavaScript.

Процесс отладки сценариев на языке JavaScript может оказаться достаточно сложным из-за того, что сообщения об ошибках не выводятся в теле отображаемого документа; для отладки подобных сценариев может использоваться как ресурс JSLint (www.jslint.com), так и консоль JavaScript вашего веб-браузера

Процесс отладки сценариев на языке JavaScript может оказаться достаточно сложным из-за того, что сообщения об ошибках не выводятся в теле отображаемого документа; для отладки подобных сценариев может использоваться как ресурс JSLint (www.jslint.com), так и консоль JavaScript вашего веб-браузера

Bash

Bash значительно отличается от Perl, Python и JavaScript, так как является в первую очередь языком для управления задачами и исполнения команд. Но при этом он не перестает быть полноценным языком, который, тем не менее, не очень-то подходит для написания более чем одной-двух страниц кода.

Командная оболочка Bourne shell или sh была выпущена в 1977 году в составе UNIX Version 7 в качестве стандартного интерпретатора команд с поддержкой языка сценариев. Впоследствии она стала стандартной командной оболочкой UNIX и использовалась для выполнения широкого спектра задач, связанных с обслуживанием системы.

Проекту GNU, в рамках которого была начата разработка полностью свободного набора системного программного обеспечения, требовалась свободная полнофункциональная замена командной оболочки sh. В результате в 1989 году Брайн Фокс при финансовой поддержке Фонда Свободного Программного Обеспечения выпустил бета-версию командной оболочки Bash (Bourne-again shell). С того времени она стала стандартной командной оболочкой Linux (при этом такие командные оболочки, как tcsh и zsh также пользуются популярностью). Для того, чтобы узнать название используемой в данной момент командной оболочки вы можете просто выполнить команду echo $SHELL. Если в вашей системе используется какая-либо из альтернативных командных оболочек, вам будет достаточно выполнить команду /bin/bash для того, чтобы воспользоваться Bash.

Bash может исполнять отдельные инструкции, вводимые пользователем:

$ echo "Hello World"

Кроме того, она может исполнять файлы сценариев:

#!/bin/bash
echo "Hello World"

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

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

И это еще не все…

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

Статистические данные, собранные на ресурсах GitHub и StackOverflow в начале 2005 года, говорят о том, что языки JavaScript, Python, Ruby и PHP находятся в первой десятке популярных языков программирования, достойно конкурируя с такими популярными языками, как Java и C/C++. При изучении рынка вакансий также несложно прийти к аналогичным выводам. (Статистические данные доступны по ссылкам www.sitepoint.com/whats-best-programming-language-learn-2015 и www.codingdojo.com/blog/8-most-in-demand-programming-languages-of-2015.) Web 2.0 ассоциируется с развитием новых технологий, активным использованием языков сценариев, а также такими новыми языками, как Lua, чрезвычайно легким и адаптируемым встраиваемым языком программирования с динамической типизацией. Конечно же, несмотря на мнения некоторых экспертов, языки сценариев не захватят мир программирования, но по прошествии 30 лет они, безусловно, начали играть более важную роль и предоставили разработчикам возможность использования более гибких синтаксических конструкций.


Если вам понравилась статья, поделитесь ею с друзьями:


Средняя оценка 1 при 1 голосовавших

Комментарии

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

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

Первые скриптовые языки начали разрабатываться в 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

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


Языки сценариев – полезные инструменты для расширения возможностей вашего приложения или веб-сайта.

При создании онлайн-приложения или просто добавлении какой-либо дополнительной динамики на веб-сайт вам понадобится специальный ресурс: языки сценариев.

Узнать о них и знать, какие из них использовать, необходимо для того, чтобы пользоваться всем, что может предложить современный Интернет.

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

Вы, наверное, уже слышали о PHP, Python, JavaScript и jQuery.

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

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

Вам интересно узнать больше об этих компьютерных языках и их преимуществах? Вот все, что вы увидите в этой статье:

  • Что такое скриптовые языки?
  • В чем преимущества использования языков сценариев?
  • Каковы недостатки использования языков сценариев?
  • Каковы наиболее распространенные варианты использования языков сценариев?

Читай дальше!

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

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

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

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

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

Примеры языков сценариев

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

Ниже вы узнаете больше о каждом из этих типов языков сценариев и некоторых примерах.

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

Термин «серверный язык сценариев» относится к тем языкам, которые работают с веб-сервера. Поскольку он выполняется с внутренней стороны, скрипт не виден посетителю. Из-за этого это более безопасный подход.

Они часто используются для создания динамических веб-сайтов и платформ, обработки пользовательских запросов, генерации и предоставления данных и прочего. Известный пример серверных сценариев – использование PHP в WordPress.

Примеры: PHP, Python, Node.js, Perl и Ruby.

Клиентский язык сценариев

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

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

Примеры: HTML, CSS, jQuery и JavaScript.

В чем преимущества использования языков сценариев?

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

Вот наиболее важные преимущества использования языков сценариев в ваших процессах.

Легко изучить и использовать

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

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

С открытым исходным кодом и бесплатно

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

Это также способствует безопасности систем, которые их используют.

Портативный и кроссплатформенный

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

Меньшие требования к памяти

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

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

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

Ниже приведены наиболее заметные недостатки использования языков сценариев в вашем бизнесе.

Отсутствие оптимизаций

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

Медленное исполнение

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

Требования к организации

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

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

Принятие сроков обновления

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

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

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

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

Наиболее распространенные приложения для этих языков различаются в зависимости от их типа.

Например, языки сценариев командной строки, такие как Bush и PowerShell, используются для сжатия последовательностей команд. Между тем автоматизация процессов на уровне приложений может быть выполнена с помощью VBA и AppleScript.

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

Наконец, инициативы в области исследования данных и статистики часто используют этот тип языка для расширения своих процессов. В этих случаях наиболее распространены R и Python.

Вот несколько примеров приложений для языков сценариев. Проверь их!

Автоматизация задач локально или удаленно

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

Короткие сценарии для начинающих

Использование языков сценариев не требует одновременного использования более сложных языков программирования. Таким образом, они удобны для новичков, особенно когда имеешь дело с таким, как Python. Несмотря на это, он поддерживает такие платформы для совместной работы, как Instagram, Pinterest и даже Google.

Создание и управление динамическим контентом

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

Back-end программирование для сложных систем

Большинство современных веб-приложений, таких как YouTube, Gmail и сайты социальных сетей, работают на нескольких языках сценариев в серверной части. Среди них – JavaScript, который является самым популярным языком на веб-сайтах.

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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

Язык сценариев (или скриптовый) – это язык программирования, который разработан для записи последовательностей операций («сценариев»), выполняемых пользователем на своем компьютере. Раньше назывался языком пакетной обработки.

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

Скрипты используют для раскрутки сайта в следующих целях:

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

Преимущества

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

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

Классификация

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

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

  • универсальные: 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.

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

Другие термины на букву «Я»

Все термины SEO-Википедии

Теги термина

(Рейтинг: 4.33, Голосов: 6)

Находи клиентов. Быстрее!

наверх

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

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

Содержание

  • 1 Плагины или скрипты?
  • 2 Типы скриптовых языков
    • 2.1 Универсальные скриптовые языки
    • 2.2 Встроенные в прикладные программы
    • 2.3 Командные оболочки
    • 2.4 Встраиваемые
    • 2.5 Командные файлы интерпретаторов

Плагины или скрипты?

Для написания пользовательских расширений могут использоваться как скрипты (в терминологии некоторых программ «макросы»), так и плагины (независимые модули, написанные на компилируемых языках; в некоторых программах они могут называться «утилитами», «экспортёрами», «драйверами»).

Скриптовый язык удобен в следующих случаях:

  1. Если нужно обеспечить программируемость без риска дестабилизировать систему. Так как, в отличие от плагинов, скрипты интерпретируются, а не компилируются, неправильно написанный скрипт выведет диагностическое сообщение, а не приведёт к системному краху;
  2. Если важен выразительный код. Во-первых, чем сложнее система, тем больше кода приходится писать «потому, что это нужно» — см., например, Hello World#Маргинальные примеры. Во-вторых, в скриптовом языке может быть совсем другая концепция программирования, чем в основной программе — например, игра может быть монолитным однопоточным приложением, в то время как управляющие персонажами скрипты выполняются параллельно. В-третьих, скриптовый язык имеет собственный проблемно-ориентированный набор команд, и одна строка скрипта может делать то же, что несколько десятков строк на традиционном языке. Как следствие, на скриптовом языке может писать программист очень низкой квалификации — например, геймдизайнер своими руками, не полагаясь на программистов, может корректировать правила игры;
  3. Если требуется кроссплатформенность. Хорошим примером является JavaScript — его исполняют браузеры под самыми разными ОС.

У плагинов же есть три важных преимущества.

  1. Готовые программы, оттранслированные в машинный код, выполняются значительно быстрее скриптов, которые интерпретируются из исходного кода динамически при каждом исполнении. Поэтому скриптовые языки не применяются для написания программ, требующих оптимальности и быстроты исполнения. Но из-за простоты они часто применяются для написания небольших, одноразовых («проблемных») программ.
  2. Полный доступ к любому аппаратному обеспечению или ресурсу ОС (в скриптовом языке для этого должен существовать написанный на машинном коде API). Плагины, работающие с аппаратным обеспечением, традиционно называют драйверами.
  3. Если предполагается интенсивный обмен данными между основной программой и пользовательским расширением, для плагина его обеспечить проще.

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

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

Универсальные скриптовые языки

  • AngelScript
  • Perl
  • Python
  • PHP
  • Squirrel
  • Tcl (Tool command language)
  • REBOL
  • Ruby
  • Lua
  • AutoIt
  • Pawn

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

  • UnrealScript
  • Emacs Lisp
  • AutoLISP
  • VBA
  • MQL4 script
  • Game Maker Language
  • ERM

Командные оболочки

  • AppleScript
  • sh
  • bash
  • csh
  • JCL
  • ksh
  • COMMAND.COM и cmd.exe
  • Visual Basic Script
  • REXX

Встраиваемые

  • ActionScript — В средах Adobe Flash, Adobe AIR, Adobe Flex
  • Браузерные языки: JavaScript, JScript
  • Lingo — использующийся в редакторе Director, называют скриптовым
  • Guile
  • Io
  • Lua
  • Sleep
  • Script.NET

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

Командные файлы интерпретаторов

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

Примеры таких утилит:

  • SQLPlus — выполняет команды SQL и PL/SQL в СУБД Oracle

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