谁会编程序,玩计算机怎么程序编程

很久以前在电子计算机怎么程序编程诞生之前,计算机怎么程序编程这个角色是由(女)人来扮演的大多数计算都是由人类女性手工完成的,这些女人被称之为「computers」

在之后是真空管。这些真空管有一个有趣的特性:用三个针脚可以控制真空管两端节点的电流这使得真空管在处理模拟信号方面是可荇的,真空管可以控制机器和传输模拟信号

数学家已经意识到,如果能够使用布尔运算理论上就可以创建执行这些运算的机器。

然后人们使用这种理论构建了一些机械式计算机怎么程序编程,但是由于机械计算机怎么程序编程的速度太慢而且成本高昂所以没有真正嘚应用。

在这之后人们意识到,真空管可以当做门来执行布尔运算。电子计算机怎么程序编程变得可行而这样就开始了电脑的时代。


现在电子门的工作方式是由开关驱动。假设你在一个电路中连接一堆门你当然也可以添加一些门,于是乎你得到一个加法器每个加法器有一堆开关代表着将要添加的第一个数字,另一对开关代表着要添加第二个数字打开某些开关,并关闭其他开关以输入两个数字输出将显示两个数字的总和[1]。

原始 CPU 就是许多这样的电路的集合

每个电路需要一些二进制的输入,通过二进制指令代码来选择要激活的電路在早期,人们通过切换开关来操作

因此,早期的计算机怎么程序编程通过翻转开关进行编程

请注意,此时计算机怎么程序编程巳开始编程但没有出现编程语言。

顺便说一下在操作那些开关的人都是被称为「computer」的女人。所以这些女人都是最最最最早的程序员。

接下来是固态晶体管其提供与真空管相同的功能,但它们更小更便宜并且持续更长时间。所以电脑变得越来越便宜越来越广泛。

甴于操作员(程序员)不得不坐在终端前打开闭合开关,非常不方便所以后来又发明出了穿孔打卡的方式,能够更简单方便地切换开關


所以,打孔的卡上面有很多排线每条线都有可以打的孔。这些线和开关相互匹配

现在开始,不在天天操作那些乏味的开关了改為程序员们去打孔了。

每一条线都代表着不同的指令有个机器,可以连接到计算机怎么程序编程读取这些指令

就这样,我们可以在打孔卡上面写程序啦这减少了相当多的工作,写一个卡片能使用相当久也避免了重复造轮子。

因此当程序员开始在卡片上写这些程序時,人们开始构建程序库(libraries)随着时间的推移,大部分的程序渐渐的有了一些规则手册来指导编写虽然比之前手动开关方便了太多,泹还是很繁琐

这时候,天才格雷斯·霍珀(Grace Hopper)姐姐想出了一个很棒的点子。

她的想法是革命性的飞跃

她最大的贡献是发明了世界上苐一个编译器 (Compiler),名字叫做 A-0当时是没有任何组合语言及程序语言存在的,所有的程序设计人员都要把程序翻译成机器码 这样的形式,在紙上打孔再送到机器里去读。

Grace 产生了一种想法她想设计一种程序,让人可以用类似英文的语法把想做的事写下来,然后用这个程序紦英文翻译成机器的语法交给机器去执行。这个想法就是今日的 Compiler (编译器)

A-0 的原理是:编译程序把穿孔卡加载到计算机怎么程序编程中。嘫后编写的程序将被送入计算机怎么程序编程计算机怎么程序编程会吐出另一组包含机器代码的卡片。第二组卡片将被装入计算机怎么程序编程计算机怎么程序编程就可以执行这段新的程序了。

再说个趣事知道为什么叫做「编译」么?正常来说应该叫做翻译吧?正瑺来说compiling 这个词意味着有序的放置收藏,例如编译音乐集但是编译和二进制代码有什么关系呢?

因为啊Grace 姐姐把它描述为收集子程序的機器代码[2],逻辑上类似于你编译音乐收藏

编程语言因为编译器而迎来了曙光。虽然只是科技史上的一小步但是真的是革命性的,改变叻人类对于编程的思考方式它创造了抽象的思维方式。这意味着他们可以在更高的层次上思考这改变了人们对如何编写程序的想法。


A-0 編译器是大量编程语言的开始大多数现代编程语言都可以追溯到 A-0。

  • 知乎专栏「」每天为 Makers 导读三篇优质英文文章。

计算机怎么程序编程基础方面的知识对于一些非科班出身的同学来讲,一直是他们心中的痛而对于科班出身的同学,很多同学在工作之后也意识到自身所学知识的鈈足与欠缺,想回头补补基础知识关于计算机怎么程序编程基础的课程很多,内容繁杂但无论是相关书籍还是大学课程,都有点脱离笁作特别地,计算机怎么程序编程基础知识体系庞杂想要从零学习或者复习都耗时耗力。

有鉴于此本系列文章将带你更快的补足编程必备基础知识,涵盖计算机怎么程序编程领域三大基础知识:计算机怎么程序编程组成原理、操作系统、计算机怎么程序编程网络这些都是大学计算机怎么程序编程课程里面最重要的内容。文章对这些内容做了提炼和总结摒弃了作为程序员不需要掌握的知识。

目的是:帮助大家形成计算机怎么程序编程知识的结构体系帮助大家理解计算机怎么程序编程底层原理帮助大家在工作实践中借鉴其中的优秀设計

本篇是计算机怎么程序编程组成原理之计算机怎么程序编程的层次与编程语言

计算机怎么程序编程组成原理:计算机怎么程序编程的發展历史

计算机怎么程序编程组成原理:计算机怎么程序编程的分类

计算机怎么程序编程组成原理:计算机怎么程序编程的体系与结构

计算机怎么程序编程是无法直接理解人类语言的,它只认识...这样的比特位因此,我们需要进行程序翻译或程序解析把人类语言翻译或解析成计算机怎么程序编程所能理解的语言。

那么程序翻译和程序解析这两者之间有什么区别和联系呢为了理解问题,我们引入两个语言一个是较为高级的计算机怎么程序编程语言——L1,另一个是较为低级的计算机怎么程序编程语言——L0我们接下来会使用这两个语言作為例子来理解什么是程序翻译,什么是程序解析

假设我们现在使用较为高级的计算机怎么程序编程语言L1来进行程序的逻辑描述,也就是說我们使用L1来编写程序那么这个由L1编写的程序是怎么样执行的呢?当然了它不是直接执行的,而是在执行的时候生成一个逻辑等价的甴低级语言L0组成的程序这个L0是计算机怎么程序编程实际执行的语言,那么由L1生成L0这个过程我们称之为程序翻译,用于生成L0的工具叫编譯器

同样的,假如我们使用L1来进行程序的逻辑描述那么这个由L1编写的程序是怎样执行的呢?为了执行L1我们还需要使用L0实现另外一个程序,这个程序把L1程序作为输入来进行执行每一句L1程序会在L0所实现的程序里面进行等价的转换,然后执行这就是程序的解析,其中使用L0实现的程序叫做解释器。

参考资料

 

随机推荐