#关于编译原理#2.计算机的底层世界(1)

1.终极问题

第一个问题:“您考虑过如何实现1+1=2吗?”,100%的程序猿会立刻给出答案:

int a=1;

int b=2;

int c=a+b;

第二个问题:“a=1如何实现呢?c=a+b如何实现呢?”,估计只有50%的程序猿会心虚的回答:

大概是编译原理吧,词法分析、语法分析等等,但我不太记得细节了。

第三个问题:“如何让计算机继续执行编译原理的输出结果呢?计算机如何表达a=1?a+b?”,能够清晰回答的程序猿应该不会超过5%吧。

图1

2.了解计算机底层世界规则的重要性

Have you ever had a dream,Neo,that you were so sure was real? What if you were unable to wake from that dream? How would you know the difference between the dream world and the real world?

图1

每次重温黑客帝国中,墨菲斯对Neo的终极问题,都会情不自禁的神游一番。

很多程序猿如同黑客帝国中培育在营养液中的人类,周而复始的写着if/else,活在看似温和的幻境中,却从未思考过“if/else、a=1”这些基本符号是否真是上帝遗失人间的宝物。

这些“上帝遗失人间的宝物”就是计算机底层世界的规则与真理,这些宝物或许不会立刻给一家商业公司带来可观的物质回报,但,这不正是中兴与华为、联想与华为面对美国截然不同表现的根本原因吗?

3.符号/映射/运算

接下来,为各位读者提供进入计算机底层世界的三把钥匙。

(1)第一把钥匙:符号

符号是信息的表达形式。

人类心中的所思所想是“信息”本身,语言本质是一组“符号”。同样,计算机的世界有两个符号:0和1。0和1不是“信息”,例如:“1个苹果、2个桃子”,而是“符号”。

谈到符号,又必须谈到符号的表达。例如:表达“1”,中文的符号是“一”,英文的符号是“One”,阿拉伯数字的符号是“1”。计算机中如何表达符号呢?当电路处于“通,高电压”时就是符号“1”,当电路处于“断,低电压”时就是符号“0”。

谈到“高电压/低电压”,又涉及到一个细节的概念,叫做高阻态。因为“高”和“低”是模糊的表达,当电路彻底断开,电阻近似∞,也不能说就是“0”。高阻态的概念会产生一种新的电路元件,后续文章中再展开。

图2

(2)第二把钥匙:运算

运算是处理信息的手段。

在这里必须向这位老前辈乔治·布尔献上我们的膝盖,从初中的“XX密卷”开始,这位老前辈就已经在潜移默化的蹂躏着我们——布尔代数。

图3

或:+,0+0=0、1+0=1、0+1=1、1+1=1

与:·,0·0=0、1·0=0、0·1=0、1·1=1

非:',0'=1、1'=0

异或:⊕,0⊕0=0、1⊕0=1、0⊕1=1、1⊕1=0

同或:⊙,0⊙0=1、1⊙0=0、0⊙⊕1=0、1⊙1=1

布尔老先生定义了“与”、“或”、“非”、“与非”、“或非”、“异或”、“同或”等概念,然后就是下面这些运算律了(摘自百度百科):

1.结合律:(a+b)+c=a+(b+c) , (a·b)·c=a·(b·c).

2.交换律:a+b=b+a, a·b=b·a.

3.分配律:a·(b+c)=(a·b)+(a·c), (a+b)·c=(a·c)+(b·c)

4.吸收律:a+a·b=a, a·(a+b)=a.

5.幂等律:a+a=a, a·a=a.

6.德·摩根律(反演律):(a+b)′=a′·b′, (a·b)′=a′+b′.

德·摩根律是德·摩根(De Morgan,A.)发现的利用归纳法可得德·摩根律的一般形式:(a1+a2+…+an)′=a1′·a2′·…·an′, (a1·a2·…·an)′=a1′+a2′+…+an′。

德·摩根律提供了由乘转换成加,由加转换成乘的方法 [。

7.对合律(双重否定律):(a′)′=a.

8.互补律:a+a′=1, a·a′=0.

9.零一律(幺元律):a+0=a, a·1=a.

10.囿元律(极元律):a+1=1, a·

到这里,笔者并不是想突出布尔代数本身的细节,而是试图让读者宏观的理解:布尔代数本质上提供了一种适合电子电路实现运算的方法论。让我们稍微细化的体会一下一代一代的科学家/工程师总结出来的优美的电子电路模块:

与门:实现与运算(本文旨在串联相关知识体系,因此不赘述各类门电路细节)

图4

或门

图5

非门

图6

与非门、或非门

图7

异或门、同或门

图8

PS:上述图片纯手工绘制,比较原(粗)生(糙)态,有空得请美工小姐姐帮忙重新画个好看的

(3)第三把钥匙:映射

映射是符号与符号、符号与信息的双向映射。

举个例子:在复仇者联盟与灭霸的终极战斗中,奇异博士看见了若干条未来的时间线。其中有一条路可以打败灭霸——这就是“信息”,于是奇异博士举起了1根手指隐晦的传递着这条信息,这根手指就是“符号”。可是,这根手指到底表示了什么信息呢?一群超级英雄都不清楚,因为“信息”与“符号”的对应关系只有奇异博士明白。这就是“映射”

理解了映射,从这个例子里面还可以看到“映射”的一个辩证关系:符号设计的越复杂,解码越难。你看,想弄清楚奇异博士的一根指头与打败灭霸的映射关系让钢铁侠花了一集的时间。。。

图9

4.别急

笔者曾经也很迷恋“速成”,或许“速成”正是工程领域的功利性本质——最高效率、最低成本的为我所用。但,基础科学更多的需要抛弃“功利心”,冷静、严谨的仔细观察底层世界运行的本质。

未来笔者可能会用2~3篇的篇幅向读者诠释计算机底层世界的各种关键环节,希望与同路人共勉。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 8,977评论 0 13
  • 数据结构与算法 1.算法的有穷性是指( )。答案:A A)算法程序的运行时间是有限的 B)算法程序所处理的数据量是...
    织梦学生阅读 3,351评论 1 15
  • 选择题部分 1.(),只有在发生短路事故时或者在负荷电流较大时,变流器中才会有足够的二次电流作为继电保护跳闸之用。...
    skystarwuwei阅读 12,759评论 0 7
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,325评论 0 2
  • 1. 关于诊断X线机准直器的作用,错误的是()。 (6.0 分) A. 显示照射野 B. 显示中心线 C. 屏蔽多...
    我们村我最帅阅读 10,270评论 0 5