to myself 的分类学习日志

做自己想做的事
posts - 232, comments - 6, trackbacks - 0, articles - 0

aboutADA

Posted on 2010-08-29 23:11 kongkongzi 阅读(168) 评论(0)  编辑 收藏 引用 所属分类: essay

1.1. ada:世界上第一位程序员

1.1.1. 不幸的童年

    * ada· 奥古斯塔·拜伦(Ada Augusta Byron)1815年12月10日生于英国伦敦。她的父亲是英国著名诗人乔治·拜伦(George Gordon Noel Byron,1788-1824),母亲是数学家安娜·伊莎贝拉(Anna Isabella Milbanke)。热恋时,拜伦曾戏称他未来的妻子是“the Princess of Parallelograms”(平行四边形公主)。看来,兴趣爱好的巨大反差,埋下了不幸的种子。 ada出生后的第一个悲剧就是父母的离异。她父母的婚姻只维持了一年零半个月:1815年1月2日结婚,1816年1月16日离婚,这时ada出生仅37天。 第二个悲剧应该是幼年丧父。我们知道,拜伦于1816年4月25日离开伦敦出国,而且一直没有再回英国。他先在瑞士生活,后来到了意大利,又转至希腊。在那里,他还参加过希腊反对土耳其的独立战争。37岁时病故于希腊的Missolonghi,这时ada才8岁,好在她一直没有见过自己的父亲。 ada的母亲希望女儿成为一名数学家,而不是诗人。尽管也让女儿学习钢琴,那是为提高她的音乐素养,而不是让她从事艺术。不过,ada与母亲在一起的时间并不多。她的童年主要是在祖母呵护下度过的。然而祖母Noel Byron夫人1822年逝世,ada只有7岁。

1.1.2. 严格的教育

    * 既然ada的母亲安娜对数学有兴趣,而且对“既疯又坏”(mad and bad)的丈夫深恶痛绝,当然就把希望寄托在女儿身上,渴望并鼓励她发展理性的修养,而抵制父亲浪漫主义色彩的影响。于是,ada接受了近乎严酷的教育。 ada6 岁时,母亲雇了家庭女教师雷蒙特小姐(Miss Lamont)在家里对她进行启蒙教育。安娜强烈相信,数学作为一门智力的学科,必须让它在ada的头脑里牢牢扎根。她认为打好数学基础将为ada提供稳定的、理智的社会地位,而这也是针对“粗鲁、轻率、自负、搪塞和狂妄的良好解毒剂。” 安娜希望女儿喜欢数学,然而女儿却爱好地理,她花很少的时间学习数学,以便应付母亲的严格要求。安娜发现女儿敷衍后,既要处罚ada,如关到小黑屋反省,又要斥责并辞退雷蒙特小姐。所以家庭教师的更换比较频繁。而ada不免要说点小谎话以搪塞母亲。例如,写一些无关痛痒的检讨:“我,ada,没有好好记笔记,明天一定把它做好。”(I, Ada, have not done the Notes very well, but I‘ll try to do it better tomorrow)。 在ada的家庭教师名单中,有几位数学家参与。其中既有平庸之辈,也有赫赫有名的数学大师。下面我们列举几位: 首先应该谈到的是威廉·弗雷德(William Frend)。他曾经教过安娜,现在又来教ada。这时他年事已高,竟然不相信有负数存在,更谈不上了解数学的最新进展。 其次必须提及的是劳伦斯小姐(Miss Arabella Lawrence),安娜请她把13岁的ada那偏好争辩的性情改变过来。不过,ada身体不佳,又染上麻疹,休息了好长一段时间。 还有威廉·金(William King)博士,他1829年也忙过ada的数学教育。但这位博士的数学根基不深,他自己也坦白他学习数学是通过阅读而不是作研究(by reading it rather than by doing it)。此后若干年,虽然他还给ada一些帮助,但在1834年他写给ada的信中,直率地承认“在您的学习中,很快就能把我难倒(you will soon puzzle me in your studies)”。

