导航:首页 > 源码编译 > 代码的编译和解析

代码的编译和解析

发布时间:2022-09-19 19:07:18

① 解释和编译有什么区别

一、与计算机的交流方式不同

1、解释程序不产生目标代码,它逐条地取出源程序中的语句,边解释,边执行;解释器把源代码文件边解释成机器语言边交给CPU执行。

三、开发便捷性

1、解释程序可以随时修改,立刻生效,改完源代码后,直接运行看效果

2、编译程序每次修改源代码,都要重新编译,生成机器码文件

四、运行速度

1、解释程序运行效率低,所有的代码均需经过解释器边解释变执行,速度比编译型慢很多

2、编译程序执行速度快,因为你的程序代码已经翻译成了是计算机可以理解的机器语言。

② 程序的编译与解释有什么区别

一 解释和编译的区别 解释是读一段代码,解释执行一段代码。如果已经完成一段代码的语法分析和语义分析并且生成了执行过程,但是不立即执行这个过程,而是把它们全部收集起来,连成一个大的执行过程,这就是编译这也意味着01 相同一段代码,每次解释执行都要重复进行语法分析和语义分析,编译执行省略了这个过程 02 解释是交错执行,完全按照程序“原始”的控制流走,编译则有机会对整个程序进行流分析和优化 03 编译后的代码是“固定”的,解释执行则可以在代码运行时直接修改代码和数据 二 解释型语言和编译型语言的区别 动态特性越多的语言,需要解释的地方就越多,反之则越少。 特别要说一下,C语言和汇编是完全没有动态特性的语言,所以几乎所有语言的运行时系统,都是用C来写的不过这一点上,解释和编译并没有非常清晰的区别,动态特性也可以交给即时编译器来处理

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

1.定义区别

①编译原理旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。

②汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。

2.处理方式区别

①编译过程与解释挺像,区别就在于编译是将所有的源代码指令一次性成翻目标代码并执行。

②汇编过程就是把汇编指令一对一地翻译成01机器码的过程。而采用这种处理方式的语言只有一类:汇编语言。

3.特点区别

①编译语言的特点就是不需要解释器的参与,所以运行比较快,但是编译好的程序只能在当前平台运行,是个局限性。

②汇编语言是当今世界上历史最早,应用最广,功能最强大,运行速度最快的编程语言。但是汇编语言开发工期长,可读性差,并且不能跨平台编程。

④ 简述java程序的编辑编译和运行过程

第一步(编译): 创建完源文件之后,程序会先被编译为.class文件。Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器就会先编译这个被依赖的类,然后引用,否则直接引用,这个有点象make。

如果java编译器在指定目录下找不到该类所其依赖的类的.class文件或者.java源文件的话,编译器话报“cant find symbol”的错误。

第二步(运行):java类运行的过程大概可分为两个过程:1、类的加载 2、类的执行。需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类。也就是说,JVM并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。

特别说明:java类中所有public和protected的实例方法都采用动态绑定机制,所有私有方法、静态方法、构造器及初始化方法<clinit>都是采用静态绑定机制。而使用动态绑定机制的时候会用到方法表,静态绑定时并不会用到。

(4)代码的编译和解析扩展阅读:

Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。

Java代码编译:是由Java源码编译器来完成;

Java字节码的执行:是由JVM执行引擎来完成

Java程序从源文件创建到程序运行要经过两大步骤:

1、源文件由编译器编译成字节码(ByteCode)

2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpreted" language)。

⑤ 什么是Java代码的编译与反编译

Java代码的编译与反编译

2017-02-21 Hollis 数盟

一、什么是编译

1、利用编译程序从源语言编写的源程序产生目标程序的过程。

2、用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。 编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。

二、什么是反编译

