python\java\c\解释性语言\编译性语言 程序执行过程

c时纯粹的编译性语言,执行过程如下图:

可以看出c是通过预处理器、编译器、汇编器和链接器生成可执行的二进制目标文件,然后直接运行(编译性语言的本质)。

 Java和python是解释性语言,但并不是纯粹的解释性语言,准确来说是源文件被解释器加载或者显式地进行字节码编译之后,生成字节码文件,运行时字节码文件直接在解释器上边解释边运行(解释性语言的本质)。

java执行过程:

a.java(源文件)----->a.class(字节码文件)----->解释器上直接运行

python执行过程

a.py(源文件)----->a.pyc或者a.pyo(字节码文件)----->解释器上直接运行

ps:字节码(Byte-code)是一种包含执行程序,由一序列 op(操作码) 代码/数据对组成的二进制文件,是一种中间码。字节是电脑里的数据量单位。

原文地址:https://www.cnblogs.com/jiaoqiang/p/11117176.html

时间: 2024-09-30 07:08:29

python\java\c\解释性语言\编译性语言 程序执行过程的相关文章

编译性语言与解释性语言

计算机不能直接理解高级语言,所以需要将高级语言翻译成机器语言,翻译有两种方式:编译.解释,这两种方式主要是翻译的时间不同. 编译性语言 编译性语言指代码需要先编译成机器语言的二进制文件,然后再执行.这样在执行的时候就不需要再翻译了,所以执行效率高.典型的有C/C++. 解释性语言 解释性语言指跳过编译阶段,直接运行,在运行时翻译.每次执行都需要翻译一次,所以效率较低.每种解释性语言都有对应的引擎来解释执行.有点类似于"同声翻译",代码一边由相应的解释器"翻译"成机器

解释性语言和编译性语言的区别

解释性语言和编译性语言的区别 计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序. 翻译的方式有两种,一个是编译,一个是解释.两种方式只是翻译的时间不同. 编译性语言 编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高. 解释性语言 解释则不同

编译性语言和解释性语言分析

常见的编译性语言和解释性语言 计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序. 机器翻译的方式有两种,一个是编译,一个是解释.两种方式只是翻译的时间不同. 解释性语言:Java.Python.Perl.C#.JavaScript.VBScript.Ruby.MATLAB等. 编译性语言:C/C++.Pascal/Object Pascal(Delphi)等. 编译性语言 编译型语言写的程序执行之前,需要一个专门的编译过程,把

编译性语言&解释性语言

计算机是不能理解高级语言,当然也就不能直接执行高级语言了.计算机只能直接理解机器语言,所以任何语言,都必须将其翻译成机器语言.任何编程语言编写的程序归根到底都是由底层机器的机器代码(01序列)执行的,无论是编译型语言还是解释型语言.而任何高级编程语言程序的源代码都是一个字符序列,这个字符序列到底层的01序列是通过编译器或解析器经过多次转换完成的. 编译 vs 解释 翻译的方式有两种:一种是编译,一种是解释. 两种方式翻译的时间不同. 编译型语言写的程序在被执行之前,需要一个专门的编译过程,把程序

编译性语言不如解释性语言跨平台性好

编译性语言例如c语言:用c语言开发了程序后,需要通过编译器把程序编译成机器语言(即计算机识别的二进制文件,因为不同的操作系统计算机识别的二进制文件是不同的),所以c语言程序进行移植后,要重新编译. 解释性语言,例如java语言,java程序首先通过编译器编译成class文件,如果在windows平台上运行,则通过windows平台上的java虚拟机(VM)进行解释.如果运行在linux平台上,则通过linux平台上的java虚拟机进行解释执行.所以说能跨平台,前提是平台上必须要有相匹配的java

解释性语言和编译性语言的定义

字符串编译的过程:gbk==>unicode==>utf16==>url解码 字符串解码顺序为:url解码==>utf16==>unicode==>gbk 解释性语言和编译性语言的定义: 计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序.翻译的方式有两种,一个是编译,一个是解释.两种方式只是翻译的时间不同. 解释性语言的定义:解释性语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才

java程序执行过程&基本数据类型

1. 程序load到内存. 2. 找到程序入口方法(main())开始执行. 3. 程序在内存中的存放 3.1 代码段(code segment)--------存放代码 3.2 数据段(data segment)--------存放静态变量,字符串常量 3.3 栈(stack)                ----------存放局部变量 3.4 堆(heap)                -----------存放new出来的东西 ----------------------------

编译性语言、解释性语言和脚本语言

1.计算机不能直接理解高级语言,只能理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序.(计算机只能执行机器语言:我们要执行高级语言编的代码,就只能用编译器把它变成机器语言) 2.翻译有两种方式:a.编译b.解释.两种方式主要是翻译的时间不同 3.编译语言:编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成机器语言文件:比如,exe文件,以后运行的话就不用重新编译了,直接使用编译的结果就行了:因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序

编译性语言、解释性语言和脚本语言的区别

http://www.cnblogs.com/wvvv/p/5227318.html计算机是不能理解高级语言,当然也就不能直接执行高级语言了.计算机只能直接理解机器语言,所以任何语言,都必须将其翻译成机器语言,计算机才能运行高级语言编写的程序. 一.翻译和解释的不同 翻译的方式有两种,一个是编译,一个是解释. 两种方式只是翻译的时间不同.编译型语言写的程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(