1.1.3. 大师的影响

    *

      除了以上三位平庸之辈,在ada的一生中,受过三位世界级大师的培养。这就是女科学家玛丽·莎沫维勒(Mary Fairfax Greig Somerville,1780-1872);计算机鼻祖查尔斯·巴贝奇(Charles Babbage,1791-1871);数理逻辑学家德·摩根(Augustus DeMorgan,1806-1871)。三位大师彼此之间有多年交情,对ada栽 培的默契可能是她短暂一生感受到的最大幸福。 1830 年由于母亲安娜与女科学家玛丽·莎沫维勒的交往,15岁的ada也成为玛丽家的常客。玛丽有两个女儿与ada年龄差不多,ada经常去玛丽家里,度过一个个美好的夜晚。玛丽则带她们一起去听音乐会,还经常去伦敦大学听地理学讲座。后来,她们成立了女学者联谊会,组织参观博物馆,拜访科学家等活动。正是这些活动使ada认识了巴贝奇。玛丽把ada当作自己的女儿一样,给她数学书籍、指导她的学习、为她设计思考问题。师徒之间无所不谈,她们畅谈数学问题以及其他自然科学问题,特别是讨论巴贝奇及其制造的计算机器。此外,她们也谈论音乐、绘画等艺术,以及争取妇女受教育权与选举权等政治问题。 1833 年6月5日,在一次聚会上ada认识了查尔斯·巴贝奇。两周后她和母亲一起拜访了巴贝奇在伦敦的工作室,在那里她看到差分机的演示以及对分析机的设计。 ada立刻为这些机器着迷,这给巴贝奇留下深刻的印象。当时花季妙龄的ada出落得已令人入神,据索菲亚·弗雷德(她是威廉·弗雷德的女儿、德·摩根的妻子)回忆,“像她这样年轻,能理解机器的工作,而且看到这一发明的无比美妙(young as she was, understood its working, and saw the great beauty of the invention)”。此后她就与分析机结上了不解之缘。 1841年,在巴贝奇的建议下,德·摩根专门对ada的数学研究进行了高级的个别指导。 玛丽·莎沫维勒的魅力 女科学家玛丽·莎沫维勒写过许多著作,这些著作对创立电磁理论的麦克斯威都有很大影响。不过我国读者对她可能比较陌生,有必要在此多谈一下。 玛丽1780年12月26日生于苏格兰,1872年11月29日卒于意大利那不勒斯,享年92岁。她的父亲William George Fairfax是英国海军官员,曾担任过舰队副司令。他有两儿两女,儿子都受过良好的教育,女儿却按照当时的风气,没有受教育的必要。玛丽只上过一年学,就离开那所既没有给她快乐、又没有给她知识的牢笼。回家后,她开始读所有能够找到的书,而且自修拉丁文、练习钢琴与绘画。 1804 年玛丽与俄国海军军官Samuel Greig结婚。这位丈夫既缺乏科学知识,又对钻研学问毫无兴趣。三年后他病死,玛丽只好带着孩子回到苏格兰。在朋友的鼓励下,她开始钻研数学和自然科学。在她的朋友圈中,有皇家军事学院数学教授William Wallace,爱丁堡大学自然哲学教授John Playfair。这段时间,她还读了牛顿和拉普拉斯的数学与天文学著作。 1812 年玛丽又与William Somerville结婚。这位丈夫是医院督察,他积极支持玛丽对自然科学,如对植物学、地质学的研究。他们又结识了学术界的许多朋友,如爱丁堡数学教授 John Leslie(1766-1832),物理学家David Brewster(他发明了万花筒,kaleidoscope)。1816年,她丈夫调到伦敦工作,而且参与皇家学会的工作。于是全家搬到伦敦居住,从而结识了更多学界名流。如经常去看望巴贝奇,他正在制造机械式计算机。还有George Airy(1801-1892,英国数学家,研究过观察误差的理论),John Herschel(1792-1871,英国天文学家,研究过哈雷彗星。他是巴贝奇在剑桥的同窗好友),William Herschel(John Herschel的父亲,英国天文学家,发现了天王星),George Peacock(1791-1858,英国数学家,研究代数的逻辑处理,他也是巴贝奇在剑桥的同窗好友)。同时,在伦敦也有机会与到访的外国著名科学家见面,如法国大数学家拉普拉斯(Pierre-Simon Laplace,1749-1827),泊松(Simon Poisson,1781-1840),Louis Poinsot(1777-1859),Emile Mathieu(1835-1890)等。 1827 年根据知识传播学会的请求,玛丽着手翻译拉普拉斯的《天体力学》(Laplace: The Mechanism of the Heavens)。事实上,玛丽不仅是单纯的翻译,她还详细解释了当时英国数学家不熟悉的概念与方法。这本书于1831年问世,大获成功,赞美之词不绝于耳。 1834 年她出版了《物理科学的联系》(The connection of the physical sciences),其中讨论了对天王星进行干扰的假想行星。该书导致英国天文学家亚当斯(John Couch Adams,1819-1892)的研究,并最终发现了海王星。 ada和她的母亲安娜成为玛丽·莎沫维勒家庭的朋友。玛丽热情地鼓励、帮助ada研究数学,这使她真正喜欢上数学。同时,ada还从玛丽身上感染到对整个自然科学的热爱。 玛丽的荣誉像潮水般涌来,她成为皇家天文学会会员。英国首相每年给予她津贴。1838年玛丽丈夫的健康恶化,他们移居意大利。玛丽在意大利度过大半生,又写了许多著作。1848年出版的《物理地理学》(Physical geography)是她最成功的著作之一,直到20世纪初,英国许多大学还用它作教科书。 玛丽强烈呼吁妇女应该有受教育的权利、有选举和被选举的权利。1879年牛津大学用她的名字命名了玛丽·莎沫维勒学院,就是对她这种精神的肯定和褒奖。

