现在的编程语言这么繁杂,难道你就不想知道它最早是如何开始的吗

前言

有人问:最初的电脑是如何编程的?这个问法其实有些笼统,这样问,给人的感觉像是在说:有了电脑才有的编程,编程是在电脑的基础上诞生的。但其实程序代码最初并不是在电脑上运行的。电脑跟计算机的概念还是有一定区别的:我们可以把电脑称为计算机,但不能把计算机都叫电脑(至少在以前不能)。要讲编程的最初是怎么使用的,就必须结合计算机的发展。因为现在,编程跟计算机确实是密不可分的整体。

【----帮助计算机技术学习,以下所有学习资料文末免费领!----】

一、计算机的早期形式和雏形

1.早期形式

计算机就是用来计算数据的,所以往前追溯,指算、算筹、算盘、星盘、计算尺等计算工具都算是计算机的“祖先”。

在这里插入图片描述

2.计算尺

1620~1630年期间,计算尺被发明,可以进行乘除法运算,经过后续被多人多次改良后,达到了可以进行求根和幂、三角函数、对数和指数等高级运算的境界,被广泛采用,19世纪末叶以来成为科学工作者特别是工程技术人员不可或缺的计算工具。计算尺实际上是现在所使用的计算器的前身,这是它与机械式计算机最直接的区别。

在这里插入图片描述

3.机械式计算机

与计算尺同时,17世纪另一项重大发明是机械计算机。第一个提出近代的机械式计算机的设计思想的是德国数学家席卡德,他在1623年到1624年间设计了机械式计算机,可以进行四则运算,用齿轮传动,不过它没有制造出机器来。

(1)加法机

1642年,第一台能算加、减法的计算机是法国数学家布莱士·帕斯卡(就是“压强”的那个帕斯卡)发明。帕斯卡的加法机是目前公认的世界上第一台机械式计算机。

在这里插入图片描述

(2)步进计算器

1672年,德国数学家莱布尼兹(就是“微积分”的那个莱布尼兹)根据帕斯卡的加法器发明能做加、减、乘(加法的不断叠加)、除(减法的不断递减)的计算机。不断地加,步步递进,因此叫“步进”。

在这里插入图片描述

自此以后,许多人在这方面做了大量的工作。特别是经过L.H.托马斯、W.奥德内尔等人的改良之后,生产出多种手摇台式计算机,风行于全世界。

4.差分机(一种机械式通用计算机)

1822年,英国数学家巴贝吉制成了一台能够执行计算程序的差分机……

好的,到这儿,我们要从编程的起源讲起,因为计算机和编程的不解之缘便是这个时候开始交汇的。

二、编程的起源(结合计算机的发展)

“编程”的“程”就是“程序”的意思,所以,广义来说,编程自人类有自主意识以来就在进行,“先干什么”“后干什么”这些就是编程的思路。但要规范谈论“编程”的起源,还得从它被人为应用到工具或机器上说起。

1.花本式提花机

编程最早可以追溯到提花机,我国古代人为了在衣服上设计出美丽的图案,发明了花本式提花机(东汉时期,公元25年—220年)。

在这里插入图片描述

说明:纺织工人提前把要编织的图案设计在花本里,如果把这个过程比作程序员的编程,那么织布用的线就是现在的编程语言,花本就是编写出来的程序,而纺织工人就是程序员。在11~12世纪的时候提花机通过丝绸之路传到了欧洲。

2.二进制

1679年,德国数理哲学大师莱布尼茨受中国《周易》和八卦中“阴”与“阳”的启发,发明了二进制。

在这里插入图片描述

3.穿孔纸带提花机

1725年,法国织布工人巴西尔·布尚根据花本提花机的原理发明了穿孔纸带提花机,穿孔纸带是历史上最早的的数据存储介质之一。但当时的穿孔纸带提花机因提花机针数不足无法满足编制要求而未被广泛采用。

在这里插入图片描述

4.贾卡机(可编程织布机)

1800年前后,法国织布工人贾卡在巴西尔·布尚发明的基础上对早期纺织机进行了改良,实现了更加高效的自动化编织复杂的图案,大大提高了编织效率和质量。

在这里插入图片描述

