编程语言的一些基本概念

2013-07-19 walter lee 更多博文 » 博客 » GitHub »

原文链接 http://www.xiangguo.li/normal/2013/07/19/base_program
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


{% include JB/setup %}

  1. 编译型和解释型: 1.1 编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件。
    1.2 解释型语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译。

  2. 动态语言和静态语言(对应变量而言): 2.1 动态语言:一种在执行期间才去发现数据类型的语言, 动态语言是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。pythton
    2.2 静态语言:即一种在编译时,数据类型是固定的语言。大多数静态类型定义语言强制这一点,它要求你在使用所有变量之前要声明它们的数据类型。C、C++、Java

  3. 强类型定义语言和弱类型定义语言: 3.1 强类型定义语言:Java和Python是强制类型定义的。如果你有一个整数,如果不显示地进行转换,你不能将其视为一个字符串。
    3.2 弱类型定义语言:在VBScript中,可以将字符串 '12' 和整数 3 进行连接得到字符串 '123', 然后可以把它看成整数 123,而不需要显示转换。

  4. 脚本语言 脚本语言代表一套与系统程序设计语言不同的协定。
    它们牺牲执行速度和与系统程序设计语言相关的类型长度而提供更高的编程创作力和软件重用。
    脚本语言更适合在联系复杂的应用程序中进行胶着。
    脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。[1]它的命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批量处理语言或工作控制语言。[2]
    一个脚本通常是解释运行而非编译。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程序员快速完成程序的编写工作。而宏语言则可视为脚本语言的分支,两者也有实质上的相同之处。
    为了简化连接组件的工作,脚本语言被设计为无类型的,脚本语言一般是面向字符的,因为字符为许多不同的事物提供了一致的描述。

事实上,脚本语言都是动态语言,而动态语言都是解释型语言,不管它们是不是面向对象。