fbpx
维基百科

脚本语言

脚本语言(英語:Scripting language)是为了缩短传统的「编写、编译、链接、运行」(edit-compile-link-run)过程而创建的计算机编程语言。早期的脚本语言经常被称为批处理语言或作业控制语言英语Job Control Language。一个脚本通常是解释运行而非编译。脚本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程式設計師快速完成程式的編寫工作。而巨集語言則可視為脚本語言的分支,兩者也有實質上的相同之處。

虽然许多脚本语言都超越了计算机简单任务自动化的领域,比如JavaScript[1]Perl[2]PHPPythonRubyTcl,成熟到可以编写精巧的程序,但仍然还是被称为脚本。几乎所有计算机系统的各个层次都有一种脚本语言。包括操作系统层,如计算机游戏网络应用程序,字处理文档,网络软件等。在许多方面,高级编程语言脚本语言之间互相交叉,二者之间没有明确的界限。

起源

脚本語言是一种電腦程式語言,因此也能讓開發者藉以編寫出讓電腦聽命行事的程式。以簡單的方式快速完成某些複雜的事情通常是創造腳本語言的重要原則,基於這項原則,使得腳本語言通常比C語言C++語言Java之類的系統程式語言英语System programming language要簡單容易,也讓腳本語言另有一些屬於腳本語言的特性:[3]

  • 語法和結構通常比較簡單
  • 學習和使用通常比較簡單
  • 通常以容易修改程式的「直譯」作為執行方式,而不需要「編譯」
  • 程式的開發產能優於執行效能

一个脚本可以使得本来要用键盘进行的相互式操作自动化。一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组序列。主要用来书写这种脚本的语言叫做脚本语言。很多脚本语言实际上已经超过简单的用户命令序列的指令,还可以编写更复杂的程序。

定义

计算机语言是为了各种目的和任务而开发的,一个常见任务就是把各种不同的已有组件连接起来以完成相关任务。大多脚本语言共性是:良好的快速开发,有效率的执行,解释而非编译执行,和其它语言编写的程序组件之间通信功能很强大。

许多脚本语言用来执行一次性任务,尤其是系统管理方面。它可以把服务组件粘合起来,因此被广泛用于GUI创建或者命令行,操作系统通常提供一些默认的脚本语言,即通常所谓shell脚本语言。

脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。 测试大型项目中经常把脚本和其它低级编程语言一起使用,各自发挥优势解决特定问题。脚本经常用于设计互动通信,它有许多可以单独执行的命令,可以做很高级的操作,(如在传统的Unix shell(sh)中,大多操作就是程序本身。)

这些高级命令简化了代码编写过程。诸如内存自动管理和溢出检查等性能问题可以不用考虑。在更低级或非脚本语言中,内存及变量管理和数据结构等耗费人工,为解决一个给定问题需要大量代码,当然这样能够获得更为细致的控制和优化。脚本缺少优化程序以提速或者降低内存的伸缩性。

综上所述,脚本编程速度更快,且脚本文件明显小于如同类C程序文件。这种灵活性是以执行效率为代价的。脚本通常是解释执行的,速度可能很慢,且运行时更耗内存。在很多案例中,如编写一些数十行的小脚本,它所带来的编写优势就远远超过了运行时的劣势,尤其是在当前程序员工资趋高和硬件成本趋低时。

然而,在脚本和传统编程语言之间的界限越来越模糊,尤其是在一系列新语言及其集成常出现时。在一些脚本语言中,有经验的程序员可以进行大量优化工作。在大多现代系统中通常有多种合适的脚本语言可以选择,所以推荐使用多种语言(包括C或者汇编语言)编写一种脚本。

脚本语言分类

作业控制和shell语言

此类脚本用于自动化工作控制,即启动和控制系统程序的行为。大多的脚本语言解释器也同时是命令行界面,如Unix shell和MS-DOS COMMAND.COM。其他如AppleScript,可以为系统增加脚本环境,但没有命令行界面。

具体包括:

文本处理语言

处理基于文本的记录是脚本语言最早的用处之一。如Unix's awk最早是设计来帮助系统管理员处理调用UNIX基于文本的配置和LOG文件。Perl最早是用来产生报告的,现在它已经成了全面成熟的语言。

具体包括:

动态语言

