`
blueion
  • 浏览: 39706 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

动态语言与静态语言的区分

    博客分类:
  • JAVA
阅读更多
对于动态语言与静态语言的区分,套用一句流行的话就是:Static typing when possible, dynamic typing when needed。

“动”或“静”,强调的是实施类型的时间,编译里就要确定类型的是静态类型,比如C/C++/JAVA/C#,运行时才实施类型的则是动态类型,比如VB/Python。  
   
   而“强”或“弱”刚强调实施类型的强度,强类型的语言,如C++等,变量的类型不可随意转换;而弱类型的语言,变量的类型可以随需要任意转换,而且通常都是隐式的。

静态类型语言是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型,某些具有类型推导能力的现代语言可能能够部分减轻这个要求.
动态类型语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。


强类型语言是一旦变量的类型被确定,就不能转化的语言。实际上所谓的貌似转化,都是通过中间变量来达到,原本的变量的类型肯定是没有变化的。
弱类型语言则反之,一个变量的类型是由其应用上下文确定的。比如语言直接支持字符串和整数可以直接用 + 号搞定。当然,在支持运算符重载的强类型语言中也能通过外部实现的方式在形式上做到这一点,不过这个是完全不一样的内涵


通常的说,java/python都算是强类型的,而VB/Perl/C都是弱类型的.
不过相比于动态/静态语言的分类,强类型/弱类型更多的是一个相对的概念。
分享到:
评论

相关推荐

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

    动态网页和静态网页的区别,首先要分别了解两个概念,就是什么是静态网页,什么是动态网页,并且学会区分哪些是静态哪些是动态。 静态网页: (1)静态网页不能简单地理解成静止不动的网页,他主要指的是网页中没有...

    JAVA反射机制的简单理解

    有时候我们说某个语言具有很强的动态性,有时候我们会区分动态和静态的不同技术与作法。我们朗朗上口动态绑定(dynamic binding)、动态链接(dynamic linking)、动态加载(dynamic loading)等。然而“动态”一...

    候捷谈Java反射机制

     有时候我们说某个语言具有很强的动态性,有时候我们会区分动态和静态的不同技术与作法。我们朗朗上口动态绑定(dynamic binding)、动态链接(dynamic linking)、动态加载(dynamic loading)等。然而“动态”一...

    .NET面试题C#.NET

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

    Kotlin语言教程.docx

    Kotlin 是一种现代的、静态类型的、面向对象的编程语言,由 JetBrains 公司于 2011 年首次发布,并于 2016 年正式推出 1.0 版本。它以其简洁的语法、强大的功能和卓越的互操作性在开发者社区中迅速获得认可,尤其在 ...

    TypeScript中的方法重载详解

    方法重载(overload)在传统的静态类型语言中是很常见的。JavaScript 作为动态语言, 是没有重载这一说的。一是它的参数没有类型的区分,二是对参数个数也没有检查。虽然语言层面无法自动进行重载,但借助其动态的...

    大数据挖掘分析与应用笔记

    2.语言特征:编译性语言、解释性语言(python平台兼容性)、动态语言、静态语言、强数据类型(仅能强制转换类型安全的语言)、弱数据类型(一个变量可赋予不同数据类型的值) 3.python环境部署:网址www.python.org ...

    linux下C++动态链接C++库示例

    理解这篇文档的前提是对C/C++语言中dlopen API有基本的了解。 这篇HOWTO的维护链接是: http://www.isotton.com/howtos/C++-dlopen-mini-HOWTO/ 二、问题所在 有时你想在运行时加载一个库(并使用其中的函数),这...

    C++类图学习资料快速学会类图

    任何建模语言都以静态建模机制为基础,标准建模语言UML也不例外。所谓静态建模是指对象之间通过属性互相联系,而这些关系不随时间而转移。  类和对象的建模,是UML建模的基础。我们认为,熟练掌握基本概念、区分不同...

    论文研究-源代码中设计模式实例的抽取及验证方法研究.pdf

    面向Java语言提出了一种静态和动态分析相结合的源码中设计模式的抽取方法。具体地, 研究了源码中设计模式抽取的静态结构分析过程, 为了进一步提高设计模式实例抽取的准确率, 对结构分析得到的创建型模式候选, 使用...

    语言程序设计课后习题答案

    面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得...

    kotlin学习项目案例

    Kotlin 是一种现代、静态类型的编程语言,由 JetBrains 开发并于 2011 年公开发布。它旨在成为 Java 的替代语言,可以运行于 Java 虚拟机(JVM)上,并与现有的 Java 代码和库完美集成。以下是 Kotlin 的几个关键...

    计算机组成作业老师给的答案.docx

    答:静态RMA和动态RAM都属于随机存储器,即在程序的执行过程中既可以读出又可以写入信息。但静态RAM靠触发器存储信息,只要电源不掉电,信息就可不丢失;动态RAM靠电容存储电荷原理存储信息,即使电源不掉电,由于...

    程序员笔试试题大全(含多语言、多公司)

    不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。 13. 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。 循环链表,用取余操作做 14. 不能做...

    gsoap 2.8 (SOAP/XML 关于C/C++ 语言的自动化实现工具内附 CSharp webservice例子,及GSOAP client和server例子)

     命名,以便与1.x版区分。  gSOAP 1.X gSOAP 2.X  soapcpp soapcpp2  soapcpp.exe soapcpp2.exe  stdsoap.h stdsoap2.h  stdsoap.c stdsoap2.c  stdsoap.cpp stdsoap2.cpp  从1.x版升级到2.x版并不需要进行...

    matlab代码中向量的点乘-dd_landau:dd_landau

    Landau是图灵不完整的静态类型特定于域的可区分语言。 图灵不完整性提供了复杂的源代码分析能力,并因此提供了高度优化的编译代码。 除其他外,语言语法支持函数,循环的编译时范围,if / else分支构造,实变量和...

    ASP程序设计试卷(A).txt

    网页通常可分为静态网页和____动态 ___网页,静态网页是由__HTML_语言、 JAVASCRIPT、VBSCRIPT、JAVA APPLET(JAVA 小应用程序)和所要显示的文本或图 形所构成的一个文本文件,其扩展名通常为__._HTML_或_.HTM_ __...

    移动应用内嵌浏览器恶意行为检测与分析.pdf

    我们综合利用程序静态分析、自然语言处理以及搜索引擎技术,开发了自动化检测工具,并在Android和iOS官方应用商城中检测出了数十款具有恶意行为的应用。这些恶意应用的总安装量已达上亿次,对用户造成了严重的安全...

    seo企业网站cms

    8、支持栏目文件夹自定义和栏目内容页面静态页面名称及格式自定义,可以有效区分竞争对手同质化信息,增强SEO的效果; 互动营销 1、内置完整的在线交流后台管理功能、可添加QQ、MSN、淘宝旺旺、阿里旺旺、SKYPE、第...

    HkCms开源内容管理系统 v2.1.220504

    5.动态下拉组件支持多语言区分 6.新增SEO设置管理页,支持站点标题自定义 7.站点模块支持内容管理的数据 8.站点模块新增文字链接 9.新增插件强制覆盖安装 10.插件前台支持控制器中间件 11.插件支持自动导入插件函数...

Global site tag (gtag.js) - Google Analytics