1.1.4. 德·摩根的严格要求

    * 学过数学的人,应该都知道数学归纳法,它是德·摩根首先提出的;学过计算机的人,大都知道有个德·摩根定理,它对逻辑运算十分重要。德·摩根是在ada结婚并生孩子后,按照巴贝奇的建议,对她进行了严格的数理逻辑的辅导。因为她在为巴贝奇的分析机编制程序时需要这方面的知识。 德· 摩根1806年6月27日出生于印度马德拉斯邦的Madura,当时他的父亲John De Morgan是英国陆军上校,正在印度服役。他是家中第五个孩子,出生不久右眼失明。七个月就随家返回英国。在学校,德·摩根因为残疾并无什么擅长,从来不和其他男孩一起运动,相反却经常成为同学作弄的牺牲品。他10岁时父亲去世。1823年德·摩根16岁时进入剑桥三一学院,在那里他遇到老师 Peacock 和Whewell,他们成为终生的好友。在那里他取得了学士学位,但要取得硕士学位就必须进行神学考试,对此他很反感。然而没有硕士学位,他在剑桥就很难获得奖学金。1826年他返回伦敦家中。1827年他在新建立的伦敦学院大学(University College London)申请数学系主任的职位,虽然当时他尚无数学专著,但还是得到应聘。1828年德·摩根成为该大学第一位数学教授,在就职演讲中他谈了对数学的研究。1830年德·摩根发表了数学著作《算术原理》(Elements of arithmetic),这部著作曾经多次再版。1831年他原则上辞去系主任的职务,但1836年再次担任系主任,一直到1866年。 1838 年德·摩根引入并定义了数学归纳法(mathematical Induction),围绕这个题目他写过许多文章。德·摩根还出版过有关微积分的著作(The Differential and Integral Calculus)。1849年出版了有关三角学的著作(Trigonometry and double algebra),他对复数给出几何学的解释。他认识到代数的纯符号本质,注意到多种代数的存在,而不限于普通代数。他引入了德·摩根定理,对数理逻辑进行了大胆的改革,这大概是德·摩根最伟大的贡献。德·摩根1871年3月18日在英国伦敦去世。 1835 年7月8日ada·拜伦与威廉·金(William King)结婚,当然这个人并不是前面提到过的数学教师Dr. William King。1838年ada的丈夫威廉·金被封为拉夫拉斯伯爵(Earl of Lovelace),因此ada也获得拉夫拉斯伯爵夫人(Countess of Lovelace)的称号。他们结婚后,有了三个孩子:大儿子叫了外祖父的名字Byron Noel,1836年5月12日出生;女儿叫了外祖母的名字,Anne Isabella,1837年9月22日出生;小儿子仍然留有外祖父的痕迹Ralph Gordon,1839年7月2日出生。这应该算是ada短暂一生的第二个幸福了。

1.1.5. 创新的注释

    * 如上所述,ada18岁时听了巴贝奇关于设计差分机的讲演,从而对巴贝奇的机器产生了浓厚的兴趣。后来又对全新的分析机特别地着迷。从1836年1月18日开始,ada给巴贝奇写信,探讨分析机的各种问题。一直到生命结束,她给巴贝奇写了大量的信件。这是研究ada编程思想的重要资料。 但最有代表性的文献,却是ada翻译一本书时所加的注释。那是1842年10月,法国工程师Luigi Federico Menabrea(1809-1896)发表了一篇关于巴贝奇分析机的理论和性能的文章。ada把它由法文译成英文,而且在其中加入她的许多注释。 关于这个工作,巴贝奇有一段精彩的回忆:“在日内瓦综合书目上出现Menabrea关于这个机器的实录后,有一天晚上拉夫拉斯伯爵夫人告诉我,她已经把这篇东西由法文翻译成英文。我问她,为什么不就这个题目自己写一篇原创性的论文,你是能够非常亲切地介绍这个机器的。拉夫拉斯伯爵夫人答复道:她的思想还没有形成。然后我建议她在Menabrea的文章上加些注释。这个建议立即被她采纳了。”“我们一起讨论了必须引入的各种插图,我建议了几个,但是否选择完全由她决定。还有一些不同问题的代数工作,例如有关伯努利数的计算,为了减少她的麻烦,我给出一些计算。结果她寄来一份修订,纠正了我在计算中的一个重大错误。”“拉夫拉斯伯爵夫人的注释比原文的长度扩展了三倍。她全力以赴,对于和这个题目有关的很困难、很抽象的问题都作了解释。把这两个资料一起提供给读者,就能理解机器的工作原理,并通过完整的示范,了解如何使用分析机去执行分析开发的任务。”

