编译性语言和解释性语言的区别
编译性语言和解释性语言的区别
1、编译性语言
- (1)只须编译一次就可以把源代码编译成机器语言,后面的执行无须重新编译,直接使用之前的编译结果就可以;因此其执行的效率比较高;
- (2)编译性语言代表:C、C++、Pascal/Object Pascal(Delphi);
- (3)程序执行效率比较高,但比较依赖编译器,因此跨平台性差一些;
不同平台对编译器影响较大。
如:
- (1)16位系统下int是2个字节(16位),而32位系统下int占4个字节(32位);
- (2)32位系统下long类型占4字节,而64位系统下long类型占8个字节;
2、解释性语言
- (1)源代码不能直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行;
源代码—>中间代码—>机器语言
- (2)程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次;
- (3)解释性语言代表:Python、JavaScript、Shell、Ruby、MATLAB等;
- (4)运行效率一般相对比较低,依赖解释器,跨平台性好;
3、比较
- (1)一般,编译性语言的运行效率比解释性语言更高;但是不能一概而论,部分解释性语言的解释器通过在运行时动态优化代码,甚至能使解释性语言的性能超过编译性语言;
- (2)编译性语言的跨平台特性比解释性语言差一些;
4、java是编译性语言还是解释性语言?
对于这个问题,网上是众说纷纭;有人说是编译性语言,也有人说是解释性语言。但是个人觉得正如一位网友所说的那样,解释性或编译性和语言本身是没有关系的,即解释性或编译性可以看作是一种语言的状态;
- java语言应是编译性-解释性语言,因为其同时具备编译性和解释性两种特性;
java文件先编译成与平台无关的.class的字节码文件,然后.class的字节码文件既可以在Windows平台上的java虚拟机(JVM)上进行解释运行,也可以在Linux平台上的JVM上解释运行;而JVM的翻译过程时解释性的,JVM从.class的字节码文件中读出一条指令,翻译一条指令,然后执行一条指令,这个过程就称为java的解释执行;
以上内容参考了一些网络资料,再加上了自己的一些总结和体会!如有错误,欢迎指正!谢谢!
编译性语言和解释性语言的区别相关推荐
- 数据分析学习笔记 —编译性语言和解释性语言区别
Python -编译性语言和解释性语言区别 编译器与解释器 简单地说,编译器是一个程序,可以阅读以某一种语言(源语言)编写的程序,并把该程序翻译成一个等价的.用另一种语言(目标语言)编写的程序. 如果 ...
- 编译性语言、解释性语言和脚本语言
什么是编译性语言.解释性语言和脚本语言 计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能值型高级语言编写的程序. 翻译的方式有两种,一个是编译,一个是解 ...
- Python语言是解释性语言还是编译性语言?
1.Python语言是解释性语言还是编译性语言? Python语言是先编译再解释的语言.Python 在解释源程序时分为两步: 1:将源码转为字节码 2:将字节码转换为机器码 pyc 文件是由 Pyt ...
- 编译性语言、解释性语言和脚本语言的区别
计算机是不能理解高级语言,当然也就不能直接执行高级语言了.计算机只能直接理解机器语言,所以任何语言,都必须将其翻译成机器语言,计算机才能运行高级语言编写的程序. 一.翻译和解释的不同 翻译的方式有两种 ...
- java是编译性语言,解释性语言
看到一个对java的描述,恰好之前笔试也遇到的一个问题:**java是解释性语言还 是编译性语言**.书中对java的描述是这样的:java兼具编译性与解释性,java编译器会将java源码翻译成所谓 ...
- 编译性语言和解释性语言
我们知道,任何编程语言编写的程序归根到底都是由底层机器的机器代码(01序列)执行的,无论是编译型语言还是解释型语言.而任何高级编程语言程序的源代码都是一个字符序列,这个字符序列到底层的01序列是通过编 ...
- 解释性语言和编译性语言的区别
解释性语言和编译性语言的区别 计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序. 翻译的方式有两种,一个是编译,一个是解释.两种方 ...
- 编译性语言解释性语言
计算机是不能理解高级语言,当然也就不能直接执行高级语言了.计算机只能直接理解机器语言,所以任何语言,都必须将其翻译成机器语言.任何编程语言编写的程序归根到底都是由底层机器的机器代码(01序列)执行的, ...
- 解释性语言与编译性语言
首先了解下计算机语言的发展,目前共经历四个时代,或许以后会出现5,6代语言 机器 汇编 高级 C++.Visual C++.Visual Basic .Delphi.Java等屏蔽了机器的细节,提高了 ...
最新文章
- 升维:ValueError: all the input arrays must have same number of dimensions,
- Intel主动管理技术用例-远程诊断、远程修复
- Weblogic反序列化漏洞补丁更新解决方案
- 通用SQL数据库查询语句精华使用简介
- WCHAR,CHAR,TCHAR的区别
- Oralce中备份,还原数据库
- 平安城市与智慧城市对接的关键要素
- Spring实战Day2
- 推销自己的海盗猫王运营商
- maya崩溃自动保存路径_xgen 分享在maya里制作头发失败经验
- 8 -- 深入使用Spring -- 4...3 AOP的基本概念
- Java链表的常用算法原理
- 东南大学计算机考研代码,东南大学代码_东南大学专业代码_2021东南大学招生代码,报考代码...
- python turtle 乌龟赛跑_童年听的龟兔赛跑的故事,我终于用100行Python实现了!
- android graphics2d,Graphics2D的drawString之不带颜色的字体
- 正方教务系统php登陆,正方教务管理系统最新版无条件注入GetShell | wooyun-2015-0122523| WooYun.org...
- Substrate是什么,为什么要选择Substrate
- 《父与子的编程之旅-与小卡特一起学python》第18章
- 2013年3月山东综合性网站及社区网站 综合影响力排名
- win7安装linux子系统,linux系统装win7系统安装教程【图文教程】