美文网首页技术栈
2019-02-11——动态语言和静态语言

2019-02-11——动态语言和静态语言

作者: 烟雨乱平生 | 来源:发表于2019-02-11 18:28 被阅读0次

解释型语言,编译型语言

  • 解释型语言:解释型语言的源代码不是直接翻译成机器指令,而是先翻译成中间代码,再由解释器对中间代码进行解释运行,即在运行程序的时候才逐行翻译
    • 优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
    • 缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。
  • 编译型语言:编译型语言首先是将源代码编译生成机器指令,再由机器运行机器码(二进制)。一般需要经过编译和链接等步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件。
    • 优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
    • 缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

动态语言,静态语言

在理解动态语言和静态语言之前,先看下下面几种语言类型

语言 解释
动态类型语言 是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。
静态类型语言 是在运行前编译时检查类型。多数静态类型语言要求在使用变量之前必须声明数据类型,某些具有类型推导能力的现代语言可能能够部分减轻这个要求
动态编程语言 在程序运行过程中可以改变数据类型的结构,对象的函数,变量可以被修改删除。
静态编程语言 运行时不可改变结构
强类型语言 个人感觉是静态类型语言的另一种说法
弱类型语言 个人感觉是动态类型语言的另一种说法
强类型定义语言 是一旦变量的类型被确定,就不能转化的语言。实际上所谓的貌似转化,都是通过中间变量来达到,原本的变量的类型肯定是没有变化的。
弱类型定义语言 一个变量的类型是由其应用上下文确定的。比如语言直接支持字符串和整数可以直接用 + 号搞定。当然,在支持运算符重载的强类型语言中也能通过外部实现的方式在形式上做到这一点,不过这个是完全不一样的内涵

所以,个人感觉通常所说的动态语言是指动态编程语言。

相关文章

  • 编译性语言、解释性语言、脚本语言、动态语言、静态语言、动态类型语

    编译型语言 解释型语言 脚本语言 动态语言 静态语言 静态类型语言 动态类型语言 解释以及区别

  • 动态编程语言和静态编程语言

    动态编程语言:python等 静态编程语言:java等 动态编程语言和静态编程语言区别: 动态编程语言的变量并不是...

  • face35 动态语言静态化

    动态语言静态化 什么是动态语言静态化 将现有php等动态语言的逻辑代码生成为静态html文件,用户访问动态脚本重定...

  • Objective-C 是不是动态语言 ?

    一、动态语言和静态语言的概念 首先,我们了解一个概念:动态语言和静态语言的概念; 静态:编译期间动态:运行期间 动...

  • 编程语言类型(动态语言,静态语言及其它)

    动态语言: 静态语言: 动态类型语言: 静态类型语言: 强类型语言: 弱类型语言: 计算机只能理解机器码,所有的高...

  • iOS runtime详解一

    RunTime是什么? 众所周知OC是一门高级编程语言,也是一门动态语言。有动态语言那也就有静态语言,静态语言--...

  • iOS runtime运行时的作用和应用场景

    Runtime是什么?   众所周知OC是一门高级编程语言,也是一门动态语言。有动态语言那也就有静态语言,静态语言...

  • IT男的基础之路

    静态语言和动态语言 基本概念 静态语言(强类型语言) 静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型...

  • java反射

    什么是java反射机制 动态语言 当程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言。 静态语言 静态...

  • Python 语法(一)

    1、Python 语言特性 1.1 Python 是静态还是动态?强还是弱类型 动态强类型语言 动态还是静态:指...

网友评论

    本文标题:2019-02-11——动态语言和静态语言

    本文链接:https://www.haomeiwen.com/subject/twoqeqtx.html