【1.编程语言与计算机】

前言

24年暑假空闲时打算好好学学数学和计算机编程的知识,突然很好奇计算机是怎么把高级编程语言变成机器语言,然后调用系统资源的,于是打算探究原理流程,打算按照从上层到底层的线索来探究。

编程语言是怎么发明的,它具体是怎么调用计算机资源的

编程语言的发明是一个长期且复杂的过程,它与计算机硬件的发展紧密相关。以下是编程语言发明和发展的简要概述:

  1. 早期计算机: 在编程语言出现之前,计算机操作员需要通过手动设置开关和插线板来为早期计算机编程。这种方式非常低效且容易出错。
  2. 汇编语言: 随着计算机技术的发展,人们发明了汇编语言,这是一种低级语言,它通过助记符来代表机器指令,简化了编程过程。
  3. 高级编程语言: 为了进一步提高编程效率和可读性,人们开始开发高级编程语言。1950年代,FORTRAN(Formula Translation)是最早的高级编程语言之一,它被设计用于科学计算。
  4. 语言的演变: 随后,许多其他编程语言相继出现,如COBOL(面向商业的通用语言)、BASIC(初学者通用符号指令代码)、C语言等。
  5. 面向对象编程: 随着软件工程的发展,面向对象编程(OOP)的概念被引入,它允许程序员通过对象和类来组织代码,提高了代码的可重用性和模块化。
  6. 现代编程语言: 到了21世纪,编程语言继续发展,出现了如Java、Python、JavaScript等现代编程语言,它们支持多种编程范式,具有跨平台的特性,并且易于学习和使用。

至于编程语言如何调用计算机资源,这通常通过以下几个步骤实现:

  1. 编译或解释: 编程语言编写的代码需要被转换成计算机可以理解的机器语言。这可以通过编译器(如C语言)或解释器(如Python)来完成。
  2. 操作系统接口: 编译或解释后的代码通过操作系统提供的接口调用硬件资源。操作系统充当了用户程序和硬件之间的中介。
  3. 系统调用: 编程语言通过系统调用请求操作系统执行特定的任务,如文件操作、网络通信、内存管理等。
  4. 硬件抽象: 操作系统将硬件抽象成更高层次的概念,使得编程语言无需关心具体的硬件细节。
  5. 执行: 最终,编译后的机器代码或解释后的指令被CPU执行,直接控制硬件操作。

编程语言的发展和计算机资源的调用是一个不断进化的过程,随着技术的进步,新的编程范式和语言特性不断被引入,以适应不断变化的计算需求。

我为什么要探究技术发展历史

不知道大家会不会有这样的疑惑,我自己在学高中数学或者物理的时候,看到教材的目录,感觉各个知识点缺少有机关联,难以成为一个整体,一个知识点往往是比较生硬地抛出来,上下之前的关联不是那么强,也不知道为什么突然要讲这个知识点。而历史的话,有时间线的明线,也有人物事件上下环环相扣的暗线,在脑海中是比较容易形成一个系统的网络的。因此,我认为想要真正理解一门学科,最好还是探究各个知识点各个技术当时的发展背景,我个人认为这样会让自己对该知识点或者技术是在当时是为了解决什么问题而研究出来的了然于胸,进而对其使用条件和情况有更深一步的了解,再退一步说,从人文角度,我也对那些科研工作者的经历很感兴趣。

第一台电子计算机的发明历史

1946年2月14日美国宾夕法尼亚大学摩尔电机工程学院的一间实验室里,世界上第一台现代电子计算机——ENIAC(Electronic Numerical Integrator and Computer)正式投入运行。这台计算机的诞生,标志着人类进入了电子计算机时代。1

发明背景

ENIAC的发明者是约翰·莫克利(John Mauchly)和约瑟夫·雷伯恩(J. Presper Eckert)。他们受美国军方委托,为解决弹道轨迹计算问题而研制了这台计算机。ENIAC的问世,使计算速度比当时最快的电子管计算机快了1000倍,这在当时是一个巨大的突破

ENIAC的结构主要包括五个部分:控制器、运算器、存储器、输入设备和输出设备。其中,控制器负责控制计算机的运行,运算器负责进行算术运算,存储器负责存储数据,输入设备负责接收数据,输出设备负责输出结果。ENIAC的运行速度非常快,每秒钟可以进行5000次加法运算,这在当时是非常惊人的

尽管ENIAC在当时取得了巨大的成功,但它的体积庞大,占地面积约为167平方米,重量达30吨。这使得它在实际应用中受到了很大的限制。为了解决这个问题,研究人员开始尝试设计更小型、更实用的电子计算机。1951年,英国计算机科学家艾伦·图灵(Alan Turing)提出了图灵机的概念,为现代计算机的发展奠定了基础

计算机的发展历史

概述

电子计算机是二十世纪最伟大的发明,七十年来,电子计算机的飞速发展改变了人类的生产与生活方式,人类已经进入以计算机为基础的信息时代。回顾计算机发展的历史,展望信息时代的美好未来,我们对高技术的发展规律会有更清醒的认识

