`
kent0113
  • 浏览: 4016 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

动态语言和静态语言、强类型定义语言和弱类型定义语言

 
阅读更多

1、动态语言和静态语言
  通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。

(1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。

(2)静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。

对于动态语言与静态语言的区分,套用一句流行的话就是:Static typing when possible, dynamic typing when needed。

2、强类型定义语言和弱类型定义语言

(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

(2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。

分享到:
评论

相关推荐

    python 学习中关于动态类型静态类型强类型弱类型的问题.docx

    ### Python学习中关于动态类型、静态类型、强类型与弱类型的问题 #### 动态类型与静态类型 在计算机编程领域,动态类型和静态类型是两种重要的类型系统分类方式。 **动态类型**(Dynamic Typing)指的是在程序...

    动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍

    总结来说,动态语言和静态语言主要区别在于类型检查的时间点,而强类型和弱类型关注的是类型转换的规则。动态类型语言与静态类型语言各有优劣,动态语言更灵活,适合快速迭代的开发;静态类型语言则提供了更好的编译...

    弱类型语言允许将一块内存看做多种类型

    - **Python**:虽然 Python 在表面上看起来是弱类型语言,因为它支持动态类型,但实际上在操作不同类型的数据时仍然需要遵循严格的规则,因此被视为强类型语言。 ### Java 中 WeakHashMap 的使用及特性 #### 五、...

    Python动态强类型解释型语言原理解析

    PYTHON是一门动态解释性的强类型定义语言:编写时无需定义变量类型;运行时变量类型强制固定;无需编译,在解释器环境直接运行。 动态和静态 静态语言:是指在编译时变量的数据类型即可确定的语言,多数静态类型语言...

    强类型登陆

    强类型登录是编程领域中一个重要的概念,尤其是在使用如C#、Java或TypeScript等静态类型语言时。在这些语言中,"强类型"意味着在编译时变量的数据类型就已经被明确规定并强制执行,不允许在运行时随意改变。在强类型...

    .NET面试题C#.NET

    c和c++是静态语言,也是弱类型语言,perl和php是动态语言,但也是弱类型语言,强类型语言在没有强制类型转换前,不允许两种不同类型的变量相互操作。java、c#和python都是强类型语言。 使用那种语言还是要按需而定。...

    Python学习Day01

    (4)编辑语言:编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言 (5)Python种类: 二、Python入门: 1、变量 2、常量:长时间不发生变化 3、注释:解释说明,被注释的内容不会被执行 4、基础...

    Go(也被称为Golang)是由Google公司开发的一种静态强类型、编译型的编程语言 自2007年诞生以来,Go凭借其简洁、高

    - **特点**:Go语言是一种静态强类型、编译型的语言,它以其简洁、高效和并发的特性而著称。 - **应用领域**:Go语言广泛应用于服务器端开发、网络编程、分布式系统等领域,并且在构建高性能Web服务器、微服务架构...

    C#语言定义文档 中文版(微软官网)

    8. **类型系统**:C#是强类型语言,拥有严谨的类型检查机制,同时支持静态和动态类型,如var关键字的隐式类型推断。 9. **安全性**:C#支持代码访问安全性和异常处理,确保程序运行时的安全性,减少错误的发生。 ...

    Python基础1-2章-小白自学自用版

    Python是一种解释型、面向对象的编程语言,这意味...总之,Python作为一门动态解释性的强类型定义语言,结合了动态类型语言的灵活性和强类型语言的严谨性,是初学者和专业人士理想的选择,尤其适合快速开发和原型验证。

    程序语言设计概论7次作业标准答案

    HWA2可能深入到语言的类型系统,讨论静态类型和动态类型的区别,以及强类型和弱类型的含义。此外,也可能涉及类型转换和类型检查的相关问题。 HWA3可能涵盖了语义学的讲解,包括词法语义、静态语义和动态语义。学生...

    编程语言原理(第10版)

    书中会讨论静态类型和动态类型的区别,以及强类型和弱类型的含义。此外,还会涉及类型检查、类型推断以及类型系统的设计原则,这些都是现代编程语言设计中的关键考虑因素。 **内存管理**是编程语言实现中的重要环节...

    delphi dll的静态和动态调用示例

    在动态调用中,需要注意类型匹配问题,因为Delphi是强类型的,确保主程序和DLL中函数的参数类型一致至关重要。 **示例文件内容** 压缩包中的文件可能包含以下内容: - `MyDll.pas`: DLL的源代码,定义了导出函数。 ...

    (完整word)ST语言编程手册.doc

    ST语言是一种高级语言,具有强类型、静态类型和面向对象的特点。ST语言的基本原理包括语法图、语法图中的块、规则的意义等。 语法图 ST语言的语法图是由多个块组成的,每个块都有其特定的语法和语义。语法图是ST...

    go 语言 入门

    Go语言,通常被称为Golang,是由Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。它具有简洁、快速、安全和现代的特点。Go语言设计团队的初衷是为了让编程更加简单、高效,同时能够应对...

    Kotlin静态类型共享和重用Kotlin静态类型共享和重用Kotlin静态类型共享和重用

    4. **强类型和类型推断**: - **静态类型**:作为一种静态类型语言,Kotlin在编译阶段就进行了严格的类型检查,这有助于早期发现错误并提高代码质量。 - **类型推断**:Kotlin能够根据上下文自动推断变量的类型,...

    检查TypeScript类型定义

    在JavaScript的世界里,TypeScript是一种强大的静态类型语言,它提供了丰富的类型系统,帮助开发者在编码阶段发现并预防错误。本文将深入探讨如何检查TypeScript类型定义,以提升代码质量和维护性。 首先,理解...

    Python基本语法 数据类型 列表 元组 字典

    # java:是一门静态的强类型语言 # javascript:是一门动态的弱类型语言,运行时识别数据类型 字符串(str) # 单引号和双引号 temp = 'hello python' temp = "hello python" print(temp) # 转义符...

    Pascal动态数据类型

    由于Pascal是强类型语言,所以不同类型的变量之间不能直接赋值。但是,可以使用`TypeCast`或`Ord`、`Chr`等函数进行类型转换。例如,将整型转换为字符: ```pascal var i: Integer; c: Char; begin i := 65; ...

Global site tag (gtag.js) - Google Analytics