返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >静态语言和动态语言,解释和编译
  • 835
分享到

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

rubyphp开发语言 2023-09-05 20:09:16 835人浏览 泡泡鱼
摘要

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

前提

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

定义

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

静态类型语言(Statically Typed Language)

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

动态类型语言(Dynamically Typed Language)

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

脚本语言(Scripting language)

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

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

解释执行(interpretation)

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

编译执行(compilation )

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

讨论

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

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

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

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

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

参考

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

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

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

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

--结束END--

本文标题: 静态语言和动态语言,解释和编译

本文链接: https://lsjlt.com/news/396121.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 静态语言和动态语言,解释和编译
    前提 通过高级语言编写的源码,我们能够轻松理解,但对于计算机来说,它只认识二进制指令,源码就是天书,根本无法识别。源码要想执行,必须先转换成二进制指令。 所谓二进制指令,也就是由 0 和 1 组成的机...
    99+
    2023-09-05
    ruby php 开发语言
  • c语言静态库如何反编译
    在C语言中,静态库是以二进制形式存储的,因此无法直接进行反编译。静态库是由编译器将多个目标文件打包成一个文件,其中包含了目标文件的机...
    99+
    2023-09-29
    c语言
  • Java和C语言如何使用静态语言实现动态数组
    这篇文章将为大家详细讲解有关Java和C语言如何使用静态语言实现动态数组,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JAVA版JAVA自带了一个集合类ArrayList,可以实现动态数组的功能,相比原生...
    99+
    2023-05-31
    java c语言
  • Go语言:静态还是动态?
    go 是一种静态类型语言,但通过使用 interface{} 类型,它支持一些动态特性的元素,允许在运行时动态检查变量类型。这提供了灵活性,但需要谨慎使用以避免运行时错误。 Go语言:...
    99+
    2024-04-08
    go语言 静态语言
  • java动态和静态语言的区别是什么
    今天就跟大家聊聊有关java动态和静态语言的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、动态语言在运行中可以改变结构的语言。例如,新函数、对象、代码可以引进,现有函数...
    99+
    2023-06-15
  • go 语言和静态类型语言的对比
    go 是一种编译型的静态类型语言,类型检查在编译时执行,它的类型系统基于结构类型,与动态类型语言在运行时进行类型检查相反。与动态类型语言(如 python)相比,go 的静态类型系统提供...
    99+
    2024-04-08
    go语言 静态类型语言 python
  • web开发中静态和动态语言怎么选择
    这篇文章主要讲解了“web开发中静态和动态语言怎么选择”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web开发中静态和动态语言怎么选择”吧!动态型  VS  静态型动态语...
    99+
    2023-06-17
  • go语言是静态语言吗
    go语言是静态语言。GO是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。静态语言(强类型语言)是编译时变量的数据类型就可以确定的语言;而在Go语言中,变量就是有明确类型的,编译器也会检查变量类型的正确性,声...
    99+
    2023-05-14
    Golang go语言
  • C#是编译语言还是解释语言
    本篇内容主要讲解“C#是编译语言还是解释语言”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#是编译语言还是解释语言”吧!“C# Java是解释型语言?Oh my god”“引用vls:C# J...
    99+
    2023-06-17
  • go语言是不是静态语言
    这篇文章主要介绍“go语言是不是静态语言”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“go语言是不是静态语言”文章能帮助大家解决问题。go语言是静态语言。GO是Google开发的一种静态强类型、编译...
    99+
    2023-07-05
  • C语言编程gcc如何生成静态库.a和动态库.so示例详解
    目录一、什么是静态库和动态库二、gcc生成.a静态库和.so动态库1.生成静态库(.a)1.1编辑生成例子程序hello.h、hello.c和main.c1.2将hello.c编译成...
    99+
    2024-04-02
  • php是编译型语言还是解释性语言
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php是解释型语言。每个平台都有对应的php解释器版本,指针对不同平台均编译出目标平台的二进制码;php解释器会将PHP代码解释为opcode之后再交由Zend引擎执行...
    99+
    2015-08-16
    php 编译型语言 解释性语言
  • java是编译型语言还是解释型语言
    java语言看似是编译型的,因为Java程序代码的确是需要经过编译的。还记得在cmd中用javac的命令吗?没错,javac就是用来编译Java程序代码的(把.java源程序编译为.class文件),不经过编译,.java文件运行不了!Ja...
    99+
    2018-01-17
    java入门 java 编译型 解释型 语言
  • php是静态语言吗
    这篇文章主要介绍了php是静态语言吗的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php是静态语言吗文章都会有所收获,下面我们一起来看看吧。php是动态的语言。php是一种动态、弱类型的脚本语言,它在运行时才确...
    99+
    2023-06-30
  • go语言是动态语言吗
    go不是动态语言。go语言是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,其变量(variable)是有明确类型的,编译器也会检查变量类型的正确性;因此在使用变量之前必须声明数据类型需要,语法“var 变量...
    99+
    2023-05-14
    动态语言 go语言 Golang
  • javascript是不是静态语言
    本文将为大家详细介绍“javascript是不是静态语言”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“javascript是不是静态语言”能够给你意想不到的收获,请大家跟着小...
    99+
    2024-04-02
  • Go 语言的静态类型解析
    go 语言通过在编译时检查类型一致性来进行静态类型解析,有助于在运行时防止错误。具体实现包括:类型定义:使用 type 关键字,例如定义 person 结构体类型。变量声明:使用 var...
    99+
    2024-04-08
    go 语言 静态类型 编译错误
  • Go语言非main包如何编译为静态库并使用
    这篇文章主要介绍“Go语言非main包如何编译为静态库并使用”,在日常操作中,相信很多人在Go语言非main包如何编译为静态库并使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Go语言非main包如何编译为...
    99+
    2023-06-20
  • go语言是不是动态语言
    这篇文章主要介绍了go语言是不是动态语言的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇go语言是不是动态语言文章都会有所收获,下面我们一起来看看吧。go不是动态语言。go语言是Google开发的一种静态强类型、...
    99+
    2023-07-04
  • PHP指的是解释型语言还是编译型语言
    这篇文章主要介绍PHP指的是解释型语言还是编译型语言,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!编译型语言使用专门的编译器(类似于Windows下的Visual Studio)、针对特定平台(操作系统)将某种高级语...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作