前言:
现在大家对“c语言按键程序”可能比较注意,姐妹们都想要学习一些“c语言按键程序”的相关文章。那么小编在网上搜集了一些对于“c语言按键程序””的相关资讯,希望各位老铁们能喜欢,兄弟们快快来了解一下吧!机电技术拼凑史 第7章
C位出道的C语言
——纪念前仆后继的程序猿们
攻城狮隶属哺乳纲食肉目,主要以肱滓(gong zi)、酱筋(jiang jin)、蹄蛏(ti cheng)等二次分配的低蛋白食物为生,常年以雄性群居为主,偶有雌性出没,多被奉为圣狮。软件攻城狮是机电工程狮的一个别属,俗称程序猿,雌性占比略高于攻城狮均数,以雄性谢顶综合征闻名于世,是攻城狮族类中非常重要的数字化攻击群体。本章将浅浅地缅怀一下程序猿们的最重要的觅食工具计算机语言和为此前仆后继的伟大的程序猿们。
人类总是运用智慧寻找命运的出口,本质虽没有意义,但并不代表人类自身的悲催和虚无……
最初的时候,凭借身体组成去拼搏,例如:手、脚、口等……
过了一些时间,创造性地俘获了工具,例如:刀、斧、弓、犁……
过了一段时间,尝试着一些比较省力的方法操纵工具,例如:风车、水车、畜力车……
过了一段时间,工具随着非人力硬件的操控下翩翩起舞,例如:唱片、蒸汽机、机械计算机……
又过了一些时间,人们发现电这个东西太美妙了,奴役了电就等于驯化了几乎绝对言听计从的超人,于是又软又贱的思维拓展出现了……
二十世纪三十年代,当电子计算机在襁褓之中嗷嗷待哺之时(详见<机电技术拼凑史 第4章 计算机的爸爸们引导人类发展进入高潮>),人类并没有特别好的办法驯化这别扭的新生命,只能通过最原始的机器语言对其循循善诱,碳基与硅基用0和1进行着最纯粹的沟通,打满各种类型孔洞的纸带是人类与机器互动的唯一介质。
机器语言的运算效率固然是最高的,可它对程序猿的要求是在太高了:首先,程序猿熟记所用计算机的全部指令代码和代码的含义;其次,程序猿得自己处理每条指令以及每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态;编出的程序全是二进制的指令代码,辨识困难还容易错,错了改就是对程序猿的凌迟。以至于在相当长的时间里雌性程序猿的数量远超雄性。这看似反人类的二进制机器语言是由伟大的编程祖师爷,德国攻城狮康拉德·楚泽(Konrad Zuse,1910年6月22日~1995年12月19日)在1938年发明。
1938年,楚爷在自己研发的纯机械式可编程计算机Z-1上,第一次采用了二进制数。这台钢铁雄心的计算机显得是那么的硬核:以数千片薄钢板作为存储介质的64位数纯金属存储器,在它1立方米的体积面前,固态硬盘显得如此渺小、廉价和低端;以细孔中移动的针指示钢板上0和1,以电影胶片穿孔输入程序,以数字键盘敲入数据,现在笔耕如难产的洒家只能悄悄顶礼膜拜。尽管祖师爷确实刚猛,但总也时运不济再加上二战颠沛流离,直到1962年,通用计算机编程语言的发明者的身份才得到认可,并获得8个荣誉博士头衔以及德国大十字勋章,也算是攻城狮翘楚楚爷的心灵藉慰吧。
发展是永恒的,尽管楚爷奠定了人机交互的基础,可终究是对程序猿的要求实在太高,只有少数万中无一的程序猿可以顺畅地领悟真髓,其他只能终其一生反复咀嚼晦涩的0/1,难有创新变异……
0/1程序猿的逻辑性和记忆力是超绝的,可高耸入云的门槛石注定了0/1程序猿的种群无法壮大。为了让人类最忠实的奴隶被更多的走狗驱使,程序猿们前仆后继,出卖着自己也出卖着伙伴,他们疯狂地奔向巅峰,也会随意地死在路程的两边,连最信任的伙伴也不见得会为他们殓葬,或许没空或许弄死自己的就是他们。
伟大的圣母必须在适合的时间出现,并不是因为她的自身伟大,而是因为人类需要她伟大……
凯瑟琳·布斯(Kathleen Booth,1922年7月9日~2022年9月29日)最早期的英国程序猿之一。圣母和她的拖油瓶老公在1947年~1953年造了三个孩子,ARC(自动中继计算机),SEC(简易电子计算机)和APE(X)C(通用电子(X)计算机)。尽管取名字的逻辑性不强,但她是汇编语言的发明者和传播者,尊称圣母。
1950年,伟大的圣母诞下老大后,在伦敦大学伯贝克学院开始尝试把原始的汇编语言注入老大ARC的体内,并为老大设计了汇编器和自动代码。
圣母为那些逻辑性和记忆力不够强却充满创意的未来程序猿们铺平道路,为他们设计助记符形式的计算机指令。伟大的她和颜悦色地向程序猿们解释现在称为指令当时叫订单的东西是如何通过加载到存储中的1和0来表示含义的,然后创造性地使用了助记符(Mnemonics)替代固定0/1组合,使得程序的可读性提高了23个数量级。为程序猿们她成为了圣母。
临了补充一句,圣母老公还真不是拖油瓶的。圣母主要弄软件,也就是编程;圣公主要弄硬件,也就是造电脑。
图4 圣母圣公协作图(网络图片)
随着时间的流逝,进入电气和信息时代以后,人类更加懒惰,对应的熵增也应该更快,那人类共同体就需要更多高效的生产力创造者,需要更多的新兴工种去实现提速增效,刚刚开始小批量试生产的程序猿们顺其自然地为了人类的宠儿。可圣母留下的汇编祭祀符仍然不够简洁明了。虽然可以兼顾效率和释义,虽然可以直观的看到硬件的分配,虽然是圣母呕心沥血之作,但是跟当世之鸟语还是有一些差距,终究也是天才与庸才之间的一道不算宽的鸿沟。可程序猿或者是攻城狮的最核心的灵魂是创造,是劳动者去堆砌人类生产力的能力,语法永远都只是程序猿们的工具。于是,添补鸿沟的造神运动正式开启了。
不论是楚爷0/1训诫还是圣母汇编符咒都是面向硬件的具体操作,这等于就要求程序猿必须对硬件结构及其工作原理了如指掌。如果程序猿们只需要掌握浅显的硬件知识,而把大部分精力投入到创新的软件思想表达上;硬件攻城狮们则把基础平台搭得又硬又快又持久,从分工上彻底分化软硬件攻城狮,那盖楼的房地产能做大做强,搞装修的包工头们一定也能赚得盆满钵满。
于是,与人类自然语言更接近、表述更直观、理解更简单的“高级”语言孕育而生。这种高级语言仿佛是开天辟地和无与伦比的,只有高高在上的人类共同体才能理解这象征奴隶和奴隶主之间的近乎完美的交互器的伟大。ABCDEF等等语言百花争艳,互相鄙视,确是人类自己的一道亮丽的风景线。
约翰·贝克斯(John W. Backus,1924年12月3日~2007年3年20日),浪子回头金不换的富二代,传奇的放下屠刀立地成佛的超级程序猿。
贝爷青年俊才,虽不是带着几十家丁欺男霸女的少东家,却也是家境殷实的花花公子。贝爷本能地继承厌学、好事、组团、妄言等恶性基因,安度了充实美丽童年,甚至小学旷课、中学旷课却始终能够顺利晋级,试想一下这纨绔子弟的家底能有多殷实。按贝爷的说法是:“学校里有趣的地方就是有那么多规矩你可以去违反。(The delight of that place was all the rules you could break)”碉堡了,庶民偶像。
好景不长,再嚣张的少爷也会有大爷不惯着。1942年,贝爷进入弗吉尼亚大学后,由于实在旷课太多,目中无人,学校还是顶住压力,在贝爷大一第二学期的时候,开除了贝爷。校园内锣鼓喧天、鞭炮齐鸣。
纨绔子弟怎会被校园“暴力”击垮,尚武的美帝国主义军营向来欢迎性格顽劣家中多金的少爷们,贝爷便顺利地浸入佐治亚州军事基地担任防空业务员。天赋异禀的贝爷很快被美帝军方送到匹兹堡大学学习工程预科,在学期间的能力测试中,贝爷又展示了出色的医学才能,于是又被送到了哈弗福德学院医学预科学医。
医不自医,贝爷被诊断出脑瘤,手术之后,贝爷似乎老实了很多,1945年他顺利进入纽约一家医学院。可能是手术的纠偏功能失效已过,在贝爷花了9个月的时间感悟到了“学校不鼓励思考,只是死记硬背”之后,贝爷退学了。1946年,再一次接受脑部手术后,贝爷退伍了。
在纽约,贝爷很孤寂。
才能始终是包不住的,贝爷迷上了数学。在他放下身段进入一家无线电技师学校之后迷上的,就因为一位技校老师让他计算电路特性,就因为计算很繁琐……于是贝爷无可救药地迷上了数学……老天爷还真从没公平过。
看成败人生豪迈,不过是从头再来,贝爷重进哥伦比亚大学学习数学。在毕业前,他从哥伦比亚大学所在地的曼哈顿晨边高地去到IBM公司麦迪逊大街的计算机中心。没人知道他为什么去那里,或许是家族的安排也或许是缘分,谁知道呢。贝爷与IBM的时任计算机主管托马斯·J·沃森攀谈甚欢,其实也就是共同聊了一些数学问题,贝爷当场入赘IBM。
1950年,春风得意的IBM程序员 贝爷为美帝国主义计算机的发展和繁荣一路小跑。
贝爷除了给纸带打孔编编程以外,还维护当年的顶级超算,大前年建成的SSEC。凭建成而不是制造,就能明白贝爷维护这台由一万多个真空管和两万多个继电器组成的计算机得有多累。这SSEC也是在贝爷的悉心呵护下,为阿波罗登月计划立下了汗马功劳。另外贝爷还第一个实现了用诺伊曼提出的比例因子存储和计算浮点数的程序——Speedcoding。
天妒英才,有时候就是说老天爷嫉妒攻城狮们挣太多,于是让最天才的攻城狮们革了所有攻城狮的命。
1950年之后,即使圣母的汇编符咒已经诞生,但根深蒂固的二进制码农思维和真正的猛士躬耕南阳,把当年程序猿的属性定位于专业攻城狮和数学家,工资不能封顶,贝爷曾站出来批判过自己的身份:当时程序猿的薪水已经接近于昂贵得无以复加的硬件成本。伟大的贝爷先天下之忧而忧,急资本家之所急,逐渐认识到高级语言是拉低编程这一劳作工具的使用成本的必要手段,是资本家获取更多具备更高剩余价值率的劳动个体的优秀原力,是普通攻城狮们为自己打造更漂亮镣铐的超级道具。于是,以回头浪子的身份思虑了许久之后,1953年,贝爷向IBM高层提交了一份备忘录,提出应该为新型的704计算机开发一种高级编程语言,以大幅降低所有研发当中最主要的成本——人力成本。当然,某些国有企业并不是。时任IBM应用科学部话事人的斯伯特·赫德(Cuthbert Hurd)很快就批准了这一计划。贝爷由衷地赞赏到:“He really knows how to do it”
1954年,贝爷集众家之所长,自觉非常无耻地代表了团队推出了第一个完全意义的高级编程语言FORTRAN。
看贝爷的圣旨,感没感觉就是普通的鸟语和普通的逻辑?虽然1959年IBM才推出了商用意义的FORTRAN编译器,但FORTRAN的划时代意义和无与伦比的打工人虹吸效应是几近同时的圣母符咒不能比拟的。FORTRAN标志着人类可以有人类自己的平庸之辈操控人类最忠诚的奴隶了,也标志着贝爷成为了最为臭名昭著的打工人镣铐派发机之一。以至于时任IBM公司顾问的真神·冯·诺依曼看到FORTRAN的策划后想到了图灵酱Short Code,倍感奚落和孤独,于是诘问贝爷说:“为什么除了机器语言之外,你还想弄点别的呢?”真神·冯·诺依曼有些时候非常保守,他甚至看不惯自己在普林斯顿的学生唐纳德 吉利斯(Donald Gillies)编写的类汇编程序,真神发现后甚至咆哮到:“这是在浪费宝贵的科学计算设备来干琐碎的杂事!”为了驱逐像老年牛顿、老年爱因斯坦那样的反动权威,贝爷在图灵奖的颁奖典礼上发表了著名的去中心化演说:“Can Programming Be Liberated From the von Neumann Style? ”(程序设计能脱离冯诺伊曼风格吗?)是的,贝爷办到了!他真实地把硅基与碳基生命之间的沟通桥梁搭建等能让普通人行走了;也让程序猿正式成为了一个工种,编程不再是数学家们的娱乐兼职工具,也不再是天才们化妆成为程序猿后与资本家们抢夺利润的筹码。
无数攻城狮背负了历史的职责,当贝爷吹响了集结号时,数百种高级语言在数十年间,黏附着攻城狮们的血和泪逐一迸发、璀璨、凋零……
1958年,国际算法符号研讨会(International Algorithmic Language Committee)发布了第一种采用“结构化编程”理念的编程语言——A语言ALGOL 58。彼得·诺尔(Peter Naur)、弗里德里希·鲍尔(Friedrich L. Bauer)、约翰·贝克斯(John Backus)、艾伦·帕利斯(Alan Perlis)、莫里斯·威尔克斯(Maurice Wilkes)等圣佛悉数登场,在华丽的阵容中赫然立有贝爷之威名,也令A语言成为了第一个被国际通用的编程语言。
1969年,贝尔实验室里爱玩游戏的肯·汤普森(Ken Thompson),为了在当时实验室唯一空闲的计算机DEC PDP-7上编写操作系统用于打游戏,开发了大名鼎鼎的B语言BCPL,那个用于打游戏的操作系统叫做UNIX。所以说游戏宅数学好真的很顶。
1972年,同样是贝尔实验室里的游戏宅——丹尼斯·里奇(Dennis Ritchie),跟着阿汤哥一起玩游戏,业余时间顺带优化一下B语言,改着改着便出现了划时代的嵌入式系统的优选语言,也是无数技术宅顶礼膜拜的“New B”——C语言。
当年丹哥与另一位传奇布莱恩·克尼汉(Brian Kernighan)在《Communications of the ACM》杂志上发表了一篇论文,介绍了C语言的设计和实现。这一系列操作标志着C语言的正式诞生,丹哥、阿汤哥和大汉同样的伟大和传奇,他们对软件大众化和程序猿奴隶化同样作出了巨大的贡献,但是还是以丹哥为主,毕竟这篇文章里丹哥有主角光环。
丹尼斯·里奇(Dennis MacAlistair Ritchie,1941年9月9日~2011年10月8日)C语言的创造者、Unix操作系统的关键开发者,对计算机领域产生了深远影响。丹爸是贝尔实验室的交换系统攻城狮,作为二代狮王的丹哥从小天资聪慧,始终是“别人家的孩子”。哈佛学习时(人家确实能叫做学习),丹哥在Univac I(UNIVersal Automatic Computer通用自动计算机)的工作原理讲座上渡劫成功,立下志向:作人民的攻城狮,为人类编程。在校期间丹哥已经可以帮助其他科学家一起开发更先进的计算机系统和软件,还跟一些大学和私营企业的科学家共同创作了能够同时处理1000用户24小时运行的系统。什么叫做“别人家的孩子”?
1967年临毕业时,丹哥作了一个违背祖宗的决定,放弃本专业物理学,不再当二手的科学家,转职为极品程序猿,从此计算机成为了丹哥的终生伴侣。进入他老豆的老单位贝尔实验室后,与阿汤哥就干起了前面所述的那些没羞没臊的事情。
1983年,因为丹哥与阿汤哥发展了通用操作系统理论并开发了UNIX操作系统,共同获得了图灵奖。而丹哥的图灵奖论文题目为千古名篇《对软件研究的反思》(Reflections on Software Research)。
1990年,因为丹哥与阿汤哥“创造UNIX操作系统和C程序设计语言”而获得了IEEE颁发的IEEE汉明奖。
1997年,丹哥获得计算机历史博物馆研究员奖。
1999年,丹哥与阿汤哥共同获得了由美帝大统领比尔·克林顿颁发的美国国家技术与创新奖章。
2005年,丹哥获得美国工业研究院授予的IRI成就奖,以表彰他对计算机科学技术做出的贡献,以及UNIX操作系统对社会的广泛影响。
2011年,丹哥与阿汤哥共同获得了日本国际奖。
2011年10月12日,丹哥在位于美国新泽西州的家中病逝,享年70岁,在异次元指导着洒家的嵌入式……也永远享受着后辈猿类的祭祀和供奉……
现今洒家仍在使用着丹哥所赐的谋生工具享受着被剥削的快乐,也不敢再说些什么了。作为最伟大计算机语言C语言和最伟大操作系统UNIX的创造者,给盖茨、乔布斯之流作肩膀的巨人,丹哥的自负和自信是无语伦比的,以丹哥的一句世界名言作为结尾:“UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity”(“UNIX基本上是一个简单的操作系统,但你必须是一个了解简单性的天才”)
参考文献
百度百科.丹尼斯·麦卡利斯泰尔·里奇[N/OL].百度.
贾群.C语言之父丹尼斯·利奇的传奇一生[N/OL].搜狐.
TechApple.com 編輯部.Assembly Language 的誕生:最早期的 ARC 組合語言之母 Kathleen Booth[N/OL]. TechApple.
Turingbook.一位回头浪子的传奇人生[N/OL].CSDN.
朱扬清, 罗平. 计算机技术及创新案例[M]. 中国铁道出版社, 2015.
标签: #c语言按键程序