源代码(source code)和字节码(bytecode)的区别

计算机是一种能根据用户提供的指令执行任务的机器。计算机程序可以向计算机发出指令。它是用一套特定的编程语言编写的。编程语言有很多种。大多数编程语言都是高级编程语言。用高级语言编写的程序很容易被人或程序员理解。这些程序称为源代码。机器无法理解它们。因此,人类可读可理解的程序必须转换成机器可理解的格式。机器可理解的代码被称为机器代码。使用C语言将整个机器代码转换为C语言。有些编程语言将源代码转换为中间代...

主要区别-源代码与字节码

计算机是一种能根据用户提供的指令执行任务的机器。计算机程序可以向计算机发出指令。它是用一套特定的编程语言编写的。编程语言有很多种。大多数编程语言都是高级编程语言。用高级语言编写的程序很容易被人或程序员理解。这些程序称为源代码。机器无法理解它们。因此,人类可读可理解的程序必须转换成机器可理解的格式。机器可理解的代码被称为机器代码。使用C语言将整个机器代码转换为C语言。有些编程语言将源代码转换为中间代码,然后将中间代码转换为机器代码。在这个过程中,中间代码被称为字节码。本文讨论源代码和字节码之间的区别。源代码和字节码的关键区别在于,源代码是使用人类可读编程语言编写的计算机指令的集合,而字节码是源代码和由虚拟机执行的机器代码之间的中间代码。

目录

1. 概述和主要区别
2. 什么是源代码
3. 什么是字节码
4. 源代码和字节码的相似性
5. 并行比较-源代码与表格式的字节码
6. 摘要

什么是源代码(source code)?

编写了一个程序来解决一个计算问题。一组程序被称为软件。为了开发软件,开发人员应该对需求有很好的理解。根据需求,可以对系统进行设计。然后,用编程语言实现了所设计的系统。程序员可以使用编程语言将设计转换成一组计算机程序。

这些程序可以被人类或程序员理解。它们的语法与英语相似。使用人类可读的编程语言编写的指令集合称为源代码。例如,C、Java等编程语言都集成了开发环境(IDE)来开发程序。也可以使用简单的文本编辑器编写程序。这些程序被称为源代码。

什么是字节码(bytecode)?

当编程语言从源代码转换为机器代码时,一些编程语言将源代码转换为称为字节码的中间代码。Java是使用字节码的主要编程语言之一。将源代码转换为字节码的过程如下。

源代码(source code)和字节码(bytecode)的区别

图01:Java中的程序执行

在Java中,有一个虚拟机叫做Java虚拟机(JVM),它帮助运行Java程序。虚拟机类似于系统上安装的操作系统。运行Java程序时,编译器将Java程序或源代码转换为Java字节码。然后JVM将字节码转换为机器码。机器代码由计算机直接执行。字节码是为JVM编写的。它不是针对机器的。因此,字节码由各种平台执行,如Windows、Linux和Mac。字节码有数字代码、常量和引用,它们对解析和语义分析的结果进行编码。

源代码(source code)和字节码(bytecode)的共同点

  • 两者都与计算机编程有关。
  • 两者都应翻译成机器代码,供计算机执行指令。

源代码(source code)和字节码(bytecode)的区别

源代码与字节码
源代码是使用人类可读的编程语言编写的计算机指令的集合。 字节码是源代码和由虚拟机执行的机器代码之间的中间代码。
可理解性
源代码是可读的人类或程序员。 字节码可由虚拟机读取。
源代码是由人类生成的。 字节码由编译器生成。
格式
源代码是纯文本的形式,具有相似的英语语法和注释。 字节码有数字代码、常量和引用,它们对解析和语义分析的结果进行编码。
执行方法
源代码不能被机器直接执行。 字节码可由虚拟机执行。
执行速度
源代码的速度比字节码最低。 字节码的速度比源代码快。
性能
源代码的性能不如字节码。 字节码的性能比源代码高,因为它接近机器代码。

总结 - 源代码(source code) vs. 字节码(bytecode)

程序员可以用程序向计算机提供指令。大多数程序都是用高级编程语言编写的。人类可以理解它们,但计算机无法理解。因此,程序应转换成机器可理解的格式。在这个过程中,不同的语言使用不同的方法。有些编程语言直接把程序转换成机器代码。其他语言将程序转换为中间代码,并将中间代码转换为机器代码。源代码和字节码是这个过程中的两个常见术语。源代码和字节码的区别在于,源代码是使用人类可读编程语言编写的计算机指令的集合,而字节码是源代码和由虚拟机执行的机器代码之间的中间代码。

