动态语言和静态语言的区别

这几天学习Python,对于“动态语言”这个概念原本没有太多、太深的理解,今天无意中看到一篇博文,终于算是理解了,总结一下,以备后续查阅:

定义:

动态类型语言:

在程序运行期间检查数据的类型的语言。用这类语言编程,不用给变量指定类型,而是在赋值时得到数据类型。如:Python和ruby就是典型动态类型语言。比如:

x = 12
print x

以上代码中的变量x并没有指定其类型

静态类型语言:

相反静态类型语言是在运行前编译时检查类型。在写代码时,每声明一个变量必须指定类型。如:java,c#,c,c++等等。比如:

public int add(int a,int b)

{
        return a+b;
}

动态编程语言:

动态编程语言(Dynamic Programming Language)指在程序运行过程中可以改变数据类型的结构,对象的函数,变量可以被修改删除。比如:javascrīpt就是这类语言,ruby, python也属于这类语言。而c++,java不属于这类语言,当然静态编程语言 是运行时不可改变结构了。

时间: 2024-10-07 16:27:26

动态语言和静态语言的区别的相关文章

编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别

一.编译型和解释型 我们先看看编译型,其实它和汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码.这个过程说得专业一点,就称为编译(Compile),而负责编译的程序自然就称为编译器(Compiler).如果我们写的程序代码都包含在一个源文件中,那么通常编译之后就会直接生成一个可执行文件,我们就可以直接运行了.但对于一个比较复杂的项目,为了方便管理,我们通常把代码分散在各个源文件中,作为不同的模块来组织.这时编译各个文件时就会生成目标文件(Object  

解释型语言和编译型语言、弱类型语言和强类型语言、动态语言和静态语言的区别

计算机是不能理解除了机器语言以外的任何语言所以必须要把程序员所写的程序语言都翻译成机器语言才能执行程序.程序语言翻译成机器语言的工具,叫做翻译器. 编程语言  ————> 翻译器  ————> 计算机语言(二进制) 翻译器翻译的方式有两种:一是 编译,二是 翻译.两种方式之间对区别在于翻译的时间点不同. 编译器:是在代码执行之前进行编译,生成中间代码文件 解释器:是在运行时进行及时解释,并立即执行(当编译器以解释方式运行的时候,也称之为解释器) 举个栗子: 编译型语言:就像是请客的时候要先把所

什么是动态语言和静态语言?静态语言动态语言的区别

定义 通常我们所说的动态语言.静态语言指 动态类型语言(Dynamically Typed Language)和 静态类型语言Statically Typed Language).还有一个 Dynamic Programming Language (动态编程语言),静态编程语言. 动态类型语言:在运行期间检查数据的类型的语言.用这类语言编程,不会给变量指定类型,而是在附值时得到数据类型.如:Python和ruby就是典型动 态类型语言.很多脚本语言vbscrīpt,javascrīpt也是这类语

动态语言和静态语言、编译型语言和解释型语言、强类型语言和弱类型语言的分析

一.动态语言和静态语言1. 我们常说的动.静态语言,通常是指: 动态类型语言 Dynamically Typed Language 静态类型语言 Statically Typed Language 可能还有:动.静态编程语言 Dynamic\Statically Programming Language 2.    动态类型语言:在运行期间检查数据的类型的语言例如:Ruby\Python这类语言编程,不会给变量指定类型,而是在附值时得到数据类型.Python是动态语言,变量只是对象的引用,变量a

多态 这是动态语言和静态语言(例如Java)最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。

多态 类具有继承关系,并且子类类型可以向上转型看做父类类型,如果我们从 Person 派生出 Student和Teacher ,并都写了一个 whoAmI() 方法: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def whoAmI(self): return 'I am a Person, my name is %s' % self.name clas

动态语言、静态语言及动态语言的“鸭子类型“

动态语言与静态语言: 所谓动态和静态,是指程序中类型.类型又是指class,int等定义,比如变量的类型,函数的入参类型,返回值类型.动态类型语言,表示在编写程序的时候,无需制定类型,是运行时检查:静态类型语言,表示在编写程序的时候,需要显式地制定各种类型,在编译的时候就会被检查. 有人说静态类型语言叫强类型语言,是指需要进行变量/对象类型声明的语言,一般情况下需要编译执行. 例如C/C++/Java/C# 有人说动态类型语言叫弱类型语言,是指不需要进行变量/对象类型声明的语言,一般情况下不需要

ios 开发中 动态库 与静态库的区别

使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库,多个应用程序共享内存中得同一份库文件,节省资源 3使用动态库,可以不重新编译连接可执行程序的前提下,更新动态库文件达到更新应用程序的目的. 从1可以得出,将整个应用程序分模块,团队合作,进行分工,影响比较小. 等其他好处, 从2可以看出,其实动态库应该叫共享库,那么从这个意义上来说,苹果禁止iOS开

动态网页和静态网页的区别

一.从功能方面来说动态网站与静态网站的区别 1. 动态网站可以实现静态网站所实现不了的功能,比方说:聊天室.论坛.音乐播放.浏览器.搜索等:而静态的网站则实现不了.2. 静态网站,如用Frontpage或Dreamweaver开发出来的网站,其源代码是完全公开的,任何浏览者都可以非常轻松地得到其源代码,也就是说,自己设计出来的东西很容易被别人盗用.动态网站,如:ASP开发出来的网站,虽然浏览者也可以看到其源代码,但是那已经是转换过以后的代码,想盗用源代码那是不可能的,因为它的源代码已经放在服务器

路由器中pppoe,动态IP,静态IP的区别

路由器中pppoe,动态IP,静态IP的区别 要把路由器设置得能上网,无非就是设置WAN外网接口连接而已.WAN接口能上网,则连接的电脑就能上网,反之则上不了网.只不过WAN接口往往有pppoe,动态IP,静态IP三种连接方式,一般的用户搞不清楚有什么区别.且听我慢慢道来…… 第一种:PPPOE模式可以说是最常用的了,无论是从电信联通那里拉来的ADSL宽带,还是接小区的网络,用的都是PPPOE协议.因为他们都会给你一个宽带账号和密码,输入账号密码连接就可以上网了.这就要用PPPOE模式,要不然都

动态链接和静态链接的区别

动态链接和静态链接的区别 一.分别编译与链接(Linking) 大多数高级语言都支持分别编译,程序员可以显式地把程序划分为独立的模块或文件,然后每个独立部分分别编译.在编译之后,由链接器把这些独立的片段(称为编译单元)“粘接到一起”.(想想这样做有什么好处?) 在C/C++中,这些独立的编译单元包括obj文件(一般的源程序编译而成).lib文件(静态链接的函数库).dll文件(动态链接的函数库)等. 静态链接方式:在程序执行之前完成所有的组装工作,生成一个可执行的目标文件(EXE文件). 动态链