我的编程空间,编程开发者的网络收藏夹
学习永远不晚

静态语言和动态语言,解释和编译

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

静态语言和动态语言,解释和编译

前提

通过高级语言编写的源码,我们能够轻松理解,但对于计算机来说,它只认识二进制指令,源码就是天书,根本无法识别。源码要想执行,必须先转换成二进制指令。
所谓二进制指令,也就是由 0 和 1 组成的机器码,能被计算机直接识别并执行。

定义

先来看一下各种名词的定义

静态类型语言(Statically Typed Language)

静态类型语言是C,C++,Java等语言,在这种类型的语言中,变量的数据类型在编译时是已知的,这意味着程序员必须在声明变量时指定变量的数据类型。我们必须预先定义函数的返回类型,以及它正在接受或接受的变量类型,以便进一步评估。

动态类型语言(Dynamically Typed Language)

这些语言不需要任何变量的任何预定义数据类型,因为它在运行时由机器本身解释。在这些语言中,解释器在运行时根据其值将数据类型分配给变量。我们甚至不需要指定函数在这些语言中返回或接受的变量类型。 JavaScript, Python, Ruby, Perl 等是动态类型语言的例子。

脚本语言(Scripting language)

脚本语言是一种被解释的编程语言。它在代码运行时(而不是事先)转换为机器代码。脚本语言通常用于完整计算机程序上的短脚本。JavaScript, Python, Ruby 都是脚本语言的例子。

脚本语言一定是动态语言。

解释执行(interpretation)

有的编程语言可以一边执行一边转换,需要哪些源代码就转换哪些源代码,不会生成可执行程序,比如 Python、JavaScript、PHP、Shell 等,这类编程语言称为解释型语言,使用的转换工具称为解释器。

编译执行(compilation )

有的编程语言要求必须提前将所有源代码一次性转换成二进制指令,也就是生成一个可执行程序(比如 Windows 下的 .exe 文件),比如C语言、C++、Golang、汇编语言等,它们都属于编译型语言,使用的转换工具称为编译器。

讨论

动态/静态语言和解释/编译执行之间有必然的对应关系吗?

结论:没有
Java是解释型语言但是不是动态语言,Java不能在运行的时候改变自己结构。反之成立吗?动态语言都是解释型语言。也是错的!Object-C是编译型语言,但是他是动态语言。得益于特有的run time机制(准确说run time不是语法特性是运行时环境,这里不展开)OC代码是可以在运行的时候插入、替换方法的。

脚本语言和动态语言是一回事儿吗?

关于这个问题,我觉得这篇文章写的很好:动态语言——披着彩衣飞舞的脚本语言

为什么会出现编译执行和解释执行两种方式?

参考

编程语言傻傻分不清:弱类型、强类型、动态类型、静态类型

编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别

编译和解释的区别是什么?

来源地址:https://blog.csdn.net/u013036688/article/details/127429169

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

静态语言和动态语言,解释和编译

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

c语言静态库如何反编译

在C语言中,静态库是以二进制形式存储的,因此无法直接进行反编译。静态库是由编译器将多个目标文件打包成一个文件,其中包含了目标文件的机器码以及一些元信息。如果你想查看静态库中的内容,可以使用一些工具进行反汇编,例如objdump(Linux)
2023-09-29

Go语言:静态还是动态?

go 是一种静态类型语言,但通过使用 interface{} 类型,它支持一些动态特性的元素,允许在运行时动态检查变量类型。这提供了灵活性,但需要谨慎使用以避免运行时错误。Go语言:静态还是动态?Go 编程语言以其静态类型系统而闻名,但它
Go语言:静态还是动态?
2024-04-08

Java和C语言如何使用静态语言实现动态数组

这篇文章将为大家详细讲解有关Java和C语言如何使用静态语言实现动态数组,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JAVA版JAVA自带了一个集合类ArrayList,可以实现动态数组的功能,相比原生
2023-05-31

java动态和静态语言的区别是什么

今天就跟大家聊聊有关java动态和静态语言的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、动态语言在运行中可以改变结构的语言。例如,新函数、对象、代码可以引进,现有函数
2023-06-15

go 语言和静态类型语言的对比

go 是一种编译型的静态类型语言,类型检查在编译时执行,它的类型系统基于结构类型,与动态类型语言在运行时进行类型检查相反。与动态类型语言(如 python)相比,go 的静态类型系统提供了更好的性能和可靠性,同时降低了编译时错误的风险,但灵
go 语言和静态类型语言的对比
2024-04-08

web开发中静态和动态语言怎么选择

这篇文章主要讲解了“web开发中静态和动态语言怎么选择”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web开发中静态和动态语言怎么选择”吧!动态型 VS 静态型动态语言是一种变量使用前不
2023-06-17

C#是编译语言还是解释语言

本篇内容主要讲解“C#是编译语言还是解释语言”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#是编译语言还是解释语言”吧!“C# Java是解释型语言?Oh my god”“引用vls:C# J
2023-06-17

php是编译型语言还是解释性语言

php是解释型语言。php是一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高的、独立于架构的、可移植的、动态的脚本语言;PHP解释器会将PHP代码解释为opcode之后再交由Zend引擎执行。
2015-08-16

java是编译型语言还是解释型语言

java语言看似是编译型的,因为Java程序代码的确是需要经过编译的。还记得在cmd中用javac的命令吗?没错,javac就是用来编译Java程序代码的(把.java源程序编译为.class文件),不经过编译,.java文件运行不了!Java语言又看似是解释
java是编译型语言还是解释型语言
2018-01-17

Go语言非main包如何编译为静态库并使用

这篇文章主要介绍“Go语言非main包如何编译为静态库并使用”,在日常操作中,相信很多人在Go语言非main包如何编译为静态库并使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Go语言非main包如何编译为
2023-06-20

Go 语言的静态类型解析

go 语言通过在编译时检查类型一致性来进行静态类型解析,有助于在运行时防止错误。具体实现包括:类型定义:使用 type 关键字,例如定义 person 结构体类型。变量声明:使用 var 关键字,例如声明 p 为 person 类型变量。类
Go 语言的静态类型解析
2024-04-08

PHP指的是解释型语言还是编译型语言

这篇文章主要介绍PHP指的是解释型语言还是编译型语言,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!编译型语言使用专门的编译器(类似于Windows下的Visual Studio)、针对特定平台(操作系统)将某种高级语
2023-06-15

C语言之详解静态变量static

在C语言中static是用来修饰变量和函数的,这篇文章详细介绍了static主要作用,文章中有详细的代码实例,需要的朋友可以参考阅读
2023-05-15

怎么理解Python动态语言

本篇文章给大家分享的是有关怎么理解Python动态语言,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。有人说Python动态语言是一种解释性的语言,但是这种说法是不正确的,其实P
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录