计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。
翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高,但也不能一概而论,部分解释型语言的解释器通过在运行时动态优化代码,甚至能够使解释型语言的性能超过编译型语言。 解释则不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。解释是一句一句的翻译。
编译型与解释型,两者各有利弊。前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。 但随着硬件的升级和设计思想的变革,编译型和解释型语言越来越笼统,主要体现在一些新兴的高级语言上,而解释型语言的自身特点也使得编译器厂商愿意花费更多成本来优化解释器,解释型语言性能超过编译型语言也是必然的。
分享到:
相关推荐
Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。 Python解释器易于扩展,可以使用...
S语言是由AT&T贝尔实验室开发的一种用来进行数据探索、统计作图的解释型语言,无需编译器即可运行。1991年,新西兰奥克兰大学的统计学家罗斯·伊哈卡和罗伯特·杰特曼开始对R系统进行开发。R这个单一字母的名字表明R...
然而,编译型语言的缺点在于需要预编译步骤,对开发环境和目标平台的依赖性强,且编译后的程序体积通常较大。 解释性语言,如Python、Ruby和Perl,它们的源代码在运行时逐行被解释器解析并执行,不需要预先生成可...
因此,虽然Python的执行过程包含了编译的元素,但由于最终执行的是字节码而不是直接的机器码,所以我们仍称其为解释型语言。 解释型语言与编译型语言的主要区别在于执行流程。编译型语言如C或C++,在运行前需要通过...
该项目是YoLang轻量级解释型编程语言的设计源码,主要使用C++语言开发,辅以C语言。项目文件总计25个,包括8个C++源文件(.cpp)、7个头文件(.h)、4个PNG图片文件、2个文本文件(.txt)、2个Markdown文档(.md)、...
对于C和C++,它们经过一次编译之后,可以由操作系统直接执行,所以它们是编译型语言。而Java不一样,它首先由编译器编译成.class(字节码)文件,然后在通过JVM从.class文件中读一行解释执行一行,所以它是解释型...
而解释型语言则不需预先编译,源代码在执行时逐行被解释器转化为机器码并立即执行,这使得解释型语言的开发周期较短,但运行效率相对较低。 LabVIEW采用了一种独特的编译和解释相结合的方式。当用户创建一个VI...
在讨论其是编译型还是解释型语言时,我们需要理解这两种类型的编程语言的区别。 编译型语言如C++或VB,其源代码在运行前需要经过编译器转换成机器可执行的二进制代码。这个过程会产生独立的可执行文件,可以在没有...
Python7天速成
《maloss:关注解释型语言程序包管理器的供应链安全》 在当今的软件开发环境中,解释型语言如Python、JavaScript、Ruby等广泛应用于各种项目,而对应的程序包管理器,如npm、RubyGems、PyPI等,是开发者获取和分发...
这种方式使得解释型语言具有开发快速、调试方便的优点,因为改动一行代码就只需要重新解释那一行,而无需重新编译整个程序。但同时,由于每次执行都需要进行翻译,解释型语言的运行速度通常较慢。 编译语言则不同,...
Python是一种动态强类型解释型语言,这意味着在编程时,我们不需要预先声明变量的类型,而是在运行时根据赋值自动确定变量的类型。这赋予了Python极大的灵活性,但同时也带来了性能上的牺牲。与静态类型语言(如C++...
一种解释型语言,用于基于规则的数据集匹配 仲裁程序是一种简单的语言,分为三个部分:类型,记录和规则。 运行代码时,仲裁器会告诉您哪些记录通过了规则定义的测试。 种类 类型定义用于特定记录类别的架构。 类型...
Snap是RPython项目中的一种解释型语言,它以其高效、灵活和易于理解的特性而备受赞誉。RPython是一种用于编写高性能Python应用的框架,它可以被转换为C代码并进行优化,使得生成的程序运行速度接近原生代码。Snap在R...
在计算机编程领域,解释型语言是一种不同于编译型语言的程序设计语言。解释型语言在运行时逐行进行解释和执行,而不需要事先将整个程序编译成机器码。本项目以VC++作为开发工具,设计并实现了一个专门用于计算的解释...
赛利斯虚拟机Xelis 是一种用 Rust 开发的解释型语言。它支持常量、函数、while/for 循环、数组和结构。语法受到 Rust 编程语言的强烈启发。语言中存在的不同原始类型是:细绳数字(代表一个无符号的 64 位数字)布尔...
- **解释型语言**:Python是一种解释型语言,这意味着它可以逐行解释并执行代码,无需预先编译成机器语言。 - **动态特性**:Python支持动态类型检查和变量绑定,使得编程更加灵活。 - **丰富的库支持**:Python拥有...
本篇内容主要探讨了高级语言的运行机制,特别是编译型语言和解释型语言的区别,以及Java程序的运行机制和Java虚拟机(JVM)的角色。 首先,让我们来看看编译型语言。编译型语言如C++和C#,其源代码在运行之前需要...
2:所收到的串口数据将发送给用户自定义的Lua函数(一种类似C的解释型语言) Lua函数可对收到的串口数据进行分析,并返回串口数据到单片机. 3:工具内建了对Lua的辅助函数可以支持 连续下发串口数据/定时下发串口数据,/...