1.1.6. 最早的编程设想

    * 在这些注释中,ada描述了分析机如何进行编程,最早给出计算机程序设计的许多想法。下面给出几个注释的内容,以飨读者:

    * 注释A:说明设计中的“分析机”与已存在的“差分机”的区别。她的讨论预言了通用计算机(general purpose computer)的作用,这超出了巴贝奇的想象。她表明分析机可以接受各种各样的穿孔卡:“控制卡”、“数据卡”、“操作卡”,它们如何使计算机自动地对输入的数据完成正确的操作。换句话说,计算机能“分析数据”。她还提议数字和其他符号如字母都可以“编码”成数字数据,机器可以处理它们,并给出写成的数据。她甚至要为分析机能产生音乐而奋斗。
    * 注释B:ada讨论了分析机的记忆能力,她把记忆装置称为“仓库”。她提出了存储位置或地址的想法。她指出插入“注解或备忘”的可能性,计算机不会执行它们,但可以让人们简明地了解程序将走向何方。
    * 注释C:ada引入“返回”(backing)的概念,制作一个操作卡返回到某个位置,而它就是将要工作的下一个数据卡。她解释这样做的原因是:“在解决一个问题的方案中,能确保某个特殊的穿孔卡或者一组卡能成功地使用若干次”(to secure the possibility of bringing any particular card or set of cards into use any number of times successively in the solution of one problem)。这个思想我们今天称为“循环”(looping),ada和巴贝奇早就讨论过这个问题。
    * 注释D:ada解释了如何使用操作卡、返回、仓库以及各种控制卡,以写成一个指令序列,去完成一个特定的操作集合。
    * 注释E:她解释了机器如何拥有三角函数和其他函数。这就在计算机内部引入了内建函数(built-in function)的思想。
    * 注释F:她给出利用返回处理(循环),仅通过重复几个操作,来解一个任意大小的线性方程组。她详细写出解十元线性方程组的程序。她还推测通过简单的循环过程生成素数表的可能性。
    * 注释G:ada警告读者,如果输入“不真实”的信息,那么计算机就不能做任何事情。今天我们把这称为“输入垃圾,输出垃圾”(Garbage in, Garbage out)。她写到:“分析机不能自命不凡,无论什么问题都能解决。它只能完成我们告诉它如何做的事情。它能遵循分析,但没有能力预期任何分析关系或事实。”(The Analytical Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it to perform. It can follow analysis; but it has no power of anticipating any analytical relations or truths)。在注释G中,ada还写了一个程序,让分析机生成伯努利数的表。
          o 由上可知,ada获得世界上第一位计算机程序员的荣誉是当之无愧的。

1.1.7. 辞世与纪念

    * 由于受子宫癌和赌博债务的折磨,有的文献还说她曾经吸毒,这位悲剧性的人物ada过早地于1852年11月27日去世,生命周期与她的父亲拜伦同样短促,都只有37岁。最后与她的父亲一起,埋葬在诺丁汉郡Hucknall镇拜伦家族的墓地。 ada 的形象完美地体现了一位程序员应该具备的科学家与艺术家的双重气质。一方面,程序员需要在数学概念、形式理论、符号表示等基础上工作,应该有科学家的素养。另一方面,对于一个高效的、可靠的、便于维护的软件系统,又必须刻画它的细节,并把它组成一个和谐的整体,所以程序员又应该有艺术家的气质。 1975 年1月,美国国防部(DoD)提出统一高级语言的必要性,并为此在国际范围内招标。1979年5月,从四种入围语言中最后选定了一种。现在,该给它起个什么名字呢?总不能把它称为DoD-1语言吧。国防部通过与英国拉夫拉斯伯爵的继承人莱顿(Lytton)伯爵协商,决定把新语言命名为Ada语言,以此纪念ada在130年前对程序设计的历史贡献。于是,ada的名字、生平与事迹才广为世人传诵。