1.有三个名词容易混淆:
Dynamic Programming Language (动态语言或动态编程语言)
Dynamically Typed Language (动态类型语言)
Statically Typed Language (静态类型语言)
动态语言与动态类型语言
初看起来, 很容易让我们认为它们是同一个概念,毕竟它们之间就差两字:"类型", 是的就因为这两字,它们的确不是同一个概念.
动态语言
动态编程语言是高级程序设计语言的一个类别,在计算机科学领域已被广泛应用。它是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言目前非常具有活力。众所周知的ECMAScript(JavaScript)便是一个动态语言,除此之外如PHP、Ruby、Python等也都属于动态语言,而C、C++等语言则不属于动态语言。
大部分动态语言都使用动态类型,但也有些不是。
动态类型语言
所谓的动态类型语言,意思就是类型的检查是在运行时做的.
静态类型语言
类型的检查是在编译时做的. 如果一个编程语言的类型检查,可在不测试运行时期表达式的等价性的情况下进行,该语言即为静态类型的.
强类型与弱类型
类型检查所进行的检验处理以及实行类型的约束,可发生在编译时期(静态检查)或运行时期(动态检查)。静态类型检查是在编译器所进行语义分析中进行的。如果一个语言强制实行类型规则(即通常只允许以不丢失信息为前提的自动类型转换)就称此处理为强类型,反之称为弱类型。
2.动态类型语言与弱类型语言之间的主要区别
动态类型语言的关键特征是它的类型检查的主体过程是在运行期而不是编译期.
满足这特特征的语言有很多,常用的包括:APL, Clojure, Erlang, Groovy, JavaScript, Jython, Lisp, PHP, Python, Ruby, Smalltalk和Tcl等.相对的,在编译期就进行类型检查过程的语言(如C++和Java)就是最常用的静态类型语言.
动态类型语言变量无类型而变量值才有类型
想想JavaScript, 定义一个变量a, 你可以将任意类型的变量值赋值给a.
参考文章:
http://en.wikipedia.org/wiki/Dynamic_programming_language
http://en.wikipedia.org/wiki/Type_system
分享到:
相关推荐
主要介绍了动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍,需要的朋友可以参考下
汉英语言对比之静态与动态.pdf
WPF 多国语言实现与动态切换当前使用的语言。
此资源最好搭配讲解,地址http://blog.csdn.net/m_nanle_xiaobudiu/article/details/79267703
今天来说说编程语言中的动态类型语言与鸭子类型。 动态语言 维基百科对动态语言的定义: 动态编程语言是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他...
作为一门静态类型语言,Kotlin旨在成为一种用于开发Android应用程序、Web后端、原生应用和跨平台解决方案的通用编程语言。本文将为您介绍Kotlin的特点、优势、应用领域以及如何使用Kotlin进行开发。 一、Kotlin的...
PureScript 是个小巧而强大的静态类型语言,可以编译成 JavaScript。PureScript 主要是由 Haskell 编写的。PureScript 示例代码:module Main where import Debug.Trace main = trace "Hello, World!"编译...
HTML 静态页面设计语言.
静态网页和动态网页的区别 动态网页和静态网页的区别,首先要分别了解两个概念,就是什么是静态网页,什么是动态网页,并且学会区分哪些是静态哪些是动态。 静态网页: (1)静态网页不能简单地理解成静止不动的...
Kotlin (科特林)是一个用于现代多平台应用的静态编程语言 ,由 JetBrains 开发。 Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。除此之外Kotlin还可以编译成二进制代码直接...
它是快速的、静态类型编译语言,但是感觉上是动态类型的,解释型语言。 《go语言中文教程及手册》包含了语言结构、基础语法、数据类型、语言变量、语言常量以及运算符等内容的介绍,可以让你快速进阶为go语言编程...
Rust是一种系统级编程语言,具有静态类型和高性能的特点
Flow 是 Facebook 出品的一个用于 JavaScript 代码的静态类型检查工具。用于找出 JavaScript 代码中的类型错误。Flow 采用 OCaml 语言开发。 标签:Flow
Pyright - 微软开源的Python语言的静态类型检查器
c++ 语言实现的静态链表数据结构,visualc++ 2008编译通过。
这里要澄清一点,我指的这种静态类型函数式编程语言,包括那种类型推断或者静态缺省等等。实际上,是Haskell和ML—family(包括Ocaml和F# ) 理由一:不想跟潮流 像大多数程序员一样,我怀旧且讨厌学习新...
JAVA语言静态变量和静态方法的分析及其应用研究.pdf
静态语言:是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。例如:C++、Java、Delphi、C# 、go等。 动态语言:是在运行时确定数据类型的语言。变量使用之前不需要...
Kotlin是一种运行在Java虚拟机上的静态类型编程语言