1.3.1 高级语言的运行机制

计算机高级语言的执行方式可以分为编译型和解释型两种。

编译型语言是指使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码一次性“翻译”成可被该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行性程序的格式,这个转换过程称为编译(compile)。编译生成的可执行性程序可以脱离开发环境,在特定的平台上独立运行。

有些程序编译结束后,还可能需要对其他编译好的目标代码进行链接,即组装两个以上的目标代码模块生成最终的可执行性程序,通过这种方式实现低层次的代码复用。

因为编译型语言是一次性地编译成机器码,所以可以脱离开发环境独立运行,而且通常运行效率较高:但因为编译型语言的程序被编译成特定平台上的机器码,因此编译成生的可执行性程序通常无法移植到其他平台上运行;如果需要移植,则必须将源代码复制到特定平台上,针对特定平台进行修改,至少也需要采用特定平台上的编译器重新编译。

现有的C、C++、FORTIRAN、Pascal 等高级语言都属于编译型语言。

解释性语言是指使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行的语言。解释型语言通常不会进行整体的编译和连接处理,解释型语言相当于把编译型语言中的编译和解释过程混合到一起同时完成。

可以认为:每次执行解释型语言的程序都需要进行一次编译,因此解释型语言的程序运行效率通常较低,而且不能脱离解释器独立运行。但解释性语言有一个优势:跨平台比较容易,只需提供特定平台的解释器即可,每个特定平台上的解释器负责将源程序解释成特定平台的机器指令即可。解释型语言可以方便地实现源程序级的移植,但这是以牺牲程序执行效率为代价的。

现有的Ruby、Python 等语言都属于解释型语言。

除此之外,还有一种伪编译型语言,如 Visual Basic,它属于半角编译型语言,并不是真正的编译型语言。它首先被编译成P-代码,并将解释引擎封装在可执行性程序内,当运行程序时,p-代码会被解析成真正的二进制代码,在特定平台上运行,非常像编译型语言。实际上,在这个EXE文件中,既有程序的启动代码,也有链接解释程序的代码,而这部分代码负责启动Visual Basic 解释程序,再对Visual Basic 代码进行解释并执行。

时间: 2024-10-01 02:52:34

1.3.1 高级语言的运行机制的相关文章

Java程序运行机制

高级语言的运行机制 计算机高级语言按程序的执行方式可以分为编译型和解释型两种. 编译型语言是指使用专门的编译器,针对特定平台,也就是操作系统将某种高级语言源代码一次性翻译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序 的格式,这个转换过程称为编译,编译生成的可执行性程序可以脱离开发环境,在特定的平台上独立运行. 有些程序编译结束后,还可能需要对其他编译好的目标代码进行连接,即组装两个以上的目标代码模板生成最终的可执行性程序,通过这种方式实现低层次的代码复用. 因为编译型语言是

《Java疯狂讲义》(第3版)学习笔记 2 - Java语言的运行机制

内容 1.高级语言的运行机制 2.Java 语言的运行机制 1.高级语言的运行机制 高级语言主要分为编译型语言和解释型语言两类. 编译型语言是指使用专门的编译器.针对特定平台(操作系统)将高级语言源代码一次性“翻译”成该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行文件格式,这个转换过程称为编译(Compile).编译生成的可执行程序可以脱离开发环境,在特定的平台下独立运行.有些还需要链接其他编译好的目标代码 编译型语言是程序在执行之前需要一个专门的编译过程,把程序

谈谈Java运行机制

转载地址:http://www.cnblogs.com/iwinson/p/6074885.html 1.高级语言的运行机制 我们编程都是用的高级语言(写汇编和机器语言的大牛们除外),计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算机才能运行高级语言所编写的程序. 翻译,其实翻译的方式有两种,一个是编译,一个是解释.两种方式只是翻译的时间不同. 1.1编译型语言    (如C.C++.Objective-C) 使用专门的编译器,针对特定平台(操作系统)

java运行机制详细

JVM(Java虚拟机)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现.编译虚拟机的指令集与编译微处理器的指令集非常类似.Java虚拟机包括一套字节码指令集.一组寄存器.一个栈.一个垃圾回收堆和一个存储方法域. Java虚拟机(JVM)是可运行Java代码的假想计算机.只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行. 1.为什么要使用Java虚拟机 Java语言的一个非常重要的特点就是与平台的无关性.而使用Java虚拟机是实

C语言工作原理和运行机制

计算机语言和人类高级语言的联系 可以说,所有的编程语言都是一个原理,使用人类能读懂的语言来编写源代码(source code),再利用编译器将源代码翻译成机器能读懂的语言,称为目标代码(object language). 在计算机底层硬件中,所有的数据都是以1和0两个高低电平来表示,计算机只能识别这两个电平. 编程语言类似于人类语言,我们很容易就能理解它的意思,编写代码的效率非常高. 但是,计算机只认识0和1,如何才能将“人类语言”转换成“0&1语言”呢?这就是编译器的工作了. 编译器能够将源代

JAVA的技术特点及运行机制

2017.11.5 阴  一.Java的技术特点 Java包含了很多技术,从整体上分,Java技术可分为:Java编程语言和Java平台 Java编程语言是一种高级的编程语言,其特点有: >简单 >结构中立 >面向对象 >健壮性 >可移植性强 >高性能 >多线程 >安全性 >动态   1.跨平台性 所谓的跨平台性,是指软件可以不受计算机硬件和操作系统的约束而在任意计算机环境下正常运行.这是软件发展的趋势和编程人员追求的目标.之所以这样说,是因为计算机硬

javascript内存管理(堆和栈)和javascript运行机制

内存基本概念 内存的生命周期: 1.分配所需的内存 2.内存的读与写 3.不需要时将其释放 所有语言的内存生命周期都基本一致,不同的是最后一步在低级语言中很清晰,但是在像JavaScript 等高级语言中,这一步是隐藏的.透明的. js的内存生命周期: 1.定义变量时就完成了内存分配 2.使用值的过程实际上是对分配内存进行读取与写入的操作.读取与写入可能是写入一个变量或者一个对象的属性值,甚至传递函数的参数. 3.而内存的释放而依赖GC机制(高级语言解释器嵌入的"垃圾回收器"). 程序

Java的运行机制概括

这次随笔主要记录一下我对Java的平台无关性一些新的理解,以前只知道是Java是一门很容易跨平台的语言,正如 "Compile once, run anywhere" 这句话,也知道Java会先加载class字节码文件的机制,但对此是一知半解,所以我觉得有必要深入的总结一下它的加载机制. 你所了解的Java机制 编写源码 编译为字节码 通过JVM将字节码解释为机器码 这的确是Java代码的基本加载过程,因此有时候我们称"Java是解释执行的",但最近看了一篇相关文章

第一章 第二节 Java语言的运行机制

1.Java语言的运行机制 首先,我们介绍一下什么是计算机语言.对于计算机来说,真正能够直接执行的是所谓的"计算机指令".这种计算机指令,一方面跟着操作系统有关,也就是说,Windows系统和Linux系统下的指令不同.另一方面说,也跟计算机的硬件有关系,不同的CPU具有不同的指令集. 直接操作计算机指令,使用的是计算机语言以及汇编语言.然而,对于程序员来说,直接使用汇编语言来编写程序进行开发是非常慢的,为了能让程序开发的速度提升,设计出了计算机高级语言. 所谓的计算机高级语言,实际上