在冯·诺依曼计算机诞生之前,人类为探索用机器实现自动计算甚至模拟部分人脑的功能已进行了几百年甚至两千年的努力。从古希腊的柏拉图(公元前427-347)时代开始,人类已开始研究思维的模拟实现,维也特(1540-1630)提出运用符号进行计算,刻卜勒1623年发明了8位计算器,莱布尼兹(1646-1716)发明了二进制,丘奇于1930年在数理逻辑中引进了λ希腊字母演算,图灵于1936年提出了计算的抽象模型—图灵机。1946年在美国宾夕法尼亚大学莫尔电机学院由Eckert和Mauchly领导研制成功了世界上第一台电子计算机ENIAC。这台计算机由18000多个电子管和1500多个继电器组成。每秒钟可实现5000次加减法。ENIAC还不算是一台真正的计算机,因为它还没有软件,每算一道题,要人工把各个部件用硬线连起来,算一秒钟,准备工作至少要15分钟。冯·诺依曼针对ENIAC“执行快,计划慢”的缺点,天才地提出了把程序也象数据一样放在计算机中的光辉思想,即所谓“存储程序”概念,引起了计算机发展史上划时代的变化。冯·诺依曼在莫尔学院做顾问时,设计了第一台程序存储计算机EDVAC。后来英国剑桥大学(在Wilkes领导下)研制成功了世界上第一台存储程序计算机EDSAC,这台计算机包括1024字主存(录延迟线)和4600字外存(磁鼓),于1949年正式运行。虽然由于莫尔学院Eckert和Mauchly两位主要工程师“下海”办自己的公司,使得EDVAC计算机的研制受到严重影响,但冯·诺依曼的创造性贡献不可磨灭,以后人们常把存储程序型的计算机叫做冯·诺依曼计算机。

从EDVAC开始,计算机已经历了电子管、晶体管、中小规模集成电路、大规模集成电路四代,正在向超大规模和智能化计算机过渡。由于器件与体系结构不断进步,计算机的速度和主存容量提高了将近9个数量级,但迄今人们广泛使用的计算机仍然是存储程序型的冯·诺依曼计算机。有些学者喜欢把并行计算机或对传统计算机稍做改进的计算机称为非冯·诺依曼计算机,其实冯·诺依曼本人就是并行处理的先驱,他设计的细胞自动机就是并行机。

近几年兴起的神经网络计算机以样本学习改变互连权重与结构,可能是对“存储程序”概念的真正冲击。与冯·诺依曼计算机的诞生需要几百年研究成果的积累一样,智能计算机的发展也需要经过漫长地探索与努力。这五十年来电子计算机发展日新月异,使人目不暇接,但从历史的长河来看,这五十年的进步只是计算机发展的一个序曲。再过五十年或一百年,那时的人们会像我们今天觉得十六世纪的计算技术怎么那么落后一样,感叹二十世纪的计算机怎么那么愚笨!2

发展阶段

第一代电子管计算机(1945-1956)

在第二次世界大战中,美国政府寻求计算机以开发潜在的战略价值。这促进了计算机的研究与发展。1944年霍华德.艾肯(1900-1973)研制出全电子计算器,为美国绘制弹道图。这台简称 Mark I 的机器有半个足球场大,内含500英里的电线,使用电磁信号来移动机械部件,速度很慢(3-5秒一次计算)并且适应性很差只用于专门领域,但是,它既可以执行基本算术运算也可以运算复杂的等式。3
1946年2月14日,标志现代计算机诞生的ENIAC(The Electronic Numerical Integrator And Computer)在费城公诸于世。ENIAC代表了计算机发展史上的里程碑,它通过不同部分之间的重新接线编程,还拥有并行计算能力。ENIAC由美国政府和宾夕法尼亚大学合作开发,使用了18,800个电子管,70,000个电阻器,有5百万个焊接点,耗电160千瓦,其运算速度比Mark I快1000倍,ENIAC是第一台普通用途计算机。
40年代中期,冯.诺依曼(1903-1957)参加了宾夕法尼亚大学的小组,1945年设计电子离散可变自动计算机EDVAC(Electronic Discrete Variable Automatic Computer),将程序和数据以相同的格式一起储存在存储器中。这使得计算机可以在任意点暂停或继续工作,机器结构的关键部分是中央处理器,它使计算机所有功能通过单一的资源统一起来。

1946年,美国物理学家莫奇利任总设计师,和他的学生爱克特(Eckert)研制成功世界上第一台电子管计算机ENIAC。

