第一节:计算机/语言发展历史

前言:
大家好,我是幽风诺月,从本节开始将以博客的形式,以初学者角度(完全没接触过程序的新人)讲解面向对象语言中的C#编程语言。

如果喜欢本系列教程并且想长时间观看请关注下本人(不定期更新,如果有人催更的话会更的快一点)

一、计算机的发展历史

既然要学习计算机的编程语言,计算机的基本发展历史多多少少都是要知道一些的,虽然但这并不是重点,但我还是建议大家百度“计算机”来详细查阅了解一下基本的发展过程。

(如果实在太懒,这里有一张部分截图)
如果实在太懒,这里有一张部分截图

二、编程语言分类
在基本了解了计算机的发展历史,我们就需要了解计算机编程语言的发展历史了(不在附图,有兴趣的请自行百度查阅)。
1.机器语言
机器语言(machine language)是一种指令集的体系。这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。机器码有时也被称为原生码(Native Code),这个名词比较强调某种编程语言或库,它与运行平台相关的部份。

第一代计算机语言称为机器语言,上面的一段话来自百度,所以大家可能并不是看的很懂(如果查阅了计算机和语言发展历史,应该是看得懂的)。

通俗来说机器语言就是由0和1组成的,由于计算机只能识别0和1,所以机器语言自然只能是0和1(只要对电脑稍微理解的朋友多多少少都听说过电脑0和1的事情吧)。

说白了机器语言就是计算机的初始语言,是唯一能直接被计算机理解的二进制编程语言,为什么叫做机器语言,我想大家也是明白了。

用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。

机器语言的优缺点:
优点:直接执行,速度快,资源占用少

扫描二维码关注公众号,回复: 12668735 查看本文章

缺点:可读性、可移植性差,编程繁杂(不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。)

特点:计算机可直接识别的二进制代码,它是面相机器语言

三、汇编语言
机器语言显然不是寻常人能学会的,所以出现了第二代语言:汇编语言。

汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。

上面一段来自百度,但这仅是说明了汇编语言基本的概念。那么汇编语言究竟是什么呢?

汇编语言就好比是将一串很枯燥无味的机器语言转化成一个英文单词。比如说:add 1, 2;
add 就是一个英文单词,这样看起来就稍微有一些含义了,即 1 和 2 相加。这个就是汇编语言。

汇编语言的优缺点

优点:
1、因为用汇编语言设计的程序最终被转换成机器指令,故能够保持机器语言的一致性,直接、简捷,并能像机器指令一样访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。使用汇编语言,可以访问所有能够被访问的软、硬件资源。

2、目标代码简短,占用内存少,执行速度快,是高效的程序设计语言,经常与高级语言配合使用,以改善程序的执行速度和效率,弥补高级语言在硬件控制方面的不足,应用十分广泛。

缺点:
1、汇编语言是面向机器的,处于整个计算机语言层次结构的底层,故被视为一种低级语言,通常是为特定的计算机或系列计算机专门设计的。不同的处理器有不同的汇编语言语法和编译器,编译的程序无法在不同的处理器上执行,缺乏可移植性;

2、难于从汇编语言代码上理解程序设计意图,可维护性差,即使是完成简单的工作也需要大量的汇编语言代码,很容易产生bug,难于调试;

3、使用汇编语言必须对某种处理器非常了解,而且只能针对特定的体系结构和处理器进行优化,开发效率很低,周期长且单调。

特点:它是面相机器语言

四、高级语言
汇编语言虽然很不错,但毕竟时代在进步,随着需求自然需要更好的来替补一下(任何一门高级语言都不能替代机器语言或者汇编语言,因为所有的高级语言都是在它们之上建立的)。

汇编语言之后又出现了第三代语言。第三代语言又叫“高级语言”。而汇编语言和机器语言被统称称为低级语言。

高级语言的发展分为两个阶段,以 1980 年为分界线,前一阶段属于结构化语言或者称为面向过程的语言,后一阶段属于面向对象的语言。

