代码改变世界

读书笔记:《java脚本编程:语言、框架与模式》-(1)脚本语言

2011-04-02 20:56  会被淹死的鱼  阅读(384)  评论(0编辑  收藏  举报

脚本语言的定义很模糊,脚本语言一般是一种高级语言,在它们被执行的时候进行解释。这样,应用程序就以他们原始的形式存在于脚本中,并且这种构造由名为解释器的程序在运行时进行转换。一般而言,你是在执行解释器,它读取应用程序的语句然后执行它们。这类语言称为脚本或者动态语言。

java平台幕后的主要思想是将一个虚拟的处理器实现为一个软件组件,称作虚拟机。当我们有这样一台虚拟机时,就可以为该处理器编写和编译代码了,而不需要特定的硬件平台或操作系统。编译过程的输出称作是字节码,它实际上表示目标虚拟机的机器代码。所以,java语言是既有编译语言的特点,也有解释语言的特点,使得java平台非常特殊。

java采用的是一种混合了编译器和解释器的模型。源代码首先被编译成一些中间代码,随后它们得到解释。通常,这个中间代码都设计得非常紧凑。而且,这种语言没有绑定于任何特定的机器,它是针对虚拟机设计的,可以在软件中实现。这种混合方法是一种折衷,有以下两个特点:

  1. 因为字节码是优化且紧凑的,与纯解释语言相比,解释工作的耗费被减到了最少;
  2. 解释语言的平台独立性是继承于纯解释语言的,因为中间代码可以在包含适当虚拟机的任何主机上执行

类型策略,一般可以分为动态类型和静态类型,强类型和弱类型。脚本语言一般为动态类型。

传统编程语言一般在编译时进行类型检查,这就是典型的静态类型。类型错误会在编译时发现。

动态类型的语言,一般是在运行时进行类型检查,当试图执行到有问题的代码时,会触发一个运行时错误。

强类型语言,当程序员试图在其类型不适合该操作的变量中执行一个操作时,类型误用,强类型语言会出现错误。比如python。

弱类型语言,会隐式地进行适当的类型转换。比如JavaScript。

大部分的脚本语言都提供了常用的数据结构,比如list、set、map等,作为这些语言的原生数据类型。这些常用数据结构的支持提高了开发人员的生产力。