当前位置: 首页 > 科技观察

故事-麻省理工女教授改编程

时间:2023-03-23 01:25:31 科技观察

本文经AI新媒体量子比特(公众号ID:QbitAI)授权转载,转载请联系出处。如果你上过编程课,一定被老师提醒过:不要使用goto语句!因为goto语句不仅让代码可读性变差,随意跳出也会给程序带来安全隐患。但是这种几乎被现代编程所禁止的语句,在计算机出现之初就司空见惯了。早期的程序员使用goto来解决代码无法预料的后果。当他们遇到任何问题时,他们使用goto让程序跳转到指定的语句。直到麻省理工的一位女教授才让我们彻底摆脱了goto语句,她就是BarbaraLiskov。△芭芭拉·利斯科夫(BarbaraLiskov),图源:QuantaMagazine刚满80岁,她很荣幸。她是美国第一批获得计算机科学博士学位的女性之一。她曾获得冯诺依曼奖和图灵奖。甚至可以说她发明了构成现代编程基础的体系结构。但在此之前,她是唯一一个因为性别而被普林斯顿数学研究生拒之门外的人。那么BarbaraLiskov是什么样的传奇计算机科学家呢?在她80岁生日之际,我们来看看她是如何改变编程的。好的设计带来好的代码1940年代,美国发明了第一台电子计算机ENIAC。早期的计算机虽然体积大,但提供的功能简单,当时的编程不用考虑太复杂的结构。goto语句是最简单的方法,它只需要引导程序执行到相应的语句即可。广泛使用的goto语句简单但缺乏逻辑。以这种方式编写的程序难以阅读且危险,甚至会害死人。曾经有一种名为Therac-25的软件控制放射治疗机。由于使用了过时的编程方法,有6名患者接受了严重过量的辐射,导致发生致命事故。没有编程的基本框架,计算机硬件的发展已经超出了程序员所能承受的负担。最后,在1960年代,计算机编程迎来了新的理论。当时,两位计算机科学家B?hm和Jacopini提出goto语句可以完全用结构化程序代替,只需要使用sequence、selection和loop这三种结构。.这种结构一直沿用至今。1974年,这位35岁的麻省理工学院女教授和她的学生将这一想法付诸实践,发明了一种新的编程语言CLU。CLU完全放弃了goto语句。虽然这种编程语言没有被广泛采用,但它在编程语言的发展过程中发挥了非常重要的作用。CLU中的一些概念在很多方面影响了后来的编程语言,对后来出现的一些面向对象编程(OOP)语言做出了很多贡献。后来出现的Java、C++、C#、Python都是CLU的后裔。CLU的主要贡献包括抽象数据类型、共享调用、迭代器、多个返回值、类型安全参数化类型和变量类型。Liskov对编程的贡献不仅限于此。现代面向对象程序设计五原则“SOLID”中的L就是以她的名字命名的LiskovSubstitution原则。1987年,Liskov在一次会议的主题演讲中首次提出了这一原则,即继承必须保证超类拥有的属性在子类中仍然持有。按照里氏代换原则编写的程序,克服了在继承中重写父类带来的重用性差的缺点。而且这个原则也保证了程序的正确性,扩展的子类不会给现有系统引入新的错误,减少了代码出错的可能性。时至今日,所有面向对象编程的程序员都还在坚持里氏提出的这个原则。传奇女性,BarbaraLiskov今天,Liskov因其学术成就而广为人知。但在那个年代,当科学家,当女人,真的很不容易。由于我的性别,我曾被普林斯顿大学数学专业的研究生拒之门外。当Liskov在伯克利读本科时,她是100名学生班级中仅有的一两个女同学之一。她修完了所有与数学和科学相关的课程,这是学校当时不鼓励女学生的做法。从来没有人对她说,“嘿,你做得很好,你不考虑和我们一起工作吗?”或类似的东西。幸运的是,里斯科夫的妈妈当面并没有反对她(虽然只是鼓励她在学校表现好)。但她并没有认真对待,直到斯坦福大学研究生毕业,她才意识到“性别”问题的存在。因为当她毕业时,没有人找她谈工作。而像她(拉杰·雷迪RajReddy饰)这样的男同学可以被招入学术职位。要知道,那时候的就业有点像“包工”——顾问会通过与全国各部门的合作,为毕业生安排工作。但对于利斯科夫来说,可以说是“无人问津”。此前,里斯科夫曾申请过麻省理工学院的工作,但收到的反馈“不被视为教授”。发生这种情况时,您会认为“我不够好”。“但与此同时,我也认为计算机科学是开放的。”幸运的是,Liskov在Mitre的第一份工作还不错,在这家公司期间,她深入研究了编程方法。△BarbaraLiskov正在设计抽象数据类型(ADT)这项研究让她获得一等奖论文。1971年,她就该研究发表了演讲,并应麻省理工学院和伯克利分校的邀请。就在那时,事情发生了变化。当我刚进入麻省理工学院时,大约1000名员工中只有大约10名女教员。但事实上,麻省理工学院有很多杰出的女性并不在教职工队伍中。在科学领域,很少有人知道女性所做的一些基础性贡献。90年代,她回到斯坦福参加院系庆祝活动。一群老教授八卦“老男孩网络”,他们说:有一个年轻的女人做得很好,但那是因为她嫁给了教授。利斯科夫认为这是一件愚蠢的事情。在Liskov接任计算机科学系主任之前的10年里,该系只发现一名女性值得雇用。2001年至2004年担任系主任期间,里斯科夫一共聘请了7名女性,而且她没有大惊小怪,其中3名初级教员非常优秀。后来,里斯科夫获得了图灵奖。即使有这样的荣誉,质疑声依然在所难免。△2008年美国计算机协会(ACM)图灵奖(TuringAward),她所做的工作没有我不知道的。她为什么获得图灵奖?哦,那项工作不是她做的,是男同事给她做的。“这简直是胡说八道,”利斯科夫说。即使在今天,当她足够开放时,她仍然认为现在的情况并不比以前好:也许我很幸运。如果我大学毕业就结婚,我可能会有完全不同的结果。如何看AI的未来那么,Liskov对于人工智能和机器学习的发展有什么看法呢?我的博士论文是与JohnMcCarthy一起研究人工智能的。约翰提出了“国际象棋残局”的话题。由于没下过象棋,所以看了相关书籍,把一些象棋算法翻译成了计算机算法。那时候,人们认为让程序做人类希望它们做的事情是明智的,但现在情况已经不同了。今天的机器学习程序在大多数时候都运行良好。但在某些情况下,效果并不理想,让人不知道问题出在哪里。如果我正在处理一个问题并且需要知道它是如何工作的,我不会使用机器学习。人工智能是一种应用,而不是核心科学。至于计算机科学的发展,里斯科夫更担心的是互联网,包括假新闻和安全问题。如果你们是一对离婚夫妇,而丈夫发布了诽谤他妻子的东西,包括她的地址等个人信息,这可能会导致一些非常可怕的事情。这要追溯到80年代。当时有15所大学和几个政府单位实验室通过互联网连接起来。我们都是好朋友。他们当时的态度是网站不应该对内容负责,这会扼杀他们的成长。而今天,这种态度仍在继续。我们现在解决现在的问题,不仅需要技术,还需要法律来解决人们的不良行为,解决隐私和安全的问题。OneMoreThing分享了Liskov对女性职业发展的建议:在你真正站起来之前,保持低调。然后拥抱成功。