前言:
什么是计算机?计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。
计算机之父
介绍计算机语言发展之前,我们先了解一下 下图中的人物:
约翰·冯·诺依曼(John von Neumann,1903年12月28日-1957年2月8日),美籍匈牙利数学家、计算机科学家、物理学家,是20世纪最重要的数学家之一。冯·诺依曼是罗兰大学数学博士,是现代计算机、博弈论、核武器和生化武器等领域内的科学全才之一,被后人称为“现代计算机之父”、“博弈论之父”。
冯·诺依曼一生成就显著,对于计算机的出世贡献巨大。计算机基本工作原理是存储程序和程序控制,就是由他提出的,他被称为“计算机之父”。如今,计算机的普及非常广泛,基本上每家每户都有一台计算机(电脑)。计算机给人类的生活带来了新的变化,对于社会上的各个领域都有一定的影响,作用范围广,推动了社会技术的持续发展。
对于我们这些通过用计算机编写代码的程序员来说,计算机之父冯·诺依曼,他的丰功伟绩,应该被我们所知晓,记住的。
如果想要了解更多的小伙伴,请前往约翰·冯·诺依曼_百度百科进行查看
了解了计算机之父冯·诺依曼后,下面就来说说计算机语言的发展史。
计算机语言的发展历程可以简单划分为如下几个阶段 :
机器语言 ---> 汇编语言 ---> 高级计算机语言
第一代语言:机器语言
机器语言是指一台计算机全部的指令集合。
电子计算机所使用的是由"0"和"1"组成的二进制数,二进制是计算机的语言的基础。计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由"0"和"1"组成的指令序列交由计算机执行,这种计算机能够认识的语言,就是机器语言。使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。
因此程序就是一个个的二进制文件。一条机器语言成为一条指令。指令是不可分割的最小功能单元。而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。
小结:
1. 计算机的基本计算方式都是基于二进制的方式
2. 这种二进制代码是直接输入给计算机使用,不经过任何转换
第二代语言:汇编语言
为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用"ADD"代表加法,"MOV"代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。
汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。
汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
小结:
1. 解决人类无法读懂机器语言的问题
2. 指令代替二进制
目前应用:逆向工程,机器人,病毒等
第三代语言:高级语言
高级语言有:BASIC(True basic、Qbasic、Virtual Basic)、C、C++、PASCAL、FORTRAN、智能化语言(LISP、Prolog、CLIPS、OpenCyc、Fazzy)、动态语言(Python、PHP、Ruby、Lua)等等。高级语言源程序可以用解释、编译两种方式执行,通常用后一种。
高级语言是绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。由于省略了很多细节,所以编程者也不需要具备太多的专业知识。 高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
小结:
1. 大体上分为面向过程和面向对象两大类
2. C语言是典型的面向过程的语言。C++,Java是典型的面向对象的语言。(面向过程,面向对象是相辅相成的,在面向对象的过程中也离不开面向过程)
接下来我们简单聊聊一些常见的语言:
C语言
C语言非常重要,可以说是现代语言的鼻祖,很多语言与C语言有着千丝万缕的联系,C语言又有汇编语言的特点,也有高级语言的特点,比较复杂。C语言主要用于较低层的开发,可以编写一些操作系统,应用系统,工作系统设计等,编写一些不需要依赖计算机硬件的应用程序。C语言有着很强的处理数据的能力,很多领域都有涉及。
C++
C++相当于C语言的升级版,它进一步完善并继承了C语言。C++是一个面向对象的编程语言。(桌面应用软件,浏览器,基础软件和高级语言的运行时环境,游戏服务器后台)
Java
Java是基于C++而演变的一种语言。Java从C++中借用了大量的语法,它丢弃了很多C++的复杂功能,从而形成一门紧凑而易学的语言。Java强制面向对象编程,要想在Java里写非面向对象的程序非常困难。(用于服务器的开发)
C# (C Sharp)
C#是一种精确、简单、类型安全、面向对象的语言。其是.Net的代表性语言。什么是.net呢?按照微软总裁兼首席执行官Steve Ballmer把它定义为:.net代表一个集合,一个环境,它可以作为平台支持下一代Internet的可编程结构。(软件,网站的开发)
当然还有其他的高级语言:Python(大数据分析,人工智能),PHP(快速构建一个网站),JavaScript(创建动态更新的内容,控制多媒体,制作图像动画),Ruby(开发 Internet 和 Intranet 应用程序)等等。
如果你想了解更多,请前往计算机语言_百度百科学习。
总结
纵观计算机语言的发展史,它是一个非常漫长的过程,是一个寻求更快,更广,更方便的过程。计算机语言的发展不是一帆风顺的,途中也遇到了许多问题,但随着那些伟大的科学家的出现,重重难关也随之被攻破,计算机语言也慢慢的演变为现在的高级语言,巧妙灵活,它不仅给人类的生活带来了诸多乐趣,而且在科学技术领域也起着重要作用。
编程语言种类很多,选择适合自己的就好,语言它本身不分好坏,都是用来编程的工具,它们各自有各自的优势和不足,其作用领域也不同,最主要是得看你自己,热爱哪门语言,想学哪门语言,喜欢就去专研,学的好与坏,就看你对它的掌握如何,运用如何了。