【113】编译型语言和解释性语言的区别?



♣题目部分   编译型语言和解释性语言的区别?
     




♣答案部分1、编译性语言(1)只须编译一次就可以把源代码编译成机器语言,后面的执行无须重新编译,直接使用之前的编译结果就可以在平台运行;因此其执行的效率比较高;(2)编译性语言代表:C、C++、Pascal/Object Pascal(Delphi);(3)程序执行效率比较高,但比较依赖编译器,因此跨平台性差一些;不同平台对编译器影响较大。 (4)因此其目标程序可以脱离其语言环境独立执行,如:(1)16位系统下int是2个字节(16位),而32位系统下int占4个字节(32位);(2)32位系统下long类型占4字节,而64位系统下long类型占8个字节;2、解释性语言(1)源代码不能直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行;        源代码—>中间代码—>机器语言(2)程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一 次;(3)解释性语言代表:Python、PHP、JavaScript、Shell、Perl、Ruby、VBScript、MATLAB等;(4)运行效率一般相对比较低,依赖解释器,跨平台性好;3、比较(1)一般,编译性语言的运行效率比解释性语言更高;但是不能一概而论,部分解释性语言的解释器通过在运行时动态优化代码,甚至能使解释性语言的性能超过编译性语言;(2)编译性语言的跨平台特性比解释性语言差一些;关于java    Java和其他的语言不太一样。因为java针对不同的平台有不同的JVM,实现了跨平台。所以Java语言有一次编译到处运行的说法。    1.你可以说它是编译型的:因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。     2.你可以说它是解释型的:因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。     3.但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。    4、总结:java大多人还是把它定义为编译语言,因为他首先的编译,.java不经过编译就什么用都没有,无论什么解释器都运行不了。        Java 和 C#  是一种比较奇葩的存在,它们是半编译半解释型的语言,源代码需要先转换成一种中间文件(字节码文件),然后再将中间文件拿到虚拟机中执行。Java 引领了这种风潮,它的初衷是在跨平台的同时兼顾执行效率;C# 是后来的跟随者,但是 C# 一直止步于 Windows 平台,在其它平台鲜有作为。
  

About Me:小麦粒

● 本文作者:小麦粒,专注于python、数据分析、数据挖掘、机器学习相关技术,也注重技术的运用

● 作者博客地址:https://blog.csdn.net/u010986753

● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

● 个人微信:pythonbao 联系我加微信群

● 个人QQ:87605025

● QQ交流群pythonbao:483766429

● 公众号:python宝 或 DB宝

● 提供OCP、OCM和高可用最实用的技能培训

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

如果你觉得到文章对您有帮助,点击下方我的头像,赞赏我哦!

有您的支持,小麦粒一定会越来越好!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值