计算机软件反向工程(Reverse engineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。

三、 Java类的编译与反编译

我们在最初学习Java的时候,会接触到两个命令:javac和java,那个时候我们就知道,javac是用来编译Java类的,就是将我们写好的helloworld.java文件编译成helloworld.class文件。

class文件打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而Java class文件是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件。

那么反编译呢,就是通过helloworld.class文件得到java文件(或者说是程序员能看懂的Java文件)

四、什么时候会用到反编译

1、我们只有一个类的class文件,但是我们又看不懂Java的class文件,那么我们可以把它反编译成我们可以看得懂的文件。

2、学习Java过程中,JDK的每个版本都会加入越来越多的语法糖,有些时候我们想知道Java一些实现细节,我们可以借助反编译。

五、反编译工具

1、javap

2、Jad:官网(墙裂推荐)

客户端:

可以在官网下载可执行文件,找到对应的操作系统的对应版本,然后进行安装使用。

因为我使用的是linux操作系统,所以我下载的是Linux版本的工具,这个工具下载好之后会有一个执行文件,只要在执行文件所在目录执行./jad helloworld.class就会在当前目录下生成helloworld.jad文件,该文件里就是我们很熟悉的Java代码

Eclipse插件:

下载地址 在官网下载插件的jar包,然后将jar包放到eclipse的plugins目录下‘ 在打开Eclipse,Eclipse->Window->Preferences->Java,此时你会发现会比原来多了一个JadClipse的选项,单击,在Path to decompiler中输入你刚才放置jad.exe的位置,也可以制定临时文件的目录。当然在JadClipse下还有一些子选项,如Debug,Directives等,按照默认配置即可。 基本配置完毕后,我们可以查看一下class文件的默认打开方式,Eclipse->Window->Preferences->General->Editors->File Associations我们可以看到class文件的打开方式有两个,JadClipse和Eclipse自带的Class File Viewer,而JadClipse是默认的。 全部配置完成,下面我们可以查看源码了,选择需要查看的类,按F3即可查看源码

⑥ “编译方式”和“解释方式”的区别是什么

程序员编写的程序现在一般都是用高级语言编写的,如c/c++ 以及面向对象的visual 系列;这样编写的程序计算机是不能直接执行的,因为计算机只能执行二进制程序。因此要经过一个源程序代码翻译成二进制的过程。计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过“翻译程序”翻译成机器语言形式的目标程序,计算机才能识别和执行。这种“翻译”通常有两种方式,即编译方式和解释方式。

两者的区别如下:
解释方式:程序运行时,取一条指令,将其转化为机器指令,再执行这条机器指令。这种方式每次运行程序时都要重新翻译整个程序,效率较低,执行速度慢,如QB,不过现在很少再用这种低效的方式的设计语言了。
编译方式:程序运行时之前,将程序的所有代码编译为机器代码,再运行这个程序。然后每次执行的时候就可以直接执行这个翻译好的二进制文件了,这样的程序只需要翻译一次,效率明显要高很多,现在的大多数语言都是这种方式,网页中的asp.net 采用的也是这种方式。

简单的说,编译就是全文翻译,全部翻译完才执行。解释就相当于同声翻译,边翻译边执行。

⑦ 编译程序和解释程序都是什么意思

1、编译程序是把用高级程序设计语言或计算机汇编语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序,属于采用生成性实现途径实现的翻译程序。编译程序以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出;编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。

2、解释程序是高级语言翻译程序的一种,它将源语言书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。

(7)代码的编译和解析扩展阅读:

编译程序的实现算法较为复杂。这是因为它所翻译的语句与目标语言的指令不是一一对应关系,而是一多对应关系;同时也因为它要处理递归调用、动态存储分配、多种数据类型,以及语句间的紧密依赖关系。但是,由于高级程序设计语言书写的程序具有易读、易移植和表达能力强等特点,编译程序广泛地用于翻译规模较大、复杂性较高、且需要高效运行的高级语言书写的源程序。

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

编译和解释的区别是与计算机的交流方式不同、运行环境不同、运行速度不同。

一、与计算机的交流方式不同

编译是将源程序翻译成可执行的目标代码,执行可执行程序文件,翻译与执行是分开的。

解释程序不产生目标代码,它逐条地取出源程序中的语句,边解释边执行,解释器把源代码文件边解释成机器语言边交给CPU执行。

二、运行环境不同

编译程序跨平台性不好,不同操作系统,调用底层的机器指令不同,需为不同平台生成不同的机器码文件,编译程序每次修改源代码,都要重新编译,生成机器码文件。

解释程序可跨平台使用,因为解释器已经做好了对不同平台的交互处理,用户写的源代码不需要再考虑差异性,源代码所有平台都可以直接执行,解释程序可以随时修改,立刻生效,改完源代码后,直接运行看效果。

三、运行速度不同

编译程序执行速度快,因为你的程序代码已经翻译成了是计算机可以理解的机器语言。

解释程序运行效率低,所有的代码均需经过解释器边解释变执行,速度比编译型慢很多。

⑨ 编译方式和解释方式有什么区别

首先,我们编写的程序现在一般都是用高级语言编写的,如c/c++
以及面向对象的visual
系列;我们编写的程序计算机是不能直接执行的,因为计算机只能执行二进制程序.因此要经过一个将我们写的代码翻译成二进制的过程.
完成这个过程一般有两种方式:1.解释方式
2.
编译方式
1.解释方式是每执行一句就翻译一句即边执行边解释.这种方式每次运行程序时都要重新翻译整个程序,效率较低,执行速度慢,如qb,不过现在几乎没有人再用这种低效的方式的设计语言了.
2.编译方式是在程序第一次执行前就先执一个全部的翻译过程,然后每次执行的时候就可以直接执行这个翻译好的二进制文件了,这样的程序只需要翻译一次,效率明显要高很多,现在的大多数语言都是这种方式,网页中的asp.net
采用的也是这种方式.

php代码是怎么被解析的

流程:apache 服务器加载php文件然后进行操作,解析文件,如果需要访问数据库那就php又访问数据库然后服务器将结果返回给浏览器

阅读全文

与代码的编译和解析相关的资料

热点内容
扣扣服务器问题怎么解决 浏览:126
手机怎么连接加密WF 浏览:329
电脑怎么在邮箱发送文件夹 浏览:803
王者荣耀服务器忙如何强制进入 浏览:26
云服务器网站怎么购买 浏览:477
linux系统记录 浏览:127
linuxusb驱动下载 浏览:34
梁特殊箍筋加密区公式 浏览:141
web应用安全pdf 浏览:47
linuxintel网卡驱动下载 浏览:217
资源解压后怎么删除 浏览:868
编程之美15种算法 浏览:147
java的图形用户界面设计 浏览:769
算数游戏源码 浏览:999
压缩机工作声音判断 浏览:985
事业单位程序员 浏览:506
易语言取相似颜色源码 浏览:773
pyodbclinux 浏览:585
vivo为什么把服务器沉到深海 浏览:460
程序员能为电商做什么 浏览:401