脚本语言(Script language,scripting language,scripting programming language)是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。此命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批量处理语言或工作控制语言。一个脚本通常是解释运行而非编译。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程序员快速完成程序的编写工作。而宏语言则可视为脚本语言的分支,两者也有实质上的相同之处。   虽然许多脚本语言都超越了计算机简单任务自动化的领域,成熟到可以编写精巧的程序,但仍然还是被称为脚本。几乎所有计算机系统的各个层次都有一种脚本语言。包括操作系统层,如计算机游戏,网络应用程序,字处理文档,网络软件等。在许多方面,高级编程语言和脚本语言之间互相交叉,二者之间没有明确的界限。   计算机语言是为了各种目的和任务而开发的,一个常见任务就是把各种不同的已有组件连接起来以完成相关任务。大多脚本语言共性是:良好的快速开发,高效率的执行,解释而非编译执行,和其它语言编写的程序组件之间通信功能很强大。   许多脚本语言用来执行一次性任务,尤其是系统管理方面。它可以把服务组件粘合起来,因此被广泛用于GUI创建或者命令行,操作系统通常提供一些默认的脚本语言,即通常所谓shell脚本语言。   脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。   有些脚本是为了特定领域设计的,但通常脚本都可以写更通用的脚本。在大型项目中经常把脚本和其它低级编程语言一起使用,各自发挥优势解决特定问题。脚本经常用于设计互动通信,它有许多可以单独执行的命令,可以做很高级的操作,(如在传统的Unix shell(sh)中,大多操作就是程序本身。)   这些高级命令简化了代码编写过程。诸如内存自动管理和溢出检查等性能
问题可以不用考虑。在更低级或非脚本语言中,内存及变量管理和数据结构等耗费人工,为解决一个给定问题需要大量代码,当然这样能够获得更为细致的控制和优化。脚本缺少优化程序以提速或者降低内存的伸缩性。   综上所述,脚本编程速度更快,且脚本文件明显小于如同类C程序文件。这种灵活性是以执行效率为代价的。脚本通常是解释执行的,速度可能很慢,且运行时更耗内存。在很多案例中,如编写一些数十行的小脚本,它所带来的编写优势就远远超过了运行时的劣势,尤其是在当前程序员工资趋高和硬件成本趋低时。   然而,在脚本和传统编
程语言之间的界限越来越模糊,尤其是在一系列新语言及其集成畅出现时。在一些脚本语言中,有经验的程序员可以进行大量优化工作。在大多现代系统中通常有多种合适的脚本语言可以选择,所以推荐使用多种语言(包括C或汇编语言)编写一种脚本。
编辑本段与其他编程语言的关系及特点
  1.脚本语言(JavaScript,VBscript等)介于HTML和C,C++,Java,C#等编程语言之间。   HTML通常用于格式化和链接文本。而编程语言通常用于向机器发出一系列复杂的指令。   2.脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相像一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些.   3.与程序代码的关系:脚本也是一种语言,其同样由程序代码组成。   注:脚本语言一般都有相应的脚本引擎来解释执行。 他们一般需要解释器才能运行。Pytho
n、JAVASCRIPT,ASP,PHP,PERL,Nuva都是脚本语言。C/C++编译、链接后,可形成独立执行的exe文件。   4.脚本语言是一种解释性的语言,例如Python、vbscript,javascript,installshield script,ActionScript等等,它不象c\c++等可以编译成二进制代码,以可执行文件的形式存在.   脚本语言不需要编译,可以直接用,由解释器来负责解释。   5.脚本语言一般都是以文本形式存在,类似于一种命令.   举个例子说,如果你建立了一个程序,叫,可以打开.aa为扩展名的文件.   你为.aa文件的编写指定了一套规则(语法),当别人编写了.aa文件后,你的程序用这种规则来理解编写人的意图,并作出回应.那么,这一套规则就是脚本语言.perl语言学习
编辑本段计算机脚本语言程序举例
  (1)JavaScript:   ①用于HTML中:   alert("Hello World")   ②用于WSH中:   WScript.Echo("Hello World")   (2)Python:   python 2.x:   >>> s = 'Hello World'   >>> print s   python 3.x:   >>> s = 'Hello World'   >>> print(s)   (3)ASP:   <% Response.Write("Hello, world!") %>   或者:   <% strHelloWorld = "Hello, world!" %>   <%= strHelloWorld %>   或者简单地写成:   <%= "Hello, world!" %>   (4)PHP:   <?php   echo 'Hello, world!';   print 'Hello, world!';   ?>   或者   <?= "Hello World!"?>   (5)PERL:   #!/usr/local/bin/perl   print "Hello, world!\n";   (6)Nuva:   <.. "Hello, World!" Demo ..>   <.   //======================================   // Hello, World! (1)   //=================
=====================   ?? 'Hello, World!'   /*======================================   Hello, World! (2)   ======================================*/   function HelloWorld()   ?? "Hello, World!";   end function   HelloWorld(); 
 /*======================================   Hello, World! (3)   ======================================*/   class World()   function Hello()   ?? 'Hello, World!';   end function   end class   var n = World();   n.Hello();   .>   (7)ActionScript:   ①ActionScript 2.0版本:   trace("Hello, world!");   ②ActionScript 3.0版本:   package {   import flash.display.TextField;   import flash.display.MovieClip;   import flash.filters.DropShadowFilter;   public class HelloWorld extends MovieClip {   public function HelloWorld() {   var shad:DropShadowFilter = new DropShadowFilter(2, 45, 0x000000, 25, 3, 3, 2, 2);   var txt:TextField = new TextField();   Color = 0xFFFFFF;   txt.filters = [shad];   txt.width = 120;   txt.x = Math.random()*300;   txt.y = Math.random()*300;   txt.selectable = false;    = "Hello World! ["+und(txt.x)+","+und(txt.y)+"]";   addChild(txt);   }   }   }   (8)PostScript:   PostScript是一种专门用来创建图像的语言,常用于打印机。   /font /Courier findfont 24 scalefont   font setfont   100 100 moveto   (Hello World!) show   showpage 
 (9)AppleScript:   say "Hello World!"   (10)Bash:   #!/usr/bin/env bash   myvar="hello"   myfunc() {   local x   local myvar="one two three"   for x in $myvar   do   echo $x   done   }   myfunc   echo $myvar $x   (11)Ruby   #!/usr/bin/env ruby   puts "Hello, world!"

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。