说明:这种成熟的机器后来被称为贾卡(提花)机。贾卡(提花)机的发明影响深远,不仅推动了纺织业的发展,还为计算机诞生提供了启示,这种根据需要进行制作穿孔纸带的工作也被视为现代 “编程” 的起源。

5.差分机(与第一节第4条交汇)

1822年,英国数学家查尔斯·巴贝奇(被称为“通用计算机之父”)从贾卡提花机获得灵感,研制出了可以按照设计者意图自动处理不同函数(即能够执行计算程序)的机械式计算机——差分机。

在这里插入图片描述

6.分析机

1834年,巴贝吉又构思了一台完全程序控制的机械式计算机——分析机。分析机算得上是世界上第一台计算机,但因当时技术条件限制,它没能制造出来,但巴贝吉的设计思想是不朽的,它与现代电子计算机的理念完全吻合。

在这里插入图片描述

7.阿达·洛芙莱斯

在1842年与1843年其间,阿达花了9个月的时间翻译意大利数学家路易吉·米那比亚对巴贝奇最新的计算机设计书(即分析机概论)评价所留下的备忘录。在这部译文里,她附加了许多注释,内容详细说明用计算机进行伯努利数的运算方式。在译文附注G的开篇提到了世界上第一个计算机程序,举例说明了阿达意识到巴贝奇的设计是多么的意义深远。作为世界上第一个计算机程序的作者,她被公认为是有史以来第一位程序员,还是一位女程序员。

在这里插入图片描述

8.穿孔制表机

1888年,美国统计学家赫曼·霍列瑞斯在面对用手摇计算机处理美国人口普查5000余万美国人登记造册的庞大难题时设计发明了用于人口统计的穿孔制表机。制表机穿孔卡第一次把数据转变成二进制信息,这种方式成为之后计算机系统里输入数据的方法一直沿用到20世纪70年代。

在这里插入图片描述

9.图灵完备和图灵机

1936年,图灵(被称为“计算机科学之父”)以数学领域的布尔代数为基础,将逻辑领域中的任意命题(可转化为数学符号)都用一种通用的机器来表示和演算,并且能按照一定的规则推导出结论,即:将论据(输入)基于某种规则(指令集)来进行论证(计算)之后就肯定能得到结论(输出)。这就是可计算性理论,是一种严格的逻辑和数学框架,限定了什么样的问题是可以求解的,什么样的问题是无法求解的。也就是所谓的图灵完备。

图灵机是实现图灵完备的演算机器,能制作图灵机的数学问题,它必然有解。

在这里插入图片描述

10.Z系列计算机

1938年,德国工程师康拉德·楚泽完成了第一台可编程使用二进制的数字计算机Z-1。

第二年,楚泽的朋友给了他一些电话公司废弃的继电器,楚泽用它们组装了第二台电磁式计算机Z-2, 这台机器已经可以正常工作。

1941年,第三台电磁式计算机Z-3完成,正常工作了3年。1944年,美军对柏林实施空袭,楚泽的住宅连同Z-3计算机一起被炸得支离破碎。

楚泽于1945年又建造了一台比Z-3更先进的电磁式Z-4计算机,受第二次世界大战影响,几经辗转,稳定运行到1958年才结束它的寿命。

楚泽创办了“楚泽计算机公司”,1958年研制出电子管通用计算机Z-22R。

电脑史学家认为,如果楚泽不是生活在法西斯统治下的德国,他可能早就把Z型计算机系列升级为电子计算机,世界计算机的历史将会改写。值得欣慰的是,全世界都已经承认他是“数字计算机之父”。

在这里插入图片描述

11.ABC计算机(世界上第一台专用电子计算机)

1942年,美国工程师约翰·阿塔纳索夫(被称为“电子计算机之父”)和克利福特·贝瑞基于图灵机的理论基础设计并研制了世界上第一台专用电子计算机——阿塔纳索夫-贝瑞计算机(Atanasoff-Berry Computer),简称 ABC 计算机。

ABC计算机不可编程,图灵不完备,不能通用,只能通过固定程序实现特定功能,所以叫做“专用”。虽然如此,但是它是“电子计算机”。

在这里插入图片描述

12.冯·诺依曼体系结构

1945 年,冯·诺依曼(被称为“现代计算机之父”)在论文《First Draft of Report o the EDVAC》(第一份草案)中提出了冯·诺依曼体系结构(又称“存储程序计算机”),中心思想为:程序本身是存储在主机内存中的,可以通过加载不同的程序来解决不同的问题。