下载源代码与字节码的pdf文件

你可以下载这篇文章的PDF版本,并根据引文说明离线使用。请在这里下载PDF版本:源代码和字节码的区别

引用

1Java JDK、JRE和JVM。此处提供

  • 发表于 2020-10-19 15:49
  • 阅读 ( 635 )
  • 分类:IT

你可能感兴趣的文章

银行代码(swift code)和分类代码(sort code)的区别

...今世界各国普遍采用的一种行为,了解SWIFT码与分类码的区别是非常有益的。SWIFT代码和分类代码是与银行业务相关的两个术语,尤其是在转账时。SWIFT代码和分类代码是两种用于转账的方式。此外,这两种密码是方便和安全地转...

  • 发布于 2020-10-07 08:57
  • 阅读 ( 1462 )

源代码(source code)和目标代码(object code)的区别

主要区别——源代码与目标代码 软件是程序的集合。程序是给计算机执行特定任务的一组指令。它们的指令是由程序员用编程语言编写的。因此,开发一个软件意味着开发一套程序。编写程序的活动称为编程。开发完整软件...

  • 发布于 2020-10-19 18:56
  • 阅读 ( 754 )

源程序(source program)和目标程序(object program)的区别

...通常不包括源文件。但是,如果应用程序是开源的,那么源代码也是分布式的,用户也可以查看和修改源代码。 什么是目标程序(object program)? 目标程序通常是一个机器可执行文件,它是使用编译器编译源文件的结果。除了机器...

  • 发布于 2020-10-26 14:27
  • 阅读 ( 192 )

如何从linux终端压缩或解压文件

...。 创建名为source的文件_代码.zip包含当前目录中的所有C源代码文件和头文件,可以使用以下命令: zip source_code *.c *.h 每个文件在添加时都会列出。将显示文件名以及在该文件上实现的压缩量。 如果您查看新的ZIP存档文件,您...

  • 发布于 2021-04-03 14:07
  • 阅读 ( 169 )

银行代码(swift code)和排序代码(sort code)的区别

...要用于电汇,以确定来源和目的地。swift和sort代码的主要区别在于它们的使用位置。分类代码仅由英格兰和爱尔兰用于识别该国境内的银行及其各自的分行。另一方面,全球各地都在使用swift代码,是国际汇款的主要手段。因此...

  • 发布于 2021-06-23 19:49
  • 阅读 ( 491 )

虚拟机(jvm)和清除(clr)的区别

...。 JVM或Java虚拟机允许执行字节码,字节码是通过编译Java源代码生成的。它可以在许多硬件和软件平台上使用。换句话说,JVM依赖于平台。另一方面,CLR或公共语言运行时提供了执行在.NET framework中编写的程序的环境。它还提供...

  • 发布于 2021-07-01 03:02
  • 阅读 ( 268 )

机器代码(machine code)和字节码(bytecode)的区别

...言或二进制的指令,可以由CPU直接执行,而字节码是编译源代码生成的中间代码,可以由虚拟机执行。 计算机程序是执行特定任务的指令集合。一种特殊的软件,如编译器或解释器,将程序转换成机器可读的机器代码。另一方...

  • 发布于 2021-07-01 03:23
  • 阅读 ( 661 )

JAVA(java)和python(python)的区别

Java和Python之间的主要区别在于,Java编译器将Java源代码转换为称为字节码的中间代码,而Python解释器将Python源代码逐行转换为机器代码。 Java是一种设计用于分布式环境的编程语言。它是Android智能**和物联网(IoT)等各种应用程...

  • 发布于 2021-07-01 03:43
  • 阅读 ( 319 )

口译译员(interpreter)和jit编译器(jit compiler)的区别

解释器和JIT编译器的主要区别在于解释器是一种逐行将源代码转换成本机代码的软件,而JIT编译器是JVM中的一个组件,它通过在运行时将字节码编译成本机代码来提高Java程序的性能。 解释器是一种程序,它将程序员编写的指令...

  • 发布于 2021-07-01 05:51
  • 阅读 ( 519 )

C++(c++)和JAVA(java)的区别

...应用。 C++是一种基于编译器的语言。编译器一次将整个源代码转换成机器代码。因此,C++程序执行得更快。CPU可以直接执行转换后的机器代码。机器代码取决于操作系统。因此,C++是依赖于平台的。此外,标准模板库(STL)是C+...

  • 发布于 2021-07-01 07:51
  • 阅读 ( 335 )
070h3875nkb5zi
070h3875nkb5zi

0 篇文章

相关推荐