PLC
直播中

张健

7年用户 1388经验值
私信 关注

脚本语言的优缺点分别是什么

什么是脚本语言?

脚本语言的特点有哪些?
脚本语言的优缺点分别是什么?

回帖(1)

刘文明

2021-10-9 15:10:52
  1、脚本语言
  脚本语言的定义
  脚本语言(Script languages,scripting programming languages,scripting languages)是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。此命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批处理语言或工作控制语言。一个脚本通常是解释运行而非编译。虽然许多脚本语言都超越了计算机简单任务自动化的领域,成熟到可以编写精巧的程序,但仍然还是被称为脚本。几乎所有计算机系统的各个层次都有一种脚本语言。包括操作系统层,如计算机游戏,网络应用程序,文字处理文档,网络软件等。在许多方面,高级编程语言和脚本语言之间互相交叉,二者之间没有明确的界限。一个脚本可以使得本来要用键盘进行的相互式操作自动化。一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组序列。主要用来书写这种脚本的语言叫做脚本语言。很多脚本语言实际上已经超过简单的用户命令序列的指令,还可以编写更复杂的程序。
  简介
  脚本语言是为了缩短传统的 编写- 编译- 链接- 运行(edit-compile-link-run)过程而创建的计算机 编程语言。它的命名起源于一个脚本“screenplay”,每次运行都会使 对话框逐字重复。早期的脚本语言经常被称为批量处理语言或工作控制语言。
  一个脚本通常是解释运行而非编译。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让 程序员快速完成 程序的编写工作。而宏语言则可视为脚本语言的 分支,两者也有实质上的相同之处。
  特点
  1、脚本语言(JavaScript, VBscript等)介于 HTML和C, C++, Java,C#等编程语言之间。 HTML通常用于格式化和链接文本。而编程语言通常用于向机器发出一系列复杂的指令。
  2、脚本语言与 编程语言也有很多相似地方,其 函数与编程语言比较相像一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些。
  3、与程序代码的关系:脚本也是一种语言,其同样由程序代码组成。
  注:脚本语言一般都有相应的 脚本引擎来解释执行。 他们一般需要 解释器才能运行。 Python、JAVASCRIPT,ASP,PHP,PERL, Nuva都是脚本语言。C/C++编译、链接后,可形成独立执行的exe文件。
  4、脚本语言是一种解释性的语言,例如 Python、vbscript,javascript,installshield script,ActionScript等等,它不象cc++等可以编译成二进制代码,以 可执行文件的形式存在,脚本语言不需要编译,可以直接用,由解释器来负责解释。
  5、脚本语言一般都是以 文本形式存在,类似于一种 命令。
  举个例子说:如果建立了一个程序,叫aaa.exe,可以打开.aa为扩展名的文件,为.aa文件的编写指定了一套规则(语法),当别人编写了.aa文件后,自己的程序用这种规则来理解编写人的意图,并作出回应,那么,这一套规则就是脚本语言。
  6、相对于编译型计算机编程语言:用脚本语言开发的程序在执行时,由其所对应的解释器(或称虚拟机)解释执行。系统程序设计语言是被预先编译成机器语言而执行的。脚本语言的主要特征是:程序代码即是脚本程序,亦是最终 可执行文件。脚本语言可分为 独立型和 嵌入型,独立型脚本语言在其执行时完全依赖于解释器,而嵌入型脚本语言通常在编程语言中(如 C, C++, VB, Java等)被 嵌入使用。
  7、和系统程序设计语言相比:不同是脚本语言是被解释而系统程序设计语言是被编译。被解释的语言由于没有编译时间而提供快速的转换,通过允许用户运行时编写应用程序,而不需要耗时的编译/打包过程。解释器使应用程序更加灵活,脚本语言的代码能够被实时生成和执行。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程序设计师快速完成程序的编写工作。
  2、脚本语言的优缺点
  优点
  快速开发:脚本语言极大地简化了“ 开发、 部署、 测试和 调试”的周期过程。
  容易部署:大多数脚本语言都能够随时部署,而不需要耗时的编译/打包过程。
  同已有技术的集成:脚本语言被Java或者 COM这样的组件技术所包围,因此能够有效地利用代码。
  易学易用:很多脚本语言的技术要求通常要低一些,因此能够更容易地找到大量合适的技术人员。
  动态代码:脚本语言的代码能够被实时生成和执行,这是一项高级特性,在某些应用程序里(例如JavaScript里的动态类型)是很有用也是必需的。
  缺点
  脚本语言不够全面:它们会要求一门“真正的”编程语言的存在,必须找一个数据库驱动程序将其内置进脚本语言里。
  脚本语言并不是软件工程和构建代码结构的最佳选择,例如面向对象和基于 组件的开发。
  脚本语言通常不是“ 通用”语言,但是能够根据 专门的应用来调整,例如: PHP和 万维网。
  3、脚本语言的应用和发展
  一、应用
  (1):作为批次处理语言或工作控制语言。许多脚本语言用来执行一次性任务,尤其是 系统管理方面。DOS, Windows的 批处理文件和 Unix的 shell脚本都属于这种应用;
  (2):作为通用的编程语言存在,如 Perl、 Python、 Ruby等。由于“解释执行, 内存管理,动态”等特性,它们仍被称为脚本语言。但它们已经用于应用程序编写,用户也不把它们看作脚本语言;
  (3):许多大型的应用 程序都包括根据 用户需求而定制的惯用脚本语言。同样地,许多电脑 游戏系统使用一种自定义脚本语言来表现 NPC(Non-Player Character,Non-Playable Character,Non-Player Class)和游戏环境的预编程动作。此类语言通常是为一个单独的应用程序所设计,虽然它们貌似一些通用语言(如Quake C,Modeled After C),但它们有自定义的功能;
  (4):网页中的嵌入式脚本语言。熟知的 HTML(Hyper Text Mark-up Language)即 超文本标记语言,就是一种脚本语言,它的解释器就是 浏览器。 JavaScript直到现在仍然是网页 浏览器内的主要编程语言,它的ECMAScript标准化保证了它成为流行的通用嵌入式脚本语言。另外,随着 动态网页技术发展, ASP、 JSP、PHP等嵌入网页的脚本语言正被广泛使用,不过这些脚本要通过Web Server解释,而Html则被浏览器执行;
  (5):脚本语言在系统应用程序中嵌入使用,作为用户与系统的接口方式。在工业控制领域,PLC编程、组态软件的脚本语言是扩充组态 系统功能的重要手段;在通信平台领域, IVR(自动语音应答)流程编程;Office办公软件,提供的宏和VBA;其他应用软件如ER Studio提供的Basic MacroEditor,用户可以编写Sax Basic脚本操作ER图,生成Access库、导出Word文档等扩展功能。 [8]
  二、发展情况
  脚本技术得益于计算机 硬件的加速发展。某些情况下甚至系统程序设计语言也不够有效,因此不得不用汇编编写应用程序。而今的机器比1980年的快100~500倍,且仍在以每18个月翻一番的速度增长。计算机性能快速提高,使计算机程序越来越复杂。因此,开发时间已远比运行时间紧迫。这时,脚本语言作为系统程序设计语言的补充,开始被主要的 计算机平台所同时提供。 编程语言已经由性能低下的硬件与执行效率之间的矛盾,转变为快速变化的市场需要与低效的开发工具之间的矛盾,所以脚本语言的发展在软件开发中有着必然的趋势。
  4、脚本语言分类
  一、工作控制语言和shell
  Shell 脚本
  此类脚本用于自动化工作控制,即启动和控制系统程序的行为。大多的脚本语言解释器也同时是命令行界面,如 Unix shell和MS-DOS command。其他如AppleScript,可以为系统增加脚本环境,但没有命令行界面。
  具体分类有:
  1.4NT
  2. AppleScript
  3.ARexx(Amiga Rexx)
  4. bash
  5. csh
  6. DCL
  7. JCL
  8. ksh
  9.Cmd.exe batch( Windows, OS/2)
  10.command batch( DOS)
  11. REXX
  12. tcsh
  13. sh
  14.Winbatch
  15. Windows PowerShell
  16.Windows Script Host
  17. zsh
  二、GUI 脚本
  GUI出现带来一种专业的控制计算机的脚本语言。它在用户和图形界面, 菜单,按钮等之间互动。它经常用来自动化重复性动作,或设置一个标准状态。理论上它可以用来控制运行于基于GUI的计算机上的所有 应用程序,但实际上这些语言是否被支持还要看应用程序和操作系统本身。当通过键盘进行互动时,这些语言也被称为宏语言。
  具体分类有:
  1. AutoHotkey
  2. AutoIt
  3. Expect
  三、应用程序定制的脚本语言
  许多大型的应用程序都包括根据用户需求而定制的惯用脚本语言。同样地,许多电脑游戏系统使用一种自定义脚本语言来表现NPC(non-player character,non-playable character,non-player class)和游戏环境的预编程动作。
  此类语言通常是为一个单独的应用程序所设计,虽然它们貌似一些通用语言(如QuakeC, modeled after C),但它们有自定义的功能。
  具体分类:
  1.Action Code Script
  2. ActionScript
  3. AutoLISP
  4.BlobbieScript
  5.Emacs Lisp
  6.Game Maker Language
  7. HyperTalk
  8.IPTSCRAE
  9.IRC script
  10. Lingo
  11.Matlab Embedded Language
  12.Maya Embedded Language
  13.mIRC script
  14.NWscript
  15.QuakeC
  16.UnrealScript
  17.Visual Basic for Applications
  18. VBScript
  19.ZZT-oop
  四、WEB编程脚本
  应用程序定制的脚本语言中有一种重要的类别,用于提供WEB页面的自定义功能。它专业处理互联网通信,使用 网页浏览器作为用户界面。当然,大多现代WEB编程语言都比较强大可以做一些通用编程。
  具体分类:
  1. ColdFusion(Application Server)
  2.Lasso
  3. Miva
  4. SMX
  5.IPTSCRAE- 一些网络开发团队用于创建论坛的工具
  五、文本处理语言
  处理基于文本的记录是脚本语言最早的用处之一。如Unix‘s awk最早是设计来帮助系统管理员处理调用 UNIX基于文本的配置和LOG文件。Perl最早是用来产生报告的,现在它已经成了全面成熟的语言。
  具体分类:
  1. Awk
  2. Perl
  3. sed
  4. XSLT
  六、通用动态语言
  一些语言,比如Perl,从一门脚本语言发展成了更通用的编程语言。由于“解释执行,内存管理,动态”等特性,它们仍被称为脚本语言。但它们已经用于应用程序编写,用户也不把它们看作脚本语言。
  1. APL
  2. Dao
  3. Dylan
  4. Groovy
  5. Lua
  6. MUMPS(M)
  [9] 7.newLISP
  8. Nuva
  9. Perl
  10. PHP
  11. Python
  12. Ruby
  13. Scheme
  14. Smalltalk
  15.SuperCard
  16. Tcl(Tool command language)
  七、扩展/可嵌入语言
  少数的语言被设计通过嵌入应用程序来取代应用程序定制的脚本语言。开发者(如使用C等其它系统语言)包入使脚本语言可以控制应用程序的hook。这些语言和应用程序定制的脚本语言是同种用途,但优点在于可以在应用程序之间传递一些技能。
  具体分类:
  1. Ch(C/C++ interpreter)
  2. Dao
  3. ECMAScript亦称DMDScript, JavaScript, JScript
  4.GameMonkeyScript
  5. Guile
  6. ICI
  7. Lua
  8.RBScript(REALbasic Script)
  9. Squirrel
  10. Tcl
  11.Z-Script
  JavaScript直到现在仍然是网页浏览器内的主要编程语言,它的ECMAScript标准化保证了它成为流行的通用嵌入性语言。
  Tcl作为一种扩展性语言而创建,但更多地被用作通用性语言,就如同Python, Perl, Ruby一样。
  八、其它
  1. BeanShell(scripting for Java)
  2.CobolScript
  3.Escapade (server side scripting)
  4. Euphoria
  5.F-Script
  6.Ferite
  7. Groovy
  8.Gui4Cli
  9. Io
  10.KiXtart
  11. Mondrian
  12.Object REXX
  13. Pike
  14.Pliant
  15. REBOL
  16.ScriptBasic
  17.Shorthand Language
  18.Simkin
  19. Sleep
  20.StepTalk
  21.Visual DialogScript
举报

更多回帖

发帖
×
20
完善资料,
赚取积分