语言系列 05:编程语言分析

Published: 30 Oct 2017 Category: 语言

分类方式

  • 动态语言(Ruby,)
    • 程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化,类型的检查是在运行时做的,优点为方便阅读,清晰明了,缺点为不方便调试。
  • 静态语言
    • 静态类型语言的类型判断是在运行前判断(如编译阶段),比如C#、java就是静态类型语言,静态类型语言为了达到多态会采取一些类型鉴别手段,如继承、接口,而动态类型语言却不需要,所以一般动态语言都会采用dynamic typing,常出现于脚本语言中.需要明确说明一点,那就是,是不是动态类型语言与这门语言是不是类型安全的完全不相干的,不要将它们联系在一起!

分类

  • 编译型
  • 解释型

参考链接:

Python(动态语言)


* 1. 是一种面向对象的解释型计算机程序设计语言
* 2. 7月20日,IEEE发布2017年编程语言排行榜:Python高居首位
* 3. Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine

Groovy(动态语言)


* 1. 是一种基于JVM(Java虚拟机)的敏捷开发语言
* 2. 一种成熟的面向对象编程语言
* 3. 既可以用于面向对象编程,又可以用作纯粹的脚本语言
* 4. Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程)

Scala(静态语言)


* 1. 一种多范式的编程语言
* 2. 设计意图是要集成面向对象编程和函数式编程的各种特性
* 3. Scala是一种纯面向对象的语言,每一个值都是对象
* 4. 

Ruby(动态语言)


* 1. 适合于快速开发,一般开发效率是JAVA的5倍
* 2. 一种类似于 Python 和 Perl 的服务器端脚本语言

Go(静态语言)


Boo(静态语言)


* 1.