来,上一上 IT 历史课!

news/2024/7/24 2:36:37 标签: 程序人生

雏形初现

给你一台 1804 的织布机,你能想象它是计算机的灵感来源吗?没错,那一年法国发明家雅卡尔发明了高效率的织布机,他通过对穿孔的有无来控制了编织的图案。

这种打孔模式其实就是变相的在存储图案路线,再用机械还原图案,这和现代的计算设备理念是一致的。

后来,著名的英国数学家查尔斯·巴贝奇利用这打孔模型,在 1822 年提出了根据穿孔卡上的指令存储数据,以进行任何数学运算的可能性,并着力打造其设想机器:差分机。只可惜的是,由于各种原因,直到巴贝奇去世,也没有将其完整的实现出来。

不过,打孔技术可没有被遗忘,反而被发扬光大。IBM 的前身 CTR 公司创始人赫尔曼·何乐礼,借鉴打孔技术发明了制表机

他通过电气连接,触发卡片打洞,将信息记录了下来,并且还能从这特定排列的孔洞中分析出数据,使得数据的存储和读取有了载体。

后来制表机被广泛应用人口普查中,为各个国家节省了大量的劳动力。

基础奠定

制表机的出现,让电气与机械完美的结合在了一起,让数学运算有了大展拳脚的舞台。只是这还远远不够,无法解决通用计算问题,比如制表机只能用于统计数据表格,其他领域就涉及不了,必须重新定制化。

先后也有很多著名的科学家投入此方面的研究,也提出了很多伟大的理念思想。英国数学家、逻辑学家艾伦·图灵就为此做出了重大贡献。

他在 1936 年提出了用机器来模拟人们进行数学运算的想法,还细分出了机器的构成部分,比如状态存储器、流程控制化、读写移动头等。这就是后来著名的图灵机模型。

这些先进的理念引领了新的技术发展,1946 年美国政府建成了世界上第一台通用电子计算机,这台机子被当时的新闻媒体形容为“巨脑”,其计算速度比机电机器高了一千多倍!

在 ENIAC 的建设过程中,参与人冯·诺伊曼逐渐意识到了存储程序的重要性,从而提出了计算机自动切换程序的概念,并且在 1951 年研制出了能够将程序储存在内部的计算机:EDVAC

随着计算机的发展,冯·诺依曼计算机体系结构也在不断的完善,计算机逐渐具备了存储程序共享数据顺序执行的特点。

而当硬件层次的架构逐渐完善时,编程语言也在同步发展中。我们都知道,最初的机械设备是通过打孔去控制线路开关,进而执行一系列计算动作。

后来逐渐有了一些固定的机器指令去编排这些动作,就像指导手册一样。只是这种机器指令的编写让人很痛苦。

为此,“COBOL 之母格蕾丝·穆雷·赫柏创造了现代第一个编译器 A-0 系统,通过类似英语的单词来转换计算机的运行指令。

并且后面 IBM 团队也推出了 FORTRAN 语言,这是至今还在使用的编程语言!尽管当时只包含 IFDOGOTO 语句,但也让冷冰冰的机器读懂了人类的语言,让机器运作更加人性化。

蓬勃发展

当全能的硬件遇到有灵魂的编程时,计算机开始迸发出属于它的光芒,很多夸时代的作品也被创作出来。这包括起源于 70, 80 年代的 Unix 系统以及 Windows 系统。

后来越来越多的标准协议被定制出来,这包括了互联网的 TCPHTTP 协议以及物联网的 IoT 协议,有了这些协议共识,通信变得越来越无障碍

大数据、区块链、人工智能等更多的技术概念被提出应用,各行各业也在进行重大变革,我们的生活逐渐变得数字化和效率化。

现在

计算机已经完美的融入了我们的生活,为我们提供巨大的便利。但我们和机器的界限也越来越模糊,究竟我们会不会被机器所驱动,这需要我们好好的捋清楚边界

但不管怎么样,现在的我们肯定是要往前踏出一步的,只有探索一切的可能,我们才能更好去认识这个世界!


感兴趣的朋友可以搜一搜公众号「 阅新技术 」,关注更多的推送文章。
可以的话,就顺便点个赞、留个言、分享下,感谢各位支持!
阅新技术,的新知识。
阅新技术


http://www.niftyadmin.cn/n/1251095.html

相关文章

Linux查看端口占用情况,并强制释放占用的端口

1.查找被占用的端口 netstat -tln netstat -tln | grep 8080 netstat -tln 查看端口使用情况,而netstat -tln | grep 8080则是只查看端口8080的使用情况 2.查看端口属于哪个程序?端口被哪个进程占用 lsof -i:8060 COMMAND PID USER FD TYPE …

mysql 系列:搞定索引

摘要 索引是数据库里重要的组成部分,也是提高查询效率必备的知识点。本文将会介绍索引作用、索引类型、索引优化以及索引底层结构,也算是对索引知识的一次归纳。 一、索引介绍 什么是索引? 数据库是用来存储与读取数据的,如何…

压力测试工具、Web性能压力测试工具ApacheBench(ab)详解

网站性能压力测试是性能调优过程中必不可少的一环。只有让服务器处在高压情况下才能真正体现出各种设置所暴露的问题。Apache中有个自带的,名为ab的程序,可以对Apache或其它类型的服务器进行网站访问压力测试。 ApacheBench命令原理: ab命令…

mysql 系列:锁和它的运用

前言 数据库是一个允许多用户、多会话、多线程访问的系统。为了在并发访问中能保证数据的一致性和完整性,一般会使用事务来做控制,外加锁来作为辅助手段。所以今天整理了一下锁的相关知识,看看它在事务里是怎么配合使用的。 锁的分类 我们…

nginx配置跨域请求Access-Control-Allow-Origin

当出现403跨域错误的时候 No Access-Control-Allow-Origin header is present on the requested resource,需要给Nginx服务器配置响应的header参数: 一、 解决方案 只需要在Nginx的配置文件中配置以下参数: location / { add_header Acce…

mysql 系列:日志

摘要 日志的存在,为数据库的很多功能提供了保障。像用于回滚数据的 undo log,用于恢复数据的 redo log, 以及用于主从备份的 binlog。本文将会大致介绍下数据库里的日志类别,以及重点分析下事务日志的相关知识点。 日志分类 在…

nginx代理

一.反向代理 语法: Syntax:proxy_pass URL; Default:—— Context:location,if in location,limit_except; 例子: location ~ /test_proxy$ { proxy_pass http://127.0.0.1:8080; } 注意:proxy_pass后面的路径不带url时&a…

在idea中RunDashboard如何显示出来

背景: 运用spring cloud框架基于spring boot构建微服务,一般需要启动多个应用程序,在idea开发工具中,多个同时启动的应用需要在RunDashboard运行仪表盘中可以更好的管理,但有时候idea中的RunDashboard窗口没有显示出来…