动态与静态类型编程语言

  • 1.类型检查
  • 2. 静态类型语言
  • 2. 动态类型语言
  • 4. 两种类型语言的比较

区分「动态类型」与「静态类型」编程语言非常简单。

在此之前,让我们先看看「类型检查」。

1.类型检查

类型检查(Type checking)是检查构造类型(常量、变量、数组、列表、对象),以及这些类型在上下文使用的过程。

类型检查能最大限度的帮助开发人员减少程序中的 debugging 过程。

类型检查可能发生在编译时「静态检查」或者运行时「动态检查」。

  • 变量类型在编译过程中被检查的是静态编程语言
  • 变量类型在运行过程中被检查的是动态编程语言

2. 静态类型语言

如何区分静态类型语言就像前文说的那样。

在进行编译之前,必须保证有关变量和数据类型的使用是正确的。

在这种类型的语言中,一旦为变量分配了类型,就不能将其分配给其他不同类型的变量。

//例如,定义整形的数据类型之后,不能与字符串类型混合操作。int number = 1;

静态类型语言的一些示例包括 Java、C、C++、C#、Swift、Scala、Kotlin、Fortran、Pascal、Rust、Go、COBOL 等。

静态类型语言的一大优点是我们以在运行程序之前修复很多错误,减少了 debugging 的步骤。

这些是静态类型语言的主要优点是一旦成功编译程序,我们就不需要担心任何类型的语法错误。

现在编译器知道每种数据类型是什么。

因此,它可以生成使用更少内存的优化机器代码,与动态类型语言相比,代码的执行速度会更快。

2. 动态类型语言

在程序运行时进行类型检查的是动态类型语言。

动态语言的特点是,开发人员能快速编写,因此不需要每次都指定类型。

number = 1

一些动态类型语言的例子有 Python、Javascript、Ruby、Perl、PHP、R、Dart、Lua、Objective-C 等。

脚本语言大多是动态的,因此没有编译器来进行静态检查。

但常见的错误依然存在,像解释器误解变量类型导致的错误。

动态类型语言的优点是编写代码很容易,开发人员不必等待编译结果就可以完成代码更改和测试。

4. 两种类型语言的比较

静态类型语言在运行时具有更好的性能并且在运行时速度更快。

这是因为在运行时不需要进行类型检查,并且代码已经被翻译为机器语言了。

但是动态类型语言在开发过程中相对更快并且更灵活。

因此,这两种语言都有一些独特的优点和缺点。

动态与静态类型编程语言(Statically Dynamically Typed Languages)相关推荐

  1. 静态 动态 强类型 弱类型语言的区别

    原文:http://www.zhihu.com/question/19918532 类型系统的一些概念,众说纷纭,使用上也比较乱.有些东西,甚至不好严格定义.以下算学术界的一种相对"严格&q ...

  2. java 强类型 弱类型_强类型,弱类型,静态类型,动态类型的区别

    强.弱类型 强类型strongly typed: 如果一种语言的所有程序都是well behaved--即不可能出现forbidden behaviors,则该语言为strongly typed. 弱 ...

  3. 编程语言 - 强弱/动静态类型 - 整理

    1.应用场景 了解编程语言的分类及显著的区别, 帮助理解编程语言的本质,和帮助快速学习一门新的语言. 2.学习/操作 1. 文档阅读 12 | 栈空间和堆空间:数据是如何存储的?-极客时间 2. 整理 ...

  4. 静态类型/动态类型/强类型/弱类型

    C/C++是弱类型,并且是静态类型,因为可以容忍隐式类型转换,并且可以进行强制类型转换,然后编译的时候就已经直到变量的类型,所以是静态类型(类型错误引发的是语法错误) python是动态类型,强类型, ...

  5. Python学习01、计算机基础概念、初识Python、常量,变量,类型和表达式、字符串、动态静态类型、注释

    前言:本文章主要用于个人复习,追求简洁,感谢大家的参考.交流和搬运,后续可能会继续修改和完善. 因为是个人复习,会有部分压缩和省略. 计算机基础概念 什么是计算机? 现在我们所说的计算机不光能进行算术 ...

  6. 计算机语言的分类:编译型/解释型、动态类型/静态类型、强类型/弱类型

    参考: 计算机语言:编译型/解释型.动态语言/静态语言.强类型语言/弱类型语言 编译型语言.解释型语言.静态类型语言.动态类型语言概念与区别 编程语言傻傻分不清:弱类型.强类型.动态类型.静态类型 1 ...

  7. 关于动态语言 静态语言 静态类型语言 动态类型语言的区别

    参考链接:关于"编译型""解释型""动态语言""静态语言""动态类型语言""静态类型语言& ...

  8. C++动态类型与静态类型

    静态类型 编译时的类型,运行前就确定了,是变量声明时的类型或表达式生成的类型 动态类型 运行时才确定的类型,是变量或表达式表示的内存中的对象的类型 Quote* p = new b_Quote; // ...

  9. python动态与静态语言_静态语言和动态语言的区别

    via https://blog.csdn.net/hard_days/article/details/84967298 今天在群里聊天的时候,谈论到python和Java相比居然不用定义变量类型.我 ...

最新文章

  1. java thumbnailator 做图片处理
  2. PAT甲级1066 Root of AVL Tree (25分):[C++题解]建立平衡树(AVL树)
  3. C语言Selection Sort选择排序的算法(附完整源码)
  4. 剑指offer(65)矩阵中的路径
  5. python修改文件名字数字_python实现多进程按序号批量修改文件名的方法示例
  6. 【OpenCV 例程200篇】82. 频率域巴特沃斯低通滤波器
  7. 作者:王瑞(1987-),女,中国科学院软件研究所工程师
  8. 【华为云技术分享】云小课 | 容灾切换:业务一键切换到容灾站点
  9. __attribute__((weak)):弱引用,可以不实现
  10. 【代码源 Div1 - 102】#323. 最长因子链(dp)
  11. python下载后在哪打开_centos6/7系统的自带的python安装在哪里?
  12. 2021非科班生的Java面试之路,java思维导图笔记
  13. 量子计算机介绍ppt,量子信息ppt
  14. 4. AWS DynamoDB实战之Secondary Indexes
  15. Android主界面退出再次进入略过欢迎面
  16. java七年_阿里七年Java程序员的总结,献给还在迷茫中的你!
  17. 抽象类与接口的异同点
  18. 很多时候,你不得不被生活的种种琐事所牵绊
  19. Chrome Network面板工具之万文多图详解
  20. 视频号的播放量和互动率、完播率密不可分

热门文章

  1. 着重强调项目的商业价值
  2. 语言模型(三)—— 循环神经网络语言模型(RNNLM)与语言模型评价指标
  3. 2022年全球及中国蜜蜂授粉服务行业头部企业市场占有率及排名调研报告
  4. 虚拟内存(Virtual Memory)
  5. i'm all geared up
  6. http://code4app.com/ios/SCCaptureCamera/530ad8cccb7e84ba4d8b630e
  7. ODPS 权限管理命令集合
  8. android蓝牙锁,android 蓝牙锁应用实例开发(一) 简介-Go语言中文社区
  9. macOS 10.15 Beta Release Notes
  10. Ubuntu 无法运行 eclipse,提示 没有为可执行文件 文件类型安装应用程序。