脚本语言编程
Python是一门通用型的编程语言,而它时常扮演着脚本语言的角色。一般来说,Python可定义为一门面向对象的脚本语言:这个定义把对面向对象的支持和彻底的面向脚本语言的角色融合在一起。如果只用一句话来概括,Python是一门融合了面向过程、函数式和面向对象编程范式的多目标语言。无论怎样,术语“脚本”一词已经同胶水一样黏在了Python 上,这不同于其他需要编写大量繁复代码的语言。例如,人们往往用“脚本”(script)而不是“程序”(program)一词来描述Python的代码文件。由于“脚本语言”的意思可谓众说纷纭,因而,一些人也认为该词在Python中的使用应该被完全禁止。实际上,人们往往给Python三个不同的角色,其中有些角色相对其余的角色更重要:
Shell工具
偶尔当人们听到Python是脚本语言时,他们会认为Python是一个面向系统的脚本语言代码工具。这些程序往往在命令行运行中,实现诸如文本文件的处理以及启动其他程序等任务。
Python程序当然能够以这样的角色工作,但这仅仅是Python常规应用范围的很小一部分。它不只是一种很好的Shell 脚本语言。
控制语言
对其他人而言,脚本意味着控制或重定向其他应用程序组件的“胶水”层。Python经常部署于大型应用之中。例如,测试硬件设备时,Python程序可以调用能够进行硬件底层访问的相关组件。类似地,在终端用户产品定制的过程中,应用程序可以在策略点处调用一些Python 代码,而无需分发或重新编译整个系统代码。
Python的简洁性使其从本质上能够成为一个灵活的控制工具。然而从技术上来讲,这也只是Python的常规角色之一,许多(或许也是绝大多数)Python代码作为独立的脚本执行时无须调用或者了解其他的集成组件。然而,Python不只是一种控制语言。使用便捷可能对“脚本语言”最好的解释,就是一类应用于快速编程任务的一种简单语言。对于Python来说,这确实是实至名归,因为Python和C++之类的编译语言相比,大大提高了程序开发速度。其敏捷的开发周期促进了探索、增量式的软件开发模型,而这些都是必须亲身体验之后才能体会得到。
但是千万别被迷惑,误以为Python仅可以实现简单的任务。恰恰相反,Python的易用性和灵活性使编程任务变得简单。Python有着一些简洁的特性,但是它允许程序按照需求以尽可能优雅的方式扩展。也正是基于这一点,它通常应用于快速作业任务和长期战略开发。
所以,Python是不是脚本语言,这取决于你看待这个问题的视角。一般意义上讲,“脚本语言”一词可能最适用于描述一种 Python所支持的快速和灵活的开发模式,而不是特定的应用领域的概念。
⑵ 脚本有哪几类和编程语言什么区别不同类的脚本怎么区别
这个应该怎么回答你呢,编程语言确实被分为脚本语言,标记语言,编译语言,解释语言,低级语言,高级语言等等。这些分类对于新手来说,往往会把它们搞乱。就好像一个未上过学的农民伯伯问你,什么是因特网,什么是互联网,什么是万维网,什么是局域网,什么是城域网一样,你很难一下子说明清,让他明白。
这种情况的原因,就在于,这些分类之间并不是严格互斥的,相互之间存在重叠和包容。就你的问题而言,脚本语言根本就没有分类,你的意思可能是想问:脚本语言有哪些。说实话,太多了,其它那些很生僻的就不说了,就一个程序员时常要用到的就不少。平时用得较多的,大致有这些:Ruby,Python,Shell,Javascript,Perl,Awk,Sed,Expect,ActionScript,Lua,php等。硬要给这些脚本语言分类的话,只能按它们的用途来分,比如:系统脚本(如Shell,windows批处理),应用脚本,和一般性脚本。
脚本语言中脚本一词,有配置,动态微调的意味。它最初的目的是为一些大型或超大型程序提供可实时编辑、可动态调整的特性。所以脚本语言的正统用途是把它们的解释器嵌入到由编译性语言如C,C++等写的大型程序中(如浏览器,操作系统,大型游戏等),以解释随时可变的用户脚本,提供更改这些大型程序特性,以达到用户期望程序行为的目的。
一句话,脚本语言的正统使命,是一个中介者,提供用户与其它大型程序之间的沟通桥梁。举例来说,浏览器是一个完整的大型程序,它内嵌JavaScript解释器,在运行期间动态解释用户的JavaScript脚本程序,以改变WEB页面的行为,获得各种页面效果。同样,操作系统(以linux为例),就自带了shell解释器,用户通过发shell命令或使用shell脚本程序来获得主机系统的各种信息(如cpu,内存,磁盘,进程等)。再如一些大型游戏(比如魔兽世界)也内嵌一些脚本语言的解释器(通常是lua),实现一些与游戏的交互。大家熟悉的3DMax,Photoshop和autoCAD软件都内嵌有一些脚本语言的解释器,目的都一样。
编译性语言与脚本语言的主要区别在于,脚本是由解释器逐行解释执行的,而编译性语言,则需要将源程序经编译器编译在可执行的计算机二进制代码。然后再执行。其它效率相当高,速度也特别快。但缺点是需要先编译,然后再执行。脚本语言的优势在于它的动态性,可以即改即用。
但是有些脚本语言的功能很强大,远超出了脚本最初的使命。首先,这些脚本语言的解释器经过优化,速度也非常快;其次,这些语言本身的许多特性也很强大,完全可以开发一些独立的大型程序。比如ruby,python,perl,php等。
最后,再回应你的最后一个问题:不同的语言对应不同的脚本这个问题,我不太明白你的本意。不同脚本语言,它们的语法肯定是不同的,不可能在语法上完全兼容,那样的话,你的直观感受就是,它们是同一个语言。
⑶ 脚本语言有哪些
脚本语言:脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。
语言分类:
Shell脚本:此类脚本用于自动化工作控制,即启动和控制系统程序的行为。大多的脚本语言解释器也同时是命令行界面,如Unix shell和MS-DOS COMMAND.COM。其他如AppleScript,可以为系统增加脚本环境,但没有命令行界面。具体分类有:
4NT
AppleScript
ARexx (Amiga Rexx)
bash
csh
DCL
JCL
ksh
Cmd.exe batch (Windows, OS/2)
Command.com batch (DOS)
REXX
tcsh
sh
Winbatch
Windows PowerShell
Windows Script Host
zsh
GUI脚本:GUI出现带来一种专业的控制计算机的脚本语言。它在用户和图形界面,菜单,按钮等之间互动。它经常用来自动化重复性动作,或设置一个标准状态。理论上它可以用来控制运行于基于GUI的计算机上的所有应用程序,但实际上这些语言是否被支持还要看应用程序和操作系统本身。当通过键盘进行互动时,这些语言也被称为宏语言。
具体分类有:
AutoHotkey
AutoIt
Expect
应用程序定制:许多大型的应用程序都包括根据用户需求而定制的惯用脚本语言。同样地,许多电脑游戏系统使用一种自定义脚本语言来表现NPC(non-player character,non-playable character,non-player class)和游戏环境的预编程动作。此类语言通常是为一个单独的应用程序所设计,虽然它们貌似一些通用语言(如QuakeC, modeled after C),但它们有自定义的功能。具体分类:
Action Code Script
ActionScript
AutoLISP
BlobbieScript
Emacs Lisp
Game Maker Language
HyperTalk
IPTSCRAE
IRC script
Lingo
Maya Embedded Language
mIRC script
NWscript
QuakeC
UnrealScript
Visual Basic for Applications
VBScript
ZZT-oop
web编程脚本:应用程序定制的脚本语言中有一种重要的类别,用于提供WEB页面的自定义功能。它专业处理互联网通信,使用网页浏览器作为用户界面。当然,大多现代WEB编程语言都比较强大可以做一些通用编程。具体分类:
ColdFusion (Application Server)
Lasso
Miva
SMX
IPTSCRAE-一些网络开发团队用于创建论坛的工具
文本处理语言:处理基于文本的记录是脚本语言最早的用处之一。如Unix's awk最早是设计来帮助系统管理员处理调用UNIX基于文本的配置和LOG文件。PERL最早是用来产生报告的,现在它已经成了全面成熟的语言。
具体分类:
Awk
Perl
sed
XSLT
通用动态语言:一些语言,比如Perl,从一门脚本语言发展成了更通用的编程语言。由于“解释执行,内存管理,动态”等特性,它们仍被称为脚本语言。但它们已经用于应用程序编写,用户也不把它们看作脚本语言。
APL
Dao
Dylan
Groovy
Lua
MUMPS (M)
newLISP
Nuva
Perl
PHP
Python
Ruby
Scheme
Smalltalk
SuperCard
Tcl (Tool command language)
程序语言:少数的语言被设计通过嵌入应用程序来取代应用程序定制的脚本语言。开发者(如使用C等其它系统语言)包入使脚本语言可以控制应用程序的hook。这些语言和应用程序定制的脚本语言是同种用途,但优点在于可以在应用程序之间传递一些技能。
具体分类:
Ch (C/C++ interpreter)
Dao
ECMAScript 亦称 DMDScript, JavaScript, JScript
GameMonkeyScript
Guile
ICI
Lua
RBScript (REALbasic Script)
Squirrel
Tcl
Z-Script
JavaScript直到现在仍然是网页浏览器内的主要编程语言,它的ECMAScript标准化保证了它成为流行的通用嵌入性语言。Tcl作为一种扩展性语言而创建,但更多地被用作通用性语言,就如同Python, Perl, Ruby一样。Q语言是在VBScript的基础上发展起来,专用于按键精灵系列产品,成为一门更接近“汉语”习惯的脚本语言。
BeanShell (scripting for Java)
CobolScript
Escapade (server side scripting)
Euphoria
F-Script
Ferite
Groovy
Gui4Cli
Io
KiXtart
Mondrian
Object REXX
Pike
Pliant
REBOL
ScriptBasic
Shorthand Language
Simkin
Sleep
StepTalk
Visual DialogScript