说明:冯·诺依曼体系结构奠定了现代计算机的体系结构,它包含 5 大计算机组成部分,我们现在也习惯称之为主机和外设。

在这里插入图片描述

13.世界上第一台通用计算机

1946 年 2 月 14 日,世界上第一台通用计算机 ENIAC(Electronic Numerical Integrator And Computer,电子数值积分计算机)于美国宾夕法尼亚大学诞生,发明人是美国人莫克利和艾克特。

在这里插入图片描述

说明:ENIAC 是第一代电子管计算机,是图灵完备的,并且能够重新编程以解决各种计算问题。当时使用的还是穿孔卡片进行数据输入。所谓的穿孔卡片也就是一条纸带,上面充满了0和1的序列,机器语言就是由0和1两种元素组成,机器语言也就成为了第一代计算机语言。

14.第二代计算机语言——汇编语言

凯瑟琳·布斯教授是英国早期的计算机先驱之一,她不仅写出了第一个汇编语言,还完成了机器翻译的奠基工作。第一个计算机系统的汇编语言和代码就是出自她之手,时间是在1950年前后。

在这里插入图片描述

15.第三代计算机语言——编程语言

1957年4月,约翰·巴克斯所领导13人小组推出全世界第一套高阶电脑语言:FORTRAN语言。由此开启了第三代计算机语言的时代。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

Python入门教程

如果你现在还是不会Python也没关系,下面我会给大家免费分享一份Python全套学习资料, 包含视频、源码、课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,可以和我一起来学习交流。

① Python所有方向的学习路线图,清楚各个方向要学什么东西

② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析

③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论

④ 20款主流手游迫解 爬虫手游逆行迫解教程包

爬虫与反爬虫攻防教程包,含15个大型网站迫解

爬虫APP逆向实战教程包,含45项绝密技术详解

⑦ 超300本Python电子好书,从入门到高阶应有尽有

⑧ 华为出品独家Python漫画教程,手机也能学习

⑨ 历年互联网企业Python面试真题,复习时非常方便

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以点击下方微信卡片免费领取 ↓↓↓【保证100%免费】
或者

点此链接】领取

好文推荐

了解python的前景:https://blog.csdn.net/weixin_49891576/article/details/127187029

了解python的兼职:https://blog.csdn.net/weixin_49891576/article/details/127125308

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 难度是相对的,不同的人对不同的编程语言的难度有不同的评价。有些人认为 C++ 比较难,因为它的语法比较复杂;有些人认为 Assembly 比较难,因为它需要对计算机低级架构有深刻的了解;有些人认为 LISP 比较难,因为它的语法和其他编程语言不太一样。总之,不同的编程语言都有它们的难点和易点,每个人都需要自己根据自己的兴趣和能力选择适合的语言。 ### 回答2: 在我看来,相对难度较高的编程语言是C++。 首先,C++是一种面向对象的编程语言,相比于其他面向过程的语言,如C语言,其引入了更多的概念和特性,如类、继承、多态等,需要程序员具备更深入的理解和掌握。面向对象的思想虽然强大,但对于初学者来说,其抽象性和复杂性较高,需要花费更多的时间和精力去理解和应用。 其次,C++对于内存的管理相对较为复杂。C++作为一种底层语言,具有对内存的直接控制能力,这带来了极高的灵活性,但也增加了难度。程序员需要手动进行内存分配和释放,合理使用指针和引用,以避免内存泄漏和悬空指针等问题。这种底层的操作不仅需要代码逻辑的正确性,还需要关注性能和安全性。 此外,C++的语法较为复杂,标准库也非常庞大。C++拥有很多高级的特性和语法糖,如模板、STL等,这些功能的使用需要掌握繁杂的语法规则和具体用法。此外,C++标准库包含了大量的类和函数,覆盖了各个方面的应用领域,对于初学者来说,需要具备较好的记忆和应用能力。 总而言之,相对而言,C++是一种较难的编程语言。它涉及的概念和特性较多,对于初学者来说,需要花费更多的时间和精力去学习和掌握。然而,掌握C++也能够带来更多的机会和挑战,在各种高性能、底层开发领域有着广泛的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值