<sub id="17nj5"><progress id="17nj5"></progress></sub><th id="17nj5"><progress id="17nj5"><nobr id="17nj5"></nobr></progress></th>

    <sub id="17nj5"></sub>
    <sub id="17nj5"></sub>

    <progress id="17nj5"><rp id="17nj5"><big id="17nj5"></big></rp></progress>

        <track id="17nj5"></track>

        Hello World 程序的起源与历史

        2015-11-05 16:32:12来源:GAD作者:红蓝巴萨

        这是一个最著名的程序。对每一位程序员来说,这个程序几乎是每一门编程语言中的第一个示例程序。那么,这个著名的程序究竟从何而来呢?

        这是一个最著名的程序。对每一位程序员来说,这个程序几乎是每一门编程语言中的第一个示例程序。那么,这个著名的程序究竟从何而来呢?

        实际上,这个程序的功能只是告知计算机显示 Hello World 这句话。传统意义上,程序员一般用这个程序测试一?#20013;?#30340;系统或编程语言。对程序员来说,看到这两个单词显示在电脑?#32842;?#19978;,往往表示他们的代码已经能够编译、装载以及正常运行了,这个输出结果就是为了证明这一点。

        这个测试程序在一定程度上具有特殊的象征意义。在过去的几十年间,这个程序已经渐渐地演化成为了一个久负盛名的传?#22330;?#20960;乎所有的程序员,无论是在你之前,或在你之后,当第一次实现与计算机成功沟通之后,在某种程度上,他们的肾上腺素就会?#26412;?#19978;升(激动不已)。以下就是这个著名程序的诞生故事。

        Hello World 究竟从何而来?

        \

        Hello, World 最早是由 Brian Kernighan 创建的。1978年,Brian Kernighan 写了一本名叫《C 程序设计语言》的编程书,在程序员中广为流传。他在这本书中第一次引用的 Hello World 程序,源自他在1973年编写的一部讲授 B 语言的编程教程:

        main(){ extrn a,b,c; putchar(a); putchar(b); putchar(c); putchar(‘!*n‘); }a ‘hell‘;b ‘o, w‘;c ‘orld‘;

        但是非常不幸的是,当 Forbes India 杂志采访他的时候,他自己对这段传奇故事中一些记忆已经有点儿模糊了。当他被问及为什么选择『Hello, World!』时,他回答说,?#20309;?#21482;记得,我好像看过一幅漫画,讲述一枚鸡蛋和一只小鸡的故事,在那副漫画中,小鸡说了一句‘Hello World’』。

        鉴于 Hello World 这个计算机程序的广泛流行程度,这个起因看起来还是蛮合适的。

        那个时候,无论是 Kernighan,还是他的同事 Dennis Ritchie - C 语言之父,都无法想象 C 语言以及这本教程书将会在今天如此之流行。他们所做的工作只是贝尔实验室的一个研究项目,而在?#31508;保?#36125;尔实验室也只是美国电话电报公司(AT&T)的?#38469;?#30740;究与开发机构而已。

        尽管没人能够科学地解释为什么 Hello World 如?#35828;?#27969;行,但是,Hello, World 程序的确在计算机发展历史上成为了一个具有重要意义的里程碑。我们一起来回顾一下?#31508;?#30340;历史环?#22330;?/p>

        襁褓中的变革

        现在你可能很难想象,但是在 Hello World 连同 Kernighan 的编程书出版之前,计算机对于公众来说,几乎隐含着一种负面的意义。在1970年代,主机时代的计算机,不仅运行缓慢,体积庞大到足以占用整个一间屋子,而?#19968;?#38656;要一位全职的科学?#19968;?#32773;研究者来维护它。事实上,在1970年代后期之前,计算机科学家在编程的时候还要使?#20040;?#37327;的打孔卡!

        \

        通常情况下,一般人认为计算机是一种不可触碰、复杂,而且极其昂贵的设施,它们仅仅适用于学术、政府或者国防。事实上,即使是那些专注计算机领域的工业巨头们也在努力克服这些障碍。?#31508;?#35841;也无法想到,事隔多年之后,也就是现在,如果我们暂?#31508;?#21435;了我们的个人数字设备(如手机等),我们甚至会感到焦虑。

        第一个著名的计算机应用的案例发生在1890年 - 为了?#21344;?#21644;统计超过六千万美国人口的相关数据。另一个案例出现在1940年,也就是二战期间,Bombes & Colossus 计算机被用于破解德国人的通讯密码。

        在1950年,世界上迎来?#35828;?#19968;代商用计算机,如 Zuse 3 和 UNIVAC,在?#31508;?#20027;要应用于算术运算,但如果你想要买到这些设备,需要花费上百万美元。

        从教育相关的角度来看,绝大多数早期的有关编程语言的?#38469;椋?#22914; FORTRAN 或 BASIC,常常都会从一点入手:计算机非常有用。这是算法工程师和研究者 John Mount 的一个重要观点。Mount 认为,Hello World 大?#27573;?#27969;行开启了一个崭新的时代 - 计算机科学家不再需要说服社会和大众,计算的工具化特征已经所处可见。

        例如,在1964年,一本名叫 My Computer Likes Me When I Speak Basic 的?#38469;椋?#22312;它的前言部分,就专门讲述?#24605;?#31639;机编程语言的一般性用?#23613;?#32780;且,书中的第一个例子的输出结果就是『MY HUMAN UNDERSTANDS ME』。之所以使用这个示例的原因,目的是为了帮助人们理解计算机这个新生事物,并且希望告诉人们:你可以和计算机进行交流。在此之后,也就是1956年,动态编程语言开启了将计算机应用于现实世界的更多实例。

        在 C 语言以及 Hello World 程序流行起来之前,计算机并没有得到大?#27573;?#30340;应用?#25512;?#21450;,计算机行业也没有开始真正的腾飞。

        Hello World,编程时代的真正来临

        引发 Hello World 广泛传播的一个最主要催化剂,是 PDP-11 型计算机的面世,PDP-11 是一款在商业上极其成功的小型计算机。数字设备公司(DEC)以 $10,000 的单价,总共出售了六十万台。尽管如此,这种类型的计算机已经比?#31508;?#20215;值几百万美元的大型机在价格上便宜了许多。另外,其中 PDP-11 16-bit 系列不要求使?#20040;?#23380;卡,你可以使用相应的编程语言直接与计算机进行沟通。在那个年代,这还是第一次。

        有趣的是,为?#24605;?#36895;社会的广泛接受度,数字设备公司并没有将其称为『计算机』。为了和以往那些大型主机相区别,数字设备公司?#26576;?#20854;为『可编程的数据处理器』。当越来越多的机构开始采购越来越多的可编程计算机时,对于 C 语?#21592;?#31243;书籍的需求也变得越来越旺盛了。

        C 语言和 UNIX 操作系统首先在 PDP-11 这个机型上变得流行了起来。因此,在接下来的一段时间里,其他类型的商用计算机也开始支持这个 C 编程语言以及 UNIX,这种流行趋势最终促使成千上万的计算机相关工作者,开始阅读这本两百来页的《C 程序设计语言》。当然,这其中自?#35805;?#25324;了 Hello World 这个例子程序。

        在八十年代以及九十年代,几乎每一位曾在桌面软件领域工作过的程序员,都曾拥有一本《C 程序设计语言》。在?#31508;保?#36825;本书大?#38469;?#20986;了几百万本之多。

        也许有很多不同的基本程序可供初学者动手尝试,但是截?#32842;?#21069;为止,Hello World 则是其中最为著名的一个。每一位程序员都曾记得他们的第一个 Hello World 程序,因为对他们来说,这就是一个重大事件。也许?#34892;?#20154;还没有意识到这一点,但是,当一名新程序员清除完一些障碍顺利抵达 Hello World 时,他的内心体验到的不仅仅是一种成功的喜悦,更重要的是,他正在亲身经历一个跨越历史的时刻。

        关键词:程序员

        赞助商链接:

        2018特码生肖表
        <sub id="17nj5"><progress id="17nj5"></progress></sub><th id="17nj5"><progress id="17nj5"><nobr id="17nj5"></nobr></progress></th>

          <sub id="17nj5"></sub>
          <sub id="17nj5"></sub>

          <progress id="17nj5"><rp id="17nj5"><big id="17nj5"></big></rp></progress>

              <track id="17nj5"></track>
              <sub id="17nj5"><progress id="17nj5"></progress></sub><th id="17nj5"><progress id="17nj5"><nobr id="17nj5"></nobr></progress></th>

                <sub id="17nj5"></sub>
                <sub id="17nj5"></sub>

                <progress id="17nj5"><rp id="17nj5"><big id="17nj5"></big></rp></progress>

                    <track id="17nj5"></track>
                    魔术师大卫科波菲尔 秒速时时彩窍门 安卓手机捕鱼达人2技巧 王者荣耀哪个男英雄吕布 西班牙赫罗纳古镇 瓦伦西亚vs拉科鲁尼亚 尼姆与南特足球比分预测 湖北十一选五走势表 11选5计划群 船长的宝藏电子游戏