编程语言与标记语言之间有什么区别?
编程语言确实被分为脚本语言,标记语言,编译语言,解释语言,低级语言,高级语言等等。
这种情况的原因,就在于,这些分类之间并不是严格互斥的,相互之间存在重叠和包容。
就你的问题而言,脚本语言根本就没有分类,你的意思可能是想问:脚本语言有哪些。说实话,太多了,其它那些很生僻的就不说了,就一个程序员时常要用到的就不少。
平时用得较多的,大致有这些: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等。
编程语言 (programming language)可以例如 c, perl, javascript
标记语言( markup language ), 有 xml, html, xhtml ( xml 和 html 的合体 )你会见到他们都是 "ml" 尾的.
标记语言的存在用来被读取的, 例如 svg 的图档其实就是用 xml 写出来的. 而其本身是没有行为能力的. 在标记语言里你会看到很多 < 和 > 这些钻括号, 这些是用来写出 "层次" 和 "属性" 的. 简言之, 他是被动的
而在 编程语言 里, 你会看到很多 if else for while print ... 这些具有逻辑性和行为能力的指令. 这是主动的.