你女网友只懂中文(源代码),你只懂英文(机器码/CPU指令),现在你俩要搞对象,怎么办?我假设你已经看过一些搜索文章了,但还是觉得不直观,所以能搜到的我就不写了。
女网友写下了自己的:
要求.py:
二号男嘉宾
我要吃好的
我要穿好的
我要住好的
我不会做饭
我不会家务
我脾气不好
由于你们中英不通,直接是无法交流的,所以必须要有一个翻译官(python解释器),这是:
1)python解释器的执行流程:
二号男嘉宾 => SLOT #2
我要吃好的 => FOOD +10W
我要穿好的 => DRESS + 10W
我要住好的 => HOUSE + 100W
我不会做饭 => ELEME + 7W
我不会家务 => BABYSITTER + 3W
我脾气不好 => PSYCHOLOGIST + 10W
翻译官将中文翻译成了你能懂的英文(CPU 指令),这是你的执行流程:
SLOT #2 => ACK
FOOD +10W => +10W
DRESS + 10W => +10W
HOUSE + 100W => +100W
ELEME + 7W => +7W
BABYSITTER + 3W => +3W
PSYCHOLOGIST + 10W => +10W
每接到一次指令,你就去ATM取一次钱,一共需要取6次钱;
然后你将继续等待对方开出的条件,进入Idle状态,直到翻译将新的指令给你,直到条件开完毕,而你又能一直从ATM里面取出钱来,然后你们就幸福的在一起了。
2)JIT优化。
你应该看出来了,Python解释器(翻译官)每次传递一行指令,但要求其实都差不多,所以JIT这时候就派上用场了,第一次的过程其实是一样的,但是你的女网友发现你没有回复她的时候,又说了一遍,还说了第三遍,这个时候如果有JIT(比如Pypy),那么从第二次开始,翻译官给你的就不再是一行一行的指令了,而是:
+10W + 10W + 100W + 7W + 3W + 10W
这时候,你只需要去一次ATM,一次性取出需要的这些钱,你们就能幸福的在一起了。
3)什么是lib呢?
其实你的女网友说要吃好的,住好的时候,没有其他辅助的时候,没有人知道这个应该怎么量化成10W, 100W的,库就是干这个的,你只需要
import FOOD
moneyFood = FOOD.getTotal(Nice)
这个Food库就会帮你算出一个常用的价格了,要不然你就需要重复造轮子,写上三天三夜然后得出一个量化值;
4)什么是跨平台呢?
跨平台其实就是CPU的指令集不太一样,你让懂ARM的翻译官来翻译给Power 7听,无论如何都听不懂的,比如你去ATM里面取钱这个指令翻译成不同CPU指令就是不一样的:
x86:神昏证,应喊卡,本人,余额足够
power7: 爹,我,钱,140W
A11: 秦始皇,封侯,打钱
ARM:果照,30%利率,无敌呀饭款,30秒到站;
只要有对应的解释器,你总是能取到钱
5)顺提一下编译型:
就是翻译官(此处应该叫编译官)把 你女网友的 要求.py 直接重新找了一张A4纸,上面写着:
$$$$$$$$
这样每次你女网友拿着这张纸到x86窗口的ATM直接就能办理了,注意,仅此窗口,别家店不可以用的,咦,好像少了什么人?也是,如果都能直接跟ATM沟通了,谁还需要男盆友呢?