打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
简谈计算机和编程语言的发展史

要说什么是编程语言?

我们先来说一下什么是自然语言。

自然语言是我们人类交流的语言,包括汉语、方言、日语、英文、韩语等。

自然语言能够承载的信息非常丰富,越是高级的编程语言越接近于自然语言。

不同的自然语言,有其独特的语法规则。

这些年,计算机科学家们一直研究如何能够让计算机更好的识别、理解、模拟自然语言,这是人工智能的一个研究方向领域。

人类发明计算机的时候,根据计算机的特性为它设计了最早的计算机语言——机器语言 这门语言的组合很简单只有0和1两个数字,也是计算机会的唯一一门语言。

汉语的基本组成单位是偏旁部首,英语的基本组成单位是26个字母。

一个道理。

为了让大家能容易理解,我们把计算机拟人化一下。

假设要让计算机把11和22进行相加,编程人员需要对计算机“说”:“001001001110001111001。”

计算机就明白啦,原来是让我把11和22进行相加。

后来大家觉的这样太麻烦了,人类就是这样,因为嫌上楼麻烦,发明了电梯。

因为嫌走路麻烦,发明了汽车,火车,飞机。

对计算机讲机器语言太麻烦了,还容易出错,万一多输入了一个0或者少输入了一个1,那意思可能完全变了。

研究计算机的前辈大牛们觉的机器语言太不好用了,也不知道折腾了多久,捣鼓出了汇编语言。

如果用汇编语言对计算机说,把11和22进行相加,那就容易多了。

mov ax,11add ax,22

ax是计算机内部一个存数字的“小盒子”,它有一个专业的名词叫做“寄存器”,有没有想到超市里面临时存东西的柜子,一个道理。

但计算机理解不了汇编语言,因为计算机只懂机器语言。

所以,大牛们又设计了一种程序,叫做“汇编器”。

汇编器相当于一个翻译,把人类写好的汇编代码翻译成机器语言,这样子计算机就听懂了。

汇编语言的每一行语句都和机器语言相对应,所以汇编语言,我们可以理解成人类能够直接看懂的“机器语言”。

这个过程听起来简单,但其实非常不简单。

但人类还是嫌麻烦,能不能更简单一点。

于是又设计了一些编程语言,我们就拿其中的C语言做代表吧。

11+22

那计算机自然就更听不懂了,于是前辈们又设计了一种程序,叫做“编译器”。

编译器负责把高级语言翻译成汇编语言。

汇编器再把汇编语言翻译成机器语言。

有的朋友开始忍不住提问了:高级语言不能直接转换为机器语言吗?为什么要先用编译器,再用汇编器?

这个问题提的非常有水平,从技术上是可以实现的,但不是最优的解决方案,为什么?将来学完编译原理就知道了。


机器语言是被设计出来的,只能使用0和1.

但不同的公司设计的机器语言标准不一样。

让计算机把两个数相加:

A公司设计的机器指令是:1000B公司设计的机器指令是:0001

那么一个程序如果使用A公司的汇编器生成的机器指令,就无法在B公司的机器上运行。

自然而然就诞生了一些协会,或者有权威的机构企业为了避免让这种事情发生,会制定一些行业设计标准。

让大家设计机器语言的是参考某个标准去设计,不要乱定义,和谐是人类一直追求的事情,但有时候为了赚钱,总有人会破坏和谐。

x86架构和Arm架构就是两种标准指令集(机器语言)的编号缩写。

想象一下你买的是联想电脑笔记本,你朋友买的是戴尔笔记本。

但是两台电脑的USB口大小不一样,你的U盘只能插到指定的笔记本上,那是一件多么糟糕的事情。

(不过USB马上也要淘汰了,大家插USB口的时候,有没有一种感觉?第一次插,总是插不进去)

第一图是现在的USB口,第二张图是这几年开始流行的USB-type-C接口,正反插都可以插入。

手机充电器也会慢慢全部改成第二种接口。

