精华内容
下载资源
问答
  • 主要介绍了动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍,需要的朋友可以参考下
  • 静态语言: 变量的类型在编译之前就需要确定,在编译的时候需要先编译,将源码转换成目标代码,然后需要运行目标代码程序才能运行,比如C语言。 动态语言:不需要直接指定变量类型,在解释的时候,转换为目标代码和...

    静态语言
      变量的类型在编译之前就需要确定,在编译的时候需要先编译,将源码转换成目标代码,然后需要运行目标代码程序才能运行,比如C++、Java、Delphi、C#。

    动态语言
      不需要直接指定变量类型,在解释的时候,转换为目标代码和运行程序一步到位,比如Python、Ruby、Perl。可以在运行时改变结构,这个小白想不懂,但是也写上。我的理解是在程序运行的时候可以改变程序的代码,程序不用停止。

    比较
      静态语言运行时因为只需运行目标程序,所以运行速度快,但是因为要注意变量的类型,需要多注意一些东西,而动态语言比较自由,可以将思想更多的集中在我们所开发的东西上。同时也因为动态语言的灵活性太高,当代码数量太大时,很多东西将变得不可控,不如静态语言稳定,所以当开发大型项目时,要优先选用静态语言。

    展开全文
  • 动态类型语言和静态类型语言

    千次阅读 2018-05-24 15:54:33
    https://www.cnblogs.com/liuning8023/p/4286044.html  动态类型语言和静态类型语言本文主要说明动态类型语言和静态类型语言。类型检查所进行的检验处理以及实行类型的约束,可发生在编译时期(静态检查)或运行...

    https://www.cnblogs.com/liuning8023/p/4286044.html   动态类型语言和静态类型语言


    本文主要说明动态类型语言和静态类型语言。

    类型检查所进行的检验处理以及实行类型的约束,可发生在编译时期(静态检查)或运行时期(动态检查)。静态类型检查是在编译器所进行语义分析中进行的。如果一个语言强制实行类型规则就称此处理为强类型(或静态类型),反之称为弱类型(或动态类型)。另外,严格意义上,强类型与静态类型不是一回事,同理,弱类型与动态类型。

    强类型是指某门语言检查两种类型是否兼容,如果不兼容就抛出一个错误或强制类型转换,尽管这个说法并不是很严格。静态类型强迫在类型结构的基础上执行多态。判断是否是一只鸭子的依据,是其基因蓝图(静态),还是因其叫声和走路的姿态像一只鸭子(动态)。静态语言的好处在于编译器和工具等对你的代码更加了解,可以用于捕捉错误,突出显示代码以及便于重构代码。付出的代价是你不得不做更多的工作,并且会受到一些限制。

    动态类型语言(Dynamically Typed Language)


    所谓动态类型语言,就是类型的检查是在运行时才做。

    类型对于变量,属性,方法以及方法的返回类型都是可有可无的,在给变量赋值时才决定它的类型, 之后,还可以赋值不同类型的值,即使是基本类型,比如 C# 装箱(boxing)和拆箱(unboxing),可以把值类型转换成引用类型,引用类型转换成值类型。当需要时,很多类型之间都会发生自动转换,可以把不同的基本类型添加到同一数组(collections)中。

    动态类型在解释语言中极为普遍,如 JavaScript、Perl、Python、Ruby 等等。

    静态类型语言(Statically Typed Language)


    静态类型语言的类型检查是在运行前的编译阶段,比如 C#、Java 等都是静态类型语言,静态类型语言为了达到多态会采取一些类型鉴别手段,如继承、接口,而动态类型语言却不需要,所以,一般动态语言都会采用 dynamic typing。静态类型语言常出现于编译语言中,比如,Java,实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制。

    “多态性”是指,代码(尤其是函数和类)对各种类型的值能够动作,或是相同数据结构的不同实体能够控制不同类型的元素。在具有多态性的语言中,只需实现如列表或词典的数据结构一次,而不是对使用到它的元素的每一个类型都规划一次。基于这个原因,电脑学家也称使用了一定的多态性的方法为泛型程序设计。

    推断类型(鸭子类型,Duck typing),这个技术之所以常被称作“鸭子类型”,是基于这句格言:“如果它摇摇摆摆的走法很像鸭子,而且它的嘎嘎叫声也像鸭子,那它就是一只鸭子!(If it waddles like a duck, and quacks like a duck, it's a duck!)”最初是由 Dave Thomas 在 Ruby 社区中提出的,推断类型用了这个论证法“如果它像什么,而且其它地方也像什么,那么它就是什么。”,比如,C++在迭代器和指针之间的双重性,两者以不同的机制实现并提供一个* 运算;C# 可以用 var 关键字声明变量,还有委托推断。

    比较


    静态类型语言的主要优点在于其结构非常规范,便于调试,方便类型安全;缺点是需要写更多的类型相关代码(如声明变量),不便阅读(特别是,当你看别人代码时,会连变量定义也看吗?想必不会,看结构,看方法的含义想必才是本质)。

    动态类型语言的优点在于方便阅读,不需要写非常多的类型相关代码;缺点自然是不便调试,命名不规范时会造成读不懂,不利于理解等。

    在强类型、静态类型语言的支持者,与动态类型、自由形式的支持者之间,经常发生争执。前者主张,在编译的时候就可以较早发现错误,而且还可增进运行时期的性能。后者主张,使用更加动态的类型系統,分析代码更为简单,减少出错机会,才能更加轻松快速的编写程序。


    展开全文
  • 所谓静态类型语言,在代码被编译时变量的类型便已确定了 所谓动态类型语言,其变量类型要到程序运行的时候,待变量被赋了某个值才能知道其类型 静态类型语言的优缺点: 优点: 避免程序运行时发生变量类型相关...

    定义

    • 所谓静态类型语言,在代码被编译时变量的类型便已确定了
    • 所谓动态类型语言,其变量类型要到程序运行的时候,待变量被赋了某个值才能知道其类型
    • 静态类型语言的优缺点:
      • 优点:
        • 避免程序运行时发生变量类型相关的错误
        • 先前明确了变量的类型,编译器可以针对这些信息对程序做出一些优化,从而提高程序执行的速度
      • 缺点:
        • 撸码的时候,需要格外注意变量的类型
        • 过多的类型声明会增加更多的代码
    • 动态类型语言的优缺点:
      • 优点:
        • 给实际的编码带来了很大的灵活性,我们只关注对象的行为,而不关注对象本身
      • 缺点:代码运行期间有可能会发生与类型相关的错误
    • 鉴于动态语言的这个缺点,可是尝试下TS

    转载于:https://my.oschina.net/u/3407699/blog/3024274

    展开全文
  • 珀玛朗 静态类型语言的编译器
  • leo:Leo编程语言。 零知识应用程序的功能性静态类型语言
  • 静态类型和动态类型的区别编译型语言解释型语言混合型语言静态类型语言动态类型语言 编译型语言 源代码需要通过编译器编译成机器可识别的机器码,包括编译和链接两个过程。不同操作系统下的可执行文件不一样。代表...

    编译型语言

    源代码需要通过编译器编译成机器可识别的机器码,包括编译和链接两个过程。不同操作系统下的可执行文件不一样。代表语言有:C,C++
    优点:执行速度快
    缺点:修改了某一个模块就得重新编译

    解释型语言

    相对于编译型语言少了编译过程,源代码运行时由解释器逐行解释。代表语言有:JavaScript,Python,php
    优点:部署快,不停机维护,有很好的平台兼容性
    缺点:每次运行都需要解释一遍,性能上不如编译型语言

    混合型语言

    混合型语言就包括了编译过程和解释过程。比如:C#先是编译成中间码,并不是直接编译成机器码。java有先编译成中间字节码.class文件过程,最后在java虚拟机中解释执行。

    静态类型语言

    指的是代码运行之前就做的数据类型检查,运行前数据类型就已经确定了。比如:C,C++,JAVA;这个好比对应着具有编译过程的语言

    动态类型语言

    指代码运行的时候数据类型才会确定,数据类型绑定是代码运行的时候确定的。比如:JavaScript,php,这个好比对应着解释器类型的语言。

    展开全文
  • Gloa:Glóa-编译为Lua的静态类型语言。 *正在开发中*
  • 动态类型语言&静态类型语言

    千次阅读 2017-04-14 16:41:56
    静态类型语言概念:意思就是类型判断是在运行前做的(如编译阶段)表现:使用变量前需要声明变量举例:C、C++、Java这些都属于静态类型语言参考:百度百科:http://baike.baidu.com/link?url=oc566smrlmg...
  • 概念区别 【编译型语言与解释型语言、动态类型语言与静态类型语言、强类型语言与弱类型语言】 文章目录一、编译型语言与解释型语言二、动态类型语言与静态类型语言三、强类型语言与弱类型语言总结 一、编译型语言与...
  • Oczor一种简单的静态类型语言可编译成JavaScript、Lua、Ruby和Emacs Lisp
  • 编程语言 - 强弱/动静态类型

    千次阅读 2020-04-28 12:35:58
    要理解一门语言静态类型还是动态类型,最本质的判断方法是看在什么时间段对类型就行检测,静态类型语言会在编译阶段就行检测,动态类型的语言会在运行时做类型检测! 比如C/C++是静态语言,会在编译...
  • 将知识点分门别类可以更好的记忆,编程语言也是,同类型语言之间也可以相互印证,更全面的理解。 下面转自知乎。 基础概念 Program Errorstrapped errors。解释器或编译器不能处理的错误。导致程序终止执行,如除...
  • 通常我们所说的动态语言、静态语言指 动态类型语言(Dynamically Typed Language)和 静态类型语言Statically Typed Language)。 还有一个 Dynamic Programming Language (动态编程语言),静态编程语言。 动态...
  • 编译型语言和解释型语言 1、编译型语言 需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块...
  • 关于如题这几个概念,大部分人应该比较熟悉,但是我昏了好久,所以写下来加深印象。 1. 动态语言 ...除此之外如Ruby、Python等也都属于动态语言,而C、C++等语言则不属于动态语言。 而其实我们平时说
  • 我们先看看编译型,其实它和汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码。这个过程说得专业一点,就称为编译(Compile),而负责编译的程序自然就称为编译器...
  • 这是本人关于Typescript的第一篇笔记,之所以选择将“强类型语言和弱类型语言静态语言和动态语言”作为第一个想要去总结的主题,是因为个人觉得它很重要。 如今这个年代,可以供我们选择的编程语言非常之多,我们...
  • 动态语言和静态语言 ...(1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定...(2)静态类型语言静态类型语言与动态类
  • 但是我想要一个“轻量级”静态类型语言。 主要特征 类似 Ruby 的语法 静态类型检查 一切都是对象 用 Rust 编写,编译为 LLVM IR 设计方针 轻松胜任 Shiika 是一种胶水语言。 将 C 或 Rust 用于性能关键部件并将其...
  • 另外编程语言除了编译型和解释型,还有静态语言、动态语言、强类型语言、弱类型语言。那么每种语言类型是什么样子的呢,下面让我们来看看吧。  但是在此之前,我们需要先了解一下计算机原因的发展史,从低级语言到...
  • 最近被这几个东西搞得晕头转向。而网上对这几个概念的阐述也是众说纷纭。 遇到这种问题时,我的做法是——回归英文。...静态类型语言: 动态编程语言:Dynamic programming language 静态编程语言: 参考文
  • 类型系统的一些概念,众说纷纭,使用上也比较乱。有些东西,甚至不好严格定义。以下算学术界的一种相对“严格”的说法。 1. 先定义一些基础概念 Program Errors trapped errors。导致程序终止执行,如除0,...
  • 关于编程语言静态类型、动态类型、编译型以及解释型的区别目录用 [TOC]来生成目录:关于编程语言静态类型动态类型编译型以及解释型的区别目录 静态类型和动态类型的区别 编译型和解释性的区别 Java语言静态...
  • 动态编程语言是高级程序设计语言的一个类别,在计算机科学领域已被广泛应用。它是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言...
  • 一. 前言 今天小熙突然想到一个问题,那就是Java到底是动态语言还是静态语言,是强类型...静态类型语言:变量定义时有类型声明的语言。 (1)变量的类型在编译的时候确定 (2)变量的类型在运行时不能修改 这...
  • 理解 TypeScript 的静态类型

    千次阅读 2018-04-20 15:01:01
    这篇博文快速介绍 TypeScript 静态类型的标注。 你将学习什么 阅读本文后,您应该能够理解以下代码的含义。 interface Array<T> { concat(...items: Array<T[] | T>): T[]; reduce<U>( ...
  • 首先要清楚静态类型语言和动态类型语言的判别的标准 定义:如果类型检查发生在编译阶段(compile time),那么是静态类型语言(statically typed languages)中,相反的,如果类型检查发生在运行阶段(run time),那么是...
  • Scala编程 Scala是静态类型

    千次阅读 2018-07-07 22:46:49
    1 通过类型推断避免了冗余性2 通过模式匹配,组织和编写类型的新的方法获取了灵活性3 静态类型系统的经典优越性 1) 可检验属性 2) 安全的重构 3) 文档,静态类型是被编译器检查过的正确的程序文档...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 478,838
精华内容 191,535
关键字:

静态类型语言