第一代计算机的特点是操作指令是为特定任务而编制的,每种机器有各自不同的机器语言,功能受到限制,速度也慢。另一个明显特征是使用真空电子管和磁鼓储存数据。 第一台电子管计算机(ENIAC) 长50英尺,宽30英尺,占地170平方米,重30吨,有1.88万个电子管,用十进制计算,每秒运算5000次,运作了九年之久。吃电很凶, 据传ENIAC每次一开机,整个费城西区的电灯都为之黯然失色。 第一台电子管计算机(ENIAC) 另外,真空管的损耗率相当高,几乎每15分钟就可能烧掉一支真空管,操作人员须花15分钟以上的时间才能找出坏掉的管子,使用上极不方便。曾有人调侃道:“只要那部机器可以连续运转五天,而没有一只真空管烧掉,发明人就要额手称庆了”。

第二代晶体管计算机(1956-1963)

1948年7月1日,美国《纽约时报》曾用8个句子的篇幅,简短地公布贝尔实验室发明晶体管的消息。它就像8颗重磅炸弹,在电脑领域引来一场晶体管革命,电子计算机从此将大步跨进了第二代的门槛。晶体管的发明,为半导体和微电子产业的发展指明了方向。采用晶体管代替电子管成为第二代计算机的标志。除了科学计算,计算机也开始被用于企业商务。

1947年,贝尔实验室的肖克莱、巴丁、布拉顿发明点触型晶体管;1950年又发明了面结型晶体管。相比电子管,晶体管体积小、重量轻、寿命长、发热少、功耗低,电子线路的结构大大改观,运算速度则大幅度提高。

发明晶体管的肖克莱在加利福尼亚创立了当地第一家半导体公司,这一地区后来被称为硅谷。晶体管的发明大大促进了计算机的发展,晶体管代替了体积庞大电子管,电子设备的体积不断减小。1956年,晶体管在计算机中使用,晶体管和磁芯存储器导致了第二代计算机的产生。

第二代计算机体积小、速度快、功耗低、性能更稳定。首先使用晶体管技术的是早期的超级计算机,主要用于原子科学的大量数据处理,这些机器价格昂贵,生产数量极少。 1960年,出现了一些成功地用在商业领域、大学和政府部门的第二代计算机。

第二代计算机用晶体管代替电子管,还有现代计算机的一些部件:打印机、磁带、磁盘、内存、操作系统等。计算机中存储的程序使得计算机有很好的适应性,可以更有效地用于商业用途。在这一时期出现了更高级COBOL(Common Business-Oriented Language)和FORTRAN(Formula Translator)等语言,以单词、语句和数学公式代替了二进制机器码,使计算机编程更容易。新的职业,如程序员、分析员和计算机系统专家,与整个软件产业由此诞生。这一时期的典型机器:国外的:IBM7090等。国内的:441B等。

第三代集成电路计算机(1964-1971)

虽然晶体管比起电子管是一个明显的进步,但晶体管还是产生大量的热量,这会损害计算机内部的敏感部分。1958年发明了集成电路(IC),将三种电子元件结合到一片小小的硅片上。科学家使更多的元件集成到单一的半导体芯片上。于是,计算机变得更小,功耗更低,速度更快。这一时期的发展还包括使用了操作系统,使得计算机在中心程序的控制协调下可以同时运行许多不同的程序。

1964年,美国IBM公司研制成功第一个采用集成电路的通用电子计算机系列IBM360系统

第四代大规模集成电路计算机(1971-现在)

出现集成电路后,唯一的发展方向是扩大规模。大规模集成电路(LSI)可以在一个芯片上容纳几百个元件。到了80年代,超大规模集成电路(VLSI)在芯片上容纳了几十万个元件,后来的ULSI将数字扩充到百万级。可以在硬币大小的芯片上容纳如此数量的元件使得计算机的体积和价格不断下降,而功能和可靠性不断增强。基于“半导体”的发展,到了一九七二年,第一部真正的个人计算机诞生了。所使用的微处理器内包含了 2,300 个“晶体管”,可以一秒内执行 60,000 个指令,体积也缩小很多。而世界各国也随着“半导体”及“晶体管”的发展去开拓计算机史上新的一页。

70年代中期,计算机制造商开始将计算机带给普通消费者,这时的小型机带有软件包,供非专业人员使用的程序和最受欢迎的字处理和电子表格程序。这一领域的先锋有Commodore, Radio Shack和Apple Computers等。 1981年,IBM推出个人计算机(PC)用于家庭、办公室和学校。80年代个人计算机的竞争使得价格不断下跌,微机的拥有量不断增加,计算机继续缩小体积,从桌上到膝上到掌上。与IBM PC竞争的Apple Macintosh系列于1984年推出,Macintosh提供了友好的图形界面,用户可以用鼠标方便地操作。 这一时期典型机器:国外:IBM-370等。国内:银河等。


  1. 世界首台现代电子计算机:ENIAC的诞生 - 腾讯云开发者社区-腾讯云 (tencent.com) ↩︎

  2. 电子计算机由来与发展–中国科学院计算技术研究所 (ict.ac.cn) ↩︎

  3. 计算机发展史简介-电子科技博物馆 (uestc.edu.cn) ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值