首先大家要先明白一点,也是对于新手而言,非常重要的一点。高级语言虽然被称为高级语言,听起来好像是挺高级的,要比低级语言厉害,其实并不是这样,反而恰恰相反(因为越“低级”的语言,就越是基层,底层。如果没有基层,那么其他语言都将不复存在)。

计算机语言具有高级语言和低级语言之分。而高级语言又主要是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。编写的程序称之为源程序。

高级语言(High-level programming language)相对于机器语言,是一种指令集的体系。在这种语言下,其语法和结构更类似汉字或者普通英文,且由于远离对硬件的直接操作,使得一般人经过学习之后都可以编程。高级语言通常按其基本类型、代系、实现方式、应用范围等分类。

高级语言又分为2类:面相过程和面相对象,至于它们之间的区别在这里不做解释。

高级语言有很多种如:java,c,c++,C#,pascal,python,lisp,prolog,FoxPro等等(它们之中有面相对象,也有面相过程,不一一列出)。

高级语言的特点
机器语言,汇编语言,都是一种语言。但高级语言就不同的,高级语言真的有很多种,它们各自的优缺点自然都不一样,但是他们的特点是一样的。

因为明确的目标性以及理解容易,一个新手很容易去学习高级编程语言。同时高级编程语言因为发展的历史,拥有很多函数库,用户可以根据自身的需求在代码中加入头文件来调用这些函数来实现自己的功能,当然使用者也可以根据自己的喜好编写函数来在后续的代码中调用。

高级编程语言作为一种通用的编程语言,它的语言结构和计算机本身的硬件以及指令系统无关,它的可阅读性更强,能够方便的表达程序的功能,更好的描述使用的算法。同时,它更 容易被初学者所掌握,很容易学习。而且容易学习掌握。但是高级编程语言因为是一种编译语言,所以他的运行速度比汇编程序要低,同时因为高级语言比较冗长,所以代码的执行速度也要慢一些。

高级编程语言,作为用户层面的编程工具,用户并不需要去了解硬件的结构,而是去用逻辑的语言去实现想要的目标,但是因为高级编程语言的架构高于汇编,所以不能编写直接访问硬件资源的系统程序,因此,高级编程语言必须要调用汇编语言编写的程序来访问硬件地址。
(上面一段来自百度,特点大家看看就好)

简化理解:越接近底层运行效率越高,开发效率越低。越远离底层开发效率越高,运行效率越低。(运行效率指的是利用率(性能利用),开发效率指的是开发某个软件所用的时间)
五、成长阶段(额外可不看)
学习的过程都是有阶段的,有些朋友可能也很好奇,我一般我把它分为4个阶段:入门、熟悉、熟练、精通。
入门和熟悉一般为学习阶段的过渡过程,一般职业水平达到熟练运用此语言就可以了。
值得一提的是:精通这个概念是十分大的,每个人都有不同的标准。一般小型公司的招聘都会写要求精通XX语言,这其实是一种误导,大家可以理解为熟练运用,可以达到做项目的水平即可。
如果非要一个很正规的观点来解释“精通”的话,那么以下应该是比较准确的:
我搜索了不少一些前辈观点和讲解,并结合我自己的观点,我觉得能精通一门语言是很了不起的,而要达到精通的程度估计需要10年起步的时间。
需要满足:能够加入这门语言的标准委员会 /指导语言发展,参与新特性的制定,新版本的迭代,能明白这门语言的编译 /解释器是怎么工作的。

六、总结

  • 1.语言总共分为2大语言:低级语言/高级语言。
  • 2.高级语言中也分为2大类型:面相对象/面向过程。
  • 3.语言各有优缺点,没有高低之分。
  • 4.汇编语言和机器语言都是:面相机器语言(如需了解自行百度)
  • 5.汇编语言及是面相机器同时也有面相过程的特点。
  • 6.欲速则不达,追寻自己的本心。
  • 7.喜欢的欢迎关注。

猜你喜欢

转载自blog.csdn.net/weixin_45213735/article/details/102569491
今日推荐