一些通用动态语言,比如Perl,从一门脚本语言发展成了更通用的编程语言,由于“解释执行,内存管理,动态”等特性,它们仍被归类为脚本语言。脚本编程常与系统编程相对比,如Ousterhout英语John OusterhoutOusterhout二分法英语Ousterhout's dichotomy大型编程和小型编程英语programming in the large and programming in the small中做出的那样。在这种视角下,脚本是胶水代码英语glue code,被来连接软件组件,专门用于这个目的的语言叫做胶水语言

可扩展/可嵌入语言

少数的语言被设计通过嵌入应用程序来取代应用程序定制的脚本语言。开发者(如使用C等其它系统语言)包入使脚本语言可以控制应用程序的hook。这些语言和应用程序定制的脚本语言是同种用途,但优点在于可以在应用程序之间传递一些技能。

具体包括:

  • Ch英语Ch (computer programming)(C/C++解释器)
  • ECMAScript(实现为DMDScriptJavaScript等)
  • GameMonkeyScript英语GameMonkey Script
  • Guile
  • ICI英语ICI (programming language)
  • Lua
  • RBScript(REALbasic脚本)
  • Squirrel英语Squirrel (programming language)
  • Tcl

JavaScript直到现在仍然是网页浏览器内的主要编程语言,它的ECMAScript标准化保证了它成为流行的通用嵌入性语言。

Tcl作为一种可扩展语言而创建,但更多地被用作通用性语言,就如同Python, Perl, Ruby一样。

应用程序定制的脚本语言

许多大型的应用程序都包括根据用户需求而定制的惯用脚本语言。同样地,许多电脑游戏系统使用一种自定义脚本语言来表现NPC(non-player character,non-playable character,non-player class)和游戏环境的预编程动作。

此类语言通常是为一个单独的应用程序所设计,虽然它们貌似一些通用语言(如QuakeC, modeled after C),但它们有自定义的功能。

具体包括:

  • Action Code Script英语Action Code Script
  • ActionScript
  • AutoLISP
  • Emacs Lisp
  • Game Maker Language英语Game Maker Language
  • HyperTalk英语HyperTalk
  • IPTSCRAE英语IPTSCRAE
  • IRC script英语IRC script
  • Lingo英语Lingo (programming language)
  • Matlab Embedded Language
  • Maya Embedded Language英语Maya Embedded Language
  • mIRC script英语mIRC scripting language
  • NWscript英语NWscript
  • QuakeC
  • UnrealScript
  • Visual Basic for Applications
  • VBScript
  • ZZT-oop英语ZZT#Development

WEB编程脚本

应用程序定制的脚本语言中有一种重要的类别,用于提供WEB页面的自定义功能。它专业处理互联网通信,使用网页浏览器作为用户界面。当然,大多现代WEB编程语言都比较强大可以做一些通用编程。

具体包括:

  • ColdFusion(应用服务器)
  • Lasso英语Lasso (programming language)
  • Miva英语MIVA Script
  • SMX英语SMX (computer language)
  • IPTSCRAE英语IPTSCRAE,一些网络开发团队用于创建论坛的工具

GUI脚本

GUI出现带来一种专业的控制计算机的脚本语言。它在用户和图形界面,菜单,按钮等之间互动。它经常用来自动化重复性动作,或设置一个标准状态。理论上它可以用来控制运行于基于GUI的计算机上的所有应用程序,但实际上这些语言是否被支持还要看应用程序和操作系统本身。当通过键盘进行互动时,这些语言也被称为巨集语言。

具体包括:

其它

  • BeanShell英语BeanShell(Java的脚本)
  • CobolScript英语CobolScript
  • Euphoria
  • F-Script英语F-Script (programming language)
  • Groovy
  • Io
  • KiXtart
  • Object REXX英语Object REXX
  • Pike
  • REBOL
  • ScriptBasic英语ScriptBasic
  • StepTalk英语StepTalk
  • Visual DialogScript英语Visual DialogScript

参见

参考文献

  1. ^ ECMAScript 2019 Language Specification. www.ecma-international.org. [2018-04-02]. (原始内容于2016-08-13). 
  2. ^ Sheppard, Doug. Beginner's Introduction to Perl. dev.perl.org. 2000-10-16 [2011-01-08]. (原始内容于2011-06-05). 
    Programming is Hard, Let's Go Scripting… (页面存档备份,存于互联网档案馆), Larry Wall, December 6, 2007
  3. ^ 賴榮樞. 易學易用的 Windows PowerShell. Microsoft TechNet. 2006-06-01 [2014-03-05]. (原始内容于2020-02-02). 

