很多人刚接触编程时,常把“源代码”和“程序”混为一谈。其实它们就像菜谱和做好的菜,虽然有关联,但完全不同。
源代码是写给人看的
源代码就是程序员用编程语言写的一堆文本文件。比如你用Python写了个计算器功能:
def add(a, b):
return a + b
print(add(5, 3))
这段文字你能看懂,计算机却看不懂。它只是文本,就像你记在笔记本上的购物清单,还不能直接“执行”。
程序是给机器运行的
程序是源代码经过编译或解释后生成的、能被计算机直接运行的文件。比如你在Windows上双击一个 .exe 文件,或者在手机上打开一个App,那都是程序。
还是刚才那个Python例子,当你在命令行输入 python calculator.py,系统会“解释”你的源代码,把它变成机器指令一步步执行,这时候才真正变成了“程序”在跑。
一个像设计图,一个像建成的房子
你可以把源代码想象成建筑师画的设计图,上面标着房间怎么布局、用什么材料。而程序就是按照这张图实际盖出来的房子,人可以住进去。
没有设计图,很难建好房子;没有源代码,也很难做出程序。但房子建好了,你不一定要天天盯着图纸生活。
有些程序不需要传统意义上的“编译”
像Python、JavaScript这类语言写的源代码,很多时候并不提前编译成独立程序。你写完就能直接运行,看起来“源代码=程序”,其实背后有解释器在实时翻译。
比如你在网页里写一段JS:
console.log("Hello, 网络宝典");
浏览器会当场把它转成操作,这过程就像有个“翻译官”站在旁边一句句念出来。
修改难度不一样
源代码可以随便改,打开文本编辑器就能删删补补。但程序文件(比如.exe)一旦生成,你想改就得回过头去改源代码,再重新生成一次。
这就好比你不能直接在墙上涂改电路走向,得先改设计图,再请电工重装。