计算机语言的发展史
1.首先要知道什么是自然语言。自然语言是我们人类交流的语言,包括汉语、方言、日语、英文、韩语等。自然语言能够承载的信息非常丰富,越是高级的编程语言越接近于自然语言。不同的自然语言,有其独特的语法规则。这些年,计算机科学家们一直研究如何能够让计算机更好的识别、理解、模拟自然语言,这是人工智能的一个研究方向领域。<br>
<br>
2.汉语的基本组成单位是偏旁部首,英语的基本组成单位是26个字母,一个道理。<br>
3.为了让大家能容易理解,我们把计算机拟人化一下。<br>假设要让计算机把11和22进行相加,编程人员需要对计算机“说”:“001001001110001111001。”计算机就明白啦,原来是让我把11和22进行相加。<br>后来大家觉的这样太麻烦了,人类就是这样,因为嫌上楼麻烦,发明了电梯。因为嫌走路麻烦,发明了汽车,火车,飞机。<br>对计算机讲机器语言太麻烦了,还容易出错,万一多输入了一个0或者少输入了一个1,那意思可能完全变了。研究计算机的前辈大牛们觉得机器语言太不好用了,也不知道折腾了多久,捣鼓出了汇编语言。如果用汇编语言对计算机说,把11和22进行相加,那就容易多了。<br>
<br>
4.ax是计算机内部一个存数字的“小盒子”,它有一个专业的名词叫做“寄存器”,有没有想到超市里面临时存东西的柜子,一个道理。<br> 但计算机理解不了汇编语言,因为计算机只懂机器语言。所以,大牛们又设计了一种程序,叫做“汇编器”。<br> 汇编器相当于一个翻译,把人类写好的汇编代码翻译成机器语言,这样子计算机就听懂了。<br> 汇编语言的每一行语句都和机器语言相对应,所以汇编语言,我们可以理解成人类能够直接看懂的“机器语言”。这个过程听起来简单,但其实非常不简单。
5.但人类还是嫌麻烦,能不能更简单一点。<br>于是又设计了一些编程语言,我们就拿其中的C语言做代表吧。<br>
<br>
6.那计算机自然就更听不懂了,于是前辈们又设计了一种程序,叫做“编译器”。<br>编译器负责把高级语言翻译成汇编语言。汇编器再把汇编语言翻译成机器语言。<br>那么高级语言不能直接转换为机器语言吗?为什么要先用编译器,再用汇编器呢?<br>从技术上的确是可以实现的,但不是最优的解决方案,这涉及到编译原理的内容。<br>
7.机器语言是被设计出来的,只能使用0和1.但不同的公司设计的机器语言标准不一样。<br>让计算机把两个数相加:<br>
<br>
8.那么一个程序如果使用A公司的汇编器生成的机器指令,就无法在B公司的机器上运行。自然而然就诞生了一些协会,或者有权威的机构企业为了避免让这种事情发生,会制定一些行业设计标准。这些行业设计标准要求大家设计机器语言按照标准来,不要乱定义,和谐是人类一直追求的事情,但有时候为了赚钱,总有人会破坏和谐。
x86架构和Arm架构就是两种标准指令集(机器语言)的编号缩写<br>
9.想象一下你买的是联想电脑笔记本,你朋友买的是戴尔笔记本。<br>但是两台电脑的USB口大小不一样,你的U盘只能插到指定的笔记本上,那是一件多么糟糕的事情。<br>
10.当然,慢慢的,计算机不仅仅局限于计算了,当可以处理简单的文字,图片信息的时候。人类开始考虑,能不能让计算机联网,信息共享传输,有了这个脑洞之后,后来大牛们就把互联网就捣鼓出来了。<br>
11.随着科技进步,手机、嵌入式等各种电子设备诞生包括网站这个名词概念的诞生,为了应付不同的行业需求,也诞生了许多相关产业。在这个过程中,发明了各种各样的编程语言解决这些需求,当然也有各种各样的硬件厂商,CPU,显卡,鼠标,显示器,键盘,打印机,扫描仪,音响,路由器……<br>
编程语言也是被发明出来一个接一个的<br>
<br>
有了操作系统、数据库……<br>
<br>
但这个过程是非常艰难,不容易的,花费了很多智商顶尖科学家的脑力才有了我们今天的计算机技术。<br>
计算机语言的分类
机器语言(Machine Language)
汇编语言(Assembly Language)
高级语言(High-level Programming Language)
<br>
几种常见高级编程语言的了解<br>
C、Java、C++、C#<br>
<ul><li>所有语言都离不开C语言抽象出的顺序、分支以及循环结构</li><li>广泛来讲,C可以看做Java、C++、C#三种语言的源语言</li><li>语言诞生先后顺序,C、C++、Java、C#</li><li>面向过程:C;不完全面向对象:C++;面向对象:Java、C#</li><li>C++早期一般看做C语言的扩展,不过现在它已经不只是扩展而被认为是一门新的编程语言</li><li>Java的底层(运行时库)基于C开发,但并不依赖C</li><li>C#是由微软开发,官方称其继承和吸取了Java,一般都认为C#是Java的翻版</li><li>C、C++比Java更接近底层,Java的运行效率不如这两者,但具备相当重要的跨平台特性,C#是‘速度更快’的Java</li><li>C语言诞生于1972年,由美国贝尔实验室的丹尼斯·里奇设计,其被广泛用于底层开发,几乎可以应用到程序开发的任何领域(应用软件、嵌入式、服务器、设备驱动程序……)</li><li>C++诞生于1983年,由比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup)实现,常用于系统开发、引擎开发等领域,还包括网络软件以及科学计算;</li><li>Java诞生于1996年,詹姆斯·高斯林(James Gosling)发明了它,能开发桌面应用、web应用、移动应用及嵌入式、分布式系统……</li><li>安德斯·海尔斯伯格(Anders Hejlsberg)2001年重新发明了Java,并将其称为C#,因为C#只被微软自己的操作系统支持,所以用于windows应用,web应用开发</li></ul>
Python
<ul><li>Python诞生于1991年,由吉多·范罗苏姆(Guido van Rossum)发明</li><li>Python是一种面向对象的动态类型语言,最初被用于编写自动化脚本,但随着版本的更新和新功能的添加,越来越多的被用于大型项目开发</li><li>应用领域包括但不限于web和Internet开发、科学计算和统计、教育、桌面开发、软件开发、后端、自动化办公及运维、数据分析及可视化、数据挖掘、深度学习以及人工智能</li></ul>
HTML/CSS/JavaScript
<ul><li>HTML/CSS/JavaScript是Web前端的三大基石</li><li>HTML(Hyper Text Markup Language),超文本指页面中可以包含图片、链接、音乐、视频及程序等非文字元素(HTML5)</li><li>CSS( Cascading Style Sheets ),层叠样式表是用来控制html页面中元素进行像素级的排版以及修饰元素(CSS3)</li><li>JavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。在html页面中用来增加动态内容(例如轮播图(当然轮播图用CSS3也可以实现),验证数据等)</li></ul>
SQL、NOSQL
<ul><li>结构化查询语言(Structured Query Language),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统</li><li>数据库分为关系型数据库和非关系型数据库</li><li>关系型数据库管理系统代表:MySQL、SQL Server</li><li>NOSQL代表:MongoDB、Redis</li></ul>
其他
<ul><li>PHP是一种常用于web应用程序和后端开发的脚本语言</li><li>Ruby是一种开源的服务器端脚本语言</li><li>R是用于统计分析、绘图的语言和操作环境</li><li>Scala主要用于大数据开发</li><li>GO语言主要用于开发高性能分布式系统开发领域,例如游戏服务端</li></ul>