什么是编译型语言?什么又是解释型语言?

0.简陋的思维导图

在这里插入图片描述

1.程序运行的过程(先翻译再执行)

在此之前,我们得清楚一个程序的运行包括两个方面
a)翻译:翻译的目的是生成另外一套能被计算机直接执行的代码
b)执行:执行的意思就是计算机执行这个生成的目标代码

2.重点看看翻译

翻译包含两种:
第一种,A代码变成B代码,B代码可以被计算机执行,这个过程一步到位就是编译
第二种,A代码变成B代码,但是B代码不能直接被计算机识别,是个半成品,需要在进行翻译成可以被计算机直接执行的目标代码
编译后执行就是

3.java语言是编译型语言?还是解释型?

java这个语言很非凡,你可以说他是翻译型语言,也可以说不是
首先我们来看看java程序的运行过程
首先是java源程序翻译成字节码文件,再字节码文件翻译成目标文件。其实第一步,其实是一个编译的过程,第二步,是一个解释的过程。说他是解释型语言是因为他确实不能编译完,直接执行,需要jvm解释才能执行,但严格意义上来讲,java语言,不能说是编译型语言也不能说是解释型语言,而是两者都包含。

最后引用庆哥的一句话:
其实现在不能再那么肯定说什么什么语言是解释型还是编译型,毕竟技术在进步,比如大家都觉得C语言就是编译型语言,使用gcc编译,但是实际上在TCC上可以直接解释执行。再比如PHP真的就是解释型语言嘛,Facebook很早就搞过一个hiphop编译器,可以将PHP编译成C++再编译成二进制。

猜你喜欢

转载自blog.csdn.net/m0_50991874/article/details/122551229
今日推荐