博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编译型语言、解释型语言、脚本语言的区别
阅读量:4593 次
发布时间:2019-06-09

本文共 1072 字,大约阅读时间需要 3 分钟。

计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。

把高级语言翻译成机器语言的两种方式:一种是编译,一种是解释。两种方式只是翻译的时间不通。

1.编译

编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高,但也不能一概而论,部分解释型语言的解释器通过在运行时动态优化代码,甚至能够使解释型语言的性能超过编译型语言。

最典型的例子就是C语言。

2.解释

解释则不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。解释是一句一句的翻译。

此外,随着Java等基于虚拟机的语言的兴起,我们又不能把语言纯粹地分成解释型和编译型这两种。

用Java来举例,Java首先是通过编译器编译成字节码文件,然后在运行时通过解释器给解释成机器文件。所以我们说Java是一种先编译后解释的语言。

再换成C#,C#首先是通过编译器将C#文件编译成IL文件,然后在通过CLR将IL文件编译成机器文件。所以我们说C#是一门纯编译语言,但是C#是一门需要二次编译的语言。同理也可等效运用到基于.NET平台上的其他语言。


脚本语言

脚本语言是一种解释性的语言

脚本语言又被称为扩建的语言,或者动态语言,脚本语言不需要编译,可以直接用,由解释器来负责解释。

脚本语言一般都是以文本形式存在,类似于一种命令.

举个例子说,如果你建立了一个程序,叫aaa.exe,可以打开.aa为扩展名的文件.

你为.aa文件的编写指定了一套规则(语法),当别人编写了.aa文件后,你的程序用这种规则来理解编写人的意图,并作出回应.那么,这一套规则就是脚本语言

解释型语言是不是完全等同于脚本语言? 

何为解释型语言?典型的是java,凡是运行java作的程序都得装个虚拟机(jre),这个jre就是解释器。脚本,我比较熟悉的是perl,也是典型的解释型语言。但是显然java不是脚本语言,脚本语言的特征主要有无类型、无内存管理等等,功能较弱,但是使用方便。

 

 

出自:

转载于:https://www.cnblogs.com/aieceo/p/8064675.html

你可能感兴趣的文章
css元素垂直居中
查看>>
启用WCF测试客户端(WCF Test Client)的相关技巧
查看>>
用 XML 文件持久化和恢复图片信息
查看>>
完美洗牌算法
查看>>
Redis-数据操作
查看>>
noip 2012 Day2 T2 借教室
查看>>
Css:背景色透明,内容不透明之终极方法!兼容所有浏览器
查看>>
Atitit 常用比较复杂的图像滤镜 attilax大总结
查看>>
给大忙人看的Java核心技术笔记(1、基本的编程结构)
查看>>
C++设计模式:Template Method
查看>>
Exponential-time Algorithm
查看>>
廖---高级特性 生成器 迭代器
查看>>
C-字符串和格式化输入\输出
查看>>
虚拟化的一些基本常识
查看>>
Source Insight 源代码查看工具
查看>>
UML分类
查看>>
浅谈HTML5拖放
查看>>
解决free():invalid pointer:0x00000000000000155455 ****的问题。
查看>>
python3-password在输入密码时隐藏密码
查看>>
Dominator
查看>>