在圣经中记载了一段历史,起初上帝创造人类,语言是相通的,但由于人类太过于骄傲,要合力造巴别塔,上帝让人类说不同的语言,使人类无法沟通,计划因此失败,从此各散东西。

此事件,为世上出现不同语言和种族提供解释。

直到今天,我相信全球统一化编程语言,是很多人曾经心中的梦想或者现在正在怀揣的梦想。

以上只是为了帮助大家理解编程语言,用拟人化的思维极其简单的给大家说了一下原理。

慢慢的,计算机不仅仅局限于计算了,当可以处理简单的文字,图片信息的时候。

人类开始考虑,能不能让计算机联网,信息共享传输,有了这个脑洞之后,也不知道过了多久,大牛们就把互联网就捣鼓出来了。

随着科技进步,手机、嵌入式等各种电子设备诞生包括网站这个名词概念的诞生,为了应付不同的行业需求,也诞生了许多相关产业。

在这个过程中,发明了各种各样的编程语言解决这些需求,当然也有各种各样的硬件厂商,CPU,显卡,鼠标,显示器,键盘,打印机,扫描仪,音响,路由器……

编程语言那也是被发明出来一个接一个的。

Python、Php、Html、Css、Javascript、.Net、Delphi……截止今天,人类历史上有过几百种编程语言,今天能够活下来没有被淘汰的说明的确有市场还需要它。

有了操作系统、数据库……

随着代码量越来越多,开发软件难度越来越大,有了软件工程,代码管理,多人协同开发,设计模式,框架、类库等概念,目的都是一个,为了简化开发难度,保证开发质量,管理开发进度而诞生的相关技术。

但这个过程是非常艰难,不容易的,花费了很多智商顶尖科学家的脑力才有了我们今天的计算机技术。

上述任何一个专业名词,都可以写几千页的书去详细描述,学无止境,浩瀚如烟,博大精深等这些词语,大家以后随着接触计算机知识越来越多,越觉的人是多么渺小卑微。

有些行业,年轻的时候学习的知识,老了还能用得上,只要坚持下去,就会厚积薄发,经验丰富,越老越吃香。

但计算机行业,有些技术淘汰的很快,你可能还没学透彻,才使用了没几年,某个技术就被淘汰了,如果追求这些皮毛的技术,经验就不会持续叠加,随着年老,经验和记忆力衰退,拼不过年轻人了,中年危机……

这个行业,有深度有深度,要广度有广度。

就拿设计来说,有建筑设计,工业设计,程序设计,动画设计。建筑设计又能分为桥梁设计、古建筑设计,现代建筑设计……动画设计分为2D,3D各种,我不清楚的专业术语……程序设计也能给你分出很多来……

大家千万不要东学学,西学学,最后都是半桶水,先挑一个领域深入,到了一定的程度,再考虑相关领域的拓展,也就是广度的发展。

说到这里,其实不光是计算机行业,医学行业,生物行业,天文学,物理学,机械学都是如此。

有的人就觉的,学的东西也太多了,有一种非常绝望的感觉!

不要怕,活在当下,怕什么真理无穷,进一寸有一寸的欢喜。

不要跟别人比较,跟自己比,今天的自己是不是比昨天的自己优秀了一点点。

每天进步一点点,这也是我为什么一开始就强调,必须把心安静下来,否则走不远,即使呆在这个行业,想要走纯技术路线也是不现实的。

而且单纯的走技术路线,要获得比较高的成就还是比较难的,我们具体点说,要赚很多钱,有点难。

在这个讲究人际关系,情绪管理、为人处世的时代,职业的发展路线也是多元化的,结合自己的性格,找到适合自己的路,才是王者之道。

摘选自《极客编程》之《从零学编程》系列教程之《计算机原理》之《简谈计算机》

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
选择学什么计算机语言来编程,先了解语言通常是如何开发出来的
浅谈汇编器、编译器和解释器
让小朋友懂一点计算机(八)|编程语言的发展历史
所有的编程语言最后会编译成C,再编译成汇编,最后落实到硬件操作上吗?
计算机语言
机器语言与汇编语言(9)王雷 20090830218 信息安全二班
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服