外部链接

  • A study of the Script-Oriented Programming (SOP) suitability of selected languages (页面存档备份,存于互联网档案馆) – from The Scriptometer.
  • Hotscripts.com (页面存档备份,存于互联网档案馆) -A collection of many scripts written in an assortment of languages
  • -A collection of open source scripts
  • A Slightly Skeptical View on Scripting Languages (页面存档备份,存于互联网档案馆) by Dr. Nikolai Bezroukov
  • Scripting: Higher Level Programming for the 21st Century (页面存档备份,存于互联网档案馆) by John K. Ousterhout
  • Are Scripting Languages Any Good? A Validation of Perl, Python, Rexx, and Tcl against C, C++, and Java (PDF) (页面存档备份,存于互联网档案馆)—2003 study
  • Free Classified ASP Script Site Software (页面存档备份,存于互联网档案馆
  • 學習Shell Scripts (页面存档备份,存于互联网档案馆)鳥哥的Linux私房菜

脚本语言, 此條目需要补充更多来源, 2019年5月15日, 请协助補充多方面可靠来源以改善这篇条目, 无法查证的内容可能會因為异议提出而移除, 致使用者, 请搜索一下条目的标题, 来源搜索, 网页, 新闻, 书籍, 学术, 图像, 以检查网络上是否存在该主题的更多可靠来源, 判定指引, 英語, scripting, language, 是为了缩短传统的, 编写, 编译, 链接, 运行, edit, compile, link, 过程而创建的计算机编程语言, 早期的经常被称为批处理语言或作业控制语言, 英语, co. 此條目需要补充更多来源 2019年5月15日 请协助補充多方面可靠来源以改善这篇条目 无法查证的内容可能會因為异议提出而移除 致使用者 请搜索一下条目的标题 来源搜索 脚本语言 网页 新闻 书籍 学术 图像 以检查网络上是否存在该主题的更多可靠来源 判定指引 脚本语言 英語 Scripting language 是为了缩短传统的 编写 编译 链接 运行 edit compile link run 过程而创建的计算机编程语言 早期的脚本语言经常被称为批处理语言或作业控制语言 英语 Job Control Language 一个脚本通常是解释运行而非编译 脚本語言通常都有簡單 易學 易用的特性 目的就是希望能讓程式設計師快速完成程式的編寫工作 而巨集語言則可視為脚本語言的分支 兩者也有實質上的相同之處 虽然许多脚本语言都超越了计算机简单任务自动化的领域 比如JavaScript 1 Perl 2 PHP Python Ruby和Tcl 成熟到可以编写精巧的程序 但仍然还是被称为脚本 几乎所有计算机系统的各个层次都有一种脚本语言 包括操作系统层 如计算机游戏 网络应用程序 字处理文档 网络软件等 在许多方面 高级编程语言和脚本语言之间互相交叉 二者之间没有明确的界限 目录 1 起源 2 定义 3 脚本语言分类 3 1 作业控制和shell语言 3 2 文本处理语言 3 3 动态语言 3 4 可扩展 可嵌入语言 3 5 应用程序定制的脚本语言 3 6 WEB编程脚本 3 7 GUI脚本 3 8 其它 4 参见 5 参考文献 6 外部链接起源 编辑脚本語言是一种電腦程式語言 因此也能讓開發者藉以編寫出讓電腦聽命行事的程式 以簡單的方式快速完成某些複雜的事情通常是創造腳本語言的重要原則 基於這項原則 使得腳本語言通常比C語言 C 語言或 Java之類的系統程式語言 英语 System programming language 要簡單容易 也讓腳本語言另有一些屬於腳本語言的特性 3 語法和結構通常比較簡單 學習和使用通常比較簡單 通常以容易修改程式的 直譯 作為執行方式 而不需要 編譯 程式的開發產能優於執行效能一个脚本可以使得本来要用键盘进行的相互式操作自动化 一个Shell脚本主要由原本需要在命令行输入的命令组成 或在一个文本编辑器中 用户可以使用脚本来把一些常用的操作组合成一组序列 主要用来书写这种脚本的语言叫做脚本语言 很多脚本语言实际上已经超过简单的用户命令序列的指令 还可以编写更复杂的程序 定义 编辑计算机语言是为了各种目的和任务而开发的 一个常见任务就是把各种不同的已有组件连接起来以完成相关任务 大多脚本语言共性是 良好的快速开发 有效率的执行 解释而非编译执行 和其它语言编写的程序组件之间通信功能很强大 许多脚本语言用来执行一次性任务 尤其是系统管理方面 它可以把服务组件粘合起来 因此被广泛用于GUI创建或者命令行 操作系统通常提供一些默认的脚本语言 即通常所谓shell脚本语言 脚本通常以文本 如ASCII 保存 只在被调用时进行解释或编译 测试大型项目中经常把脚本和其它低级编程语言一起使用 各自发挥优势解决特定问题 脚本经常用于设计互动通信 它有许多可以单独执行的命令 可以做很高级的操作 如在传统的Unix shell sh 中 大多操作就是程序本身 这些高级命令简化了代码编写过程 诸如内存自动管理和溢出检查等性能问题可以不用考虑 在更低级或非脚本语言中 内存及变量管理和数据结构等耗费人工 为解决一个给定问题需要大量代码 当然这样能够获得更为细致的控制和优化 脚本缺少优化程序以提速或者降低内存的伸缩性 综上所述 脚本编程速度更快 且脚本文件明显小于如同类C程序文件 这种灵活性是以执行效率为代价的 脚本通常是解释执行的 速度可能很慢 且运行时更耗内存 在很多案例中 如编写一些数十行的小脚本 它所带来的编写优势就远远超过了运行时的劣势 尤其是在当前程序员工资趋高和硬件成本趋低时 然而 在脚本和传统编程语言之间的界限越来越模糊 尤其是在一系列新语言及其集成常出现时 在一些脚本语言中 有经验的程序员可以进行大量优化工作 在大多现代系统中通常有多种合适的脚本语言可以选择 所以推荐使用多种语言 包括C或者汇编语言 编写一种脚本 脚本语言分类 编辑作业控制和shell语言 编辑 主条目 Shell脚本 此类脚本用于自动化工作控制 即启动和控制系统程序的行为 大多的脚本语言解释器也同时是命令行界面 如Unix shell和MS DOS COMMAND COM 其他如AppleScript 可以为系统增加脚本环境 但没有命令行界面 具体包括 4DOS 英语 4DOS 4NT Take Command 英语 Take Command Console AppleScript ARexx 英语 ARexx Amiga Rexx bash csh DCL JCL 英语 Job Control Language ksh Cmd exe批处理 Windows OS 2 Command com批处理 DOS REXX tcsh sh Winbatch 英语 Winbatch Windows PowerShell Windows Script Host zsh 文本处理语言 编辑 处理基于文本的记录是脚本语言最早的用处之一 如Unix s awk最早是设计来帮助系统管理员处理调用UNIX基于文本的配置和LOG文件 Perl最早是用来产生报告的 现在它已经成了全面成熟的语言 具体包括 Awk Perl sed XSLT 动态语言 编辑 主条目 动态语言 一些通用动态语言 比如Perl 从一门脚本语言发展成了更通用的编程语言 由于 解释执行 内存管理 动态 等特性 它们仍被归类为脚本语言 脚本编程常与系统编程相对比 如Ousterhout 英语 John Ousterhout 在Ousterhout二分法 英语 Ousterhout s dichotomy 或大型编程和小型编程 英语 programming in the large and programming in the small 中做出的那样 在这种视角下 脚本是胶水代码 英语 glue code 被来连接软件组件 专门用于这个目的的语言叫做胶水语言 APL Dylan Groovy JavaScript JScript Lua MUMPS 英语 MUMPS M newLISP Nuva Perl PHP Python Ruby Scheme Shell脚本 如 Unix shell Windows PowerShell等 GNU Smalltalk SuperCard 英语 SuperCard Tcl 工具命令语言 VBScript 可扩展 可嵌入语言 编辑 少数的语言被设计通过嵌入应用程序来取代应用程序定制的脚本语言 开发者 如使用C等其它系统语言 包入使脚本语言可以控制应用程序的hook 这些语言和应用程序定制的脚本语言是同种用途 但优点在于可以在应用程序之间传递一些技能 具体包括 Ch 英语 Ch computer programming C C 解释器 ECMAScript 实现为DMDScript JavaScript等 GameMonkeyScript 英语 GameMonkey Script Guile ICI 英语 ICI programming language Lua RBScript REALbasic脚本 Squirrel 英语 Squirrel programming language Tcl JavaScript直到现在仍然是网页浏览器内的主要编程语言 它的ECMAScript标准化保证了它成为流行的通用嵌入性语言 Tcl作为一种可扩展语言而创建 但更多地被用作通用性语言 就如同Python Perl Ruby一样 应用程序定制的脚本语言 编辑 许多大型的应用程序都包括根据用户需求而定制的惯用脚本语言 同样地 许多电脑游戏系统使用一种自定义脚本语言来表现NPC non player character non playable character non player class 和游戏环境的预编程动作 此类语言通常是为一个单独的应用程序所设计 虽然它们貌似一些通用语言 如QuakeC modeled after C 但它们有自定义的功能 具体包括 Action Code Script 英语 Action Code Script ActionScript AutoLISP Emacs Lisp Game Maker Language 英语 Game Maker Language HyperTalk 英语 HyperTalk IPTSCRAE 英语 IPTSCRAE IRC script 英语 IRC script Lingo 英语 Lingo programming language Matlab Embedded Language Maya Embedded Language 英语 Maya Embedded Language mIRC script 英语 mIRC scripting language NWscript 英语 NWscript QuakeC UnrealScript Visual Basic for Applications VBScript ZZT oop 英语 ZZT Development WEB编程脚本 编辑 应用程序定制的脚本语言中有一种重要的类别 用于提供WEB页面的自定义功能 它专业处理互联网通信 使用网页浏览器作为用户界面 当然 大多现代WEB编程语言都比较强大可以做一些通用编程 具体包括 ColdFusion 应用服务器 Lasso 英语 Lasso programming language Miva 英语 MIVA Script SMX 英语 SMX computer language IPTSCRAE 英语 IPTSCRAE 一些网络开发团队用于创建论坛的工具 GUI脚本 编辑 GUI出现带来一种专业的控制计算机的脚本语言 它在用户和图形界面 菜单 按钮等之间互动 它经常用来自动化重复性动作 或设置一个标准状态 理论上它可以用来控制运行于基于GUI的计算机上的所有应用程序 但实际上这些语言是否被支持还要看应用程序和操作系统本身 当通过键盘进行互动时 这些语言也被称为巨集语言 具体包括 AutoHotkey AutoIt Expect 其它 编辑 BeanShell 英语 BeanShell Java的脚本 CobolScript 英语 CobolScript Euphoria F Script 英语 F Script programming language Groovy Io KiXtart Object REXX 英语 Object REXX Pike REBOL ScriptBasic 英语 ScriptBasic StepTalk 英语 StepTalk Visual DialogScript 英语 Visual DialogScript 参见 编辑領域特定語言参考文献 编辑 ECMAScript 2019 Language Specification www ecma international org 2018 04 02 原始内容存档于2016 08 13 Sheppard Doug Beginner s Introduction to Perl dev perl org 2000 10 16 2011 01 08 原始内容存档于2011 06 05 Programming is Hard Let s Go Scripting 页面存档备份 存于互联网档案馆 Larry Wall December 6 2007 賴榮樞 易學易用的 Windows PowerShell Microsoft TechNet 2006 06 01 2014 03 05 原始内容存档于2020 02 02 外部链接 编辑A study of the Script Oriented Programming SOP suitability of selected languages 页面存档备份 存于互联网档案馆 from The Scriptometer Hotscripts com 页面存档备份 存于互联网档案馆 A collection of many scripts written in an assortment of languages OpenSourceScripts com A collection of open source scripts A Slightly Skeptical View on Scripting Languages 页面存档备份 存于互联网档案馆 by Dr Nikolai Bezroukov Scripting Higher Level Programming for the 21st Century 页面存档备份 存于互联网档案馆 by John K Ousterhout Are Scripting Languages Any Good A Validation of Perl Python Rexx and Tcl against C C and Java PDF 页面存档备份 存于互联网档案馆 2003 study Free Classified ASP Script Site Software 页面存档备份 存于互联网档案馆 學習Shell Scripts 页面存档备份 存于互联网档案馆 鳥哥的Linux私房菜 取自 https zh wikipedia org w index php title 脚本语言 amp oldid 73713488, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。