课时12:编译型语言和解释型语言
摘要:今天为大家简单介绍计算机高级语言,如C、C++、JAVA、JavaScript、Python等,指出任何语言被计算机执行前都需转换为机器码。根据转换时机不同,高级语言分为编译型语言和解释型语言,今天的内容主要分为以下三个部分。
1.编译语言
2.解释型语言
3.两者的优缺点
前言:刚刚我们介绍了计算机语言,需要注意的是,今后我们学习的全是高级语言,比如C、C++、JAVA、JavaScript、Python等。高级语言之间也存在一些区别,其中一种分类是编译型语言和解释型语言。我们知道,计算机只能识别二进制编码,也就是机器码。所以,任何语言在被计算机执行之前,都必须先转换为机器码。例如,无论C、C++、JAVA、JavaScript还是Python等语言,想要执行,最终都得转换成类似“1010”这样的机器码。比如写一个 print("hello") 的函数,也必须转换为机器码,计算机才能执行。这意味着,任何语言都需要进行这样一个转换步骤。根据转换时机的不同,语言可分为两大类:编译型语言和解释型语言。
01. 编译语言
编译型语言,最典型的是C语言。其特点是在代码执行前,先将代码编译为机器码,然后把机器码交给计算机执行。例如,编写一个C语言程序,保存为文件a,这个文件a(即源码)无法直接被计算机执行,需要通过C的编译器将文件a编译成文件b,文件b就是编译后的机器码,只有机器码文件b才能被计算机执行。也就是说,编译型语言都需要经过编译这一步骤才能正常执行。
解释型语言有很多,比如Python、JavaScript、JAVA等都属于解释型语言。
02. 解释语言
解释型语言有哪些特点,又和编译型语言有何不同呢?解释型语言不会在代码执行前进行编译,而是在执行的同时一边执行一边编译。例如,编写一段源码 a ,对于编译型语言,需要先将源码编译,生成新的文件,然后执行新文件;而解释型语言无需编译,直接把源码交给解释器,由解释器进行解释执行。以C语言为例,它作为编译型语言,会把整个代码编译成机器码,再将机器码交给系统执行。像Python这样的解释型语言,则不需要编译,写完代码后直接交给解释器,解释器一边执行一边转换。
可以用一个形象的比喻来理解二者的区别:编译型语言如同去饭店点菜,比如点鱼香肉丝、宫保鸡丁,这些菜是提前做好的,直接端上桌就能吃,就像编译好的代码直接交给计算机执行;解释型语言则像吃涮羊肉火锅,肉是生的,需要自己一边涮一边吃,即代码由解释器一边转换一边执行。
03. 两者的特点
它们各自的特点如下:
- 编译型语言:
- 执行速度快:因为代码已提前编译成机器码,就像炒好的菜端上来就能吃,相比涮肉要快。
- 跨平台性差:以炒菜为例,菜炒好后端上来,口味已固定,可能无法满足不同人的口味需求。同理,编译型语言是针对特定硬件和系统编译的,比如在英特尔CPU或Windows系统上编译的代码,可能无法在AMD CPU或Linux系统上使用。若要跨平台,就需要针对不同系统重新编译代码。
- 解释型语言:
- 执行速度慢:由于解释器要一边解释一边执行代码,多了编译转换的步骤,如同涮羊肉需先涮再吃,相比直接吃菜要慢。不过,随着系统运行速度加快,以及网络型应用中网速的限制,这种速度差异基本体现不出来。
- 跨平台性好:解释型语言是源码通过解释器执行,解释器在不同系统中会将源码解释成对应系统的代码。比如在Windows系统中,解释器会将源码解释成Windows代码执行。就像吃火锅,想吃辣就蘸辣调料,不想吃辣就不蘸,可根据需求灵活调整。
如今,解释型语言应用更为广泛,如Python、JAVA等;C语言等编译型语言则多用于对性能要求较高的场景。区分二者的关键在于,编译型语言需先编译再执行,而解释型语言直接由解释器执行源码。今天的分享到此结束,谢谢大家!
 
  
  
  
                             
                 
                