0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

首位女性图灵奖获得者离世,曾开发上古语言COBOL编译器

Linux爱好者 来源:量子位 2020-08-14 16:18 次阅读

历史上第一位女性图灵奖得主Frances Allen,在她88岁生日这天去世了。

Jeff Dean专门发推表示悼念。

作为编译器优化领域杰出的学者,Frances Allen见证了编译器高速发展的黄金时代。

60年代,时值计算机行业飞速发展,Allen赶上这波人才空缺,加入了IBM公司,最后一干就是45年。

期间,她负责过Stretch-Harvest(简称Stretch超算)的编译器优化,PTRAN开发,开创了针对Fortran的自动并行化技术和SSA(静态单一赋值)的IR(中间表示法)。

时至今日,IR仍被广泛应用在静态编译器和JIT中。

除此之外,她还是「上古语言」COBOL的编译器开发者

在计算机发展历程中,「编译器」是一个非常古老的领域,甚至比操作系统还要古老。

但它对推动计算机领域的发展功不可没。

在Frances Allen生前的一次访谈中,她曾提及过自己当上程序员的契机、学习编程的方式、以及对如今的部分高级语言(如C语言)的看法。

从她的一些观点中,也许能窥见编译器发展的历史。

获图灵奖,其实与性别无关

在2007年2月获图灵奖时,作为第一位女性获奖者,Frances Allen(下简称Allen)坦言,其实在那个互联网并不发达的时代,许多人只知她的名字,但不知道她的性别。

在一次IBM关于ACS项目的会议上,许多人见到她的第一面都惊叹:「你就是Allen?」

这时候她才知道,分配房间的工作人员按名字顺序编排,误将她和另一名男性分在了一个房间。

最后,大会工作人员不得不为她找了一间女佣的房间,这件事情才算过去。

Allen生前曾回忆,其实在计算机最初发展时,各公司希望招更多的女程序员。那时候大家普遍认为,女性的「细心」使得她们能展现出优秀的编程能力。

事实上,与之相反的是,时至今日,在编程相关的工作上,依旧是男性居多。

一方面与如今计算机岗位大多要求「工科」学位有关,而另一方面,Allen自己也表示,她当上程序员,其实并不因「细心」,毕竟她自己在编程中也时常犯错。

相比之下,她对数学的兴趣非常浓厚,着迷于演算过程的严密与精确。

从数学老师到程序员

在Allen身上,数学与编程的共通之处得以体现。

最初加入IBM时,Allen的目的仅仅是还硕士助学贷款,然后当数学老师(当地数学老师要求硕士学历)。

因此,相较于开发人员,Allen后来的工作更侧重于对系统结构和算法的整体把握,也主导了PTRAN项目的完整开发。

她会阅读每一块并进项目中的源码,了解算法实现的结构,如同演算过程一般,看着一个项目慢慢地被开发出来。

事实上,Allen坦言,如今产品开发中的一些弊端一直存在,但向来难以解决。

其中一个问题就是,当小组内的成员有更好的想法时,往往因为产品周期所限,而难以实现。

大概这也是如今程序员对产品开发有所抱怨的原因:短周期的运转,某种程度上限制了程序员的编程自由。

与此同时,Allen也谈及了自己学习编程的方式。

学习编程的方式

Allen表示,对于初学者而言,掌握一门编程语言最快的方式依旧是看源代码。

事实上,Allen最初入门Fortran的过程也并不愉快。

但随着对这门语言的深入理解,她被激发出了极大的兴趣,而深入理解最简单也最直接的办法,就是阅读杰出的程序员所编写的源码。

对于她来说,最好的代码不是能简单又直接地解决问题,就是能通过显而易见的程序结构展现隐晦的问题。

通过研究一个同事编写的语法分析器,她研发出了PTRAN(并行翻译项目)的一部分功能,这部分功能在于它有很强的即时纠错能力。

当被问及阅读源码是否是一件非常困难的事情时,Allen认同了这一观点,她表示这一过程会非常困难,但是必须去做。

过程中可以运用很多技巧,例如列出提纲、或者事先了解一下代码适用领域,但阅读源码是无法跳过的一件事情。

只有这样,才能从最根本上掌握一门语言的用法,以及代码核心的逻辑。

而这一习惯,一直到Allen进入IBM管理层后也并未改变。

她熟识一些大学教授,对于他们所写的代码风格有所了解,对于她而言,代码结构清晰的教授,所教的学生会更值得她考虑。

除此之外,对于编程或者某一方向有热情的学生,也在她的考虑范围之内。

谈及进入管理层,Allen表示,C语言的出现也是原因之一。

「C语言的出现是一次倒退」

当被问及对如今C、Java等高级语言的看法时,Allen坦诚,自己在C语言出现后,就很少再有机会接触编程了。

这对于她而言是不小的打击。

在60年代,有很多诸如Fortran、COBOL、APL……等高级语言,这些语言所能完成的功能令人惊叹。

但C语言诞生后,摧毁了推进自动优化、自动并行化以及高级语言和机器语言自动映射技术的进程。

此后,编译器基本上不再在大学和学院中教授。

即使还有相关会议在继续召开、或是研究相关算法,但这些工作所能弥补的都微乎其微。

在她看来,C、Java、C#Python等语言对问题的求解方法「过度地指手画脚」,是破坏计算机科学作为学术研究的元凶。

这些语言的出现,使得许多更大胆的概念被局限于已有的思想中,但想要改变并非一日之谈。

但是,即使这些语言带来的代码已经有数百万行甚至更多,Allen认为,对于计算机科学的研究仍然需要尝试,来继续打破边界。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • COBOL
    +关注

    关注

    0

    文章

    6

    浏览量

    9727
  • 编译器
    +关注

    关注

    1

    文章

    1618

    浏览量

    49043
  • 图灵奖
    +关注

    关注

    0

    文章

    5

    浏览量

    2069

原文标题:首位女性图灵奖获得者离世,曾开发上古语言COBOL编译器

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C7000优化C/C++编译器

    电子发烧友网站提供《C7000优化C/C++编译器.pdf》资料免费下载
    发表于 10-30 09:45 0次下载
    C7000优化C/C++<b class='flag-5'>编译器</b>

    Keil编译器优化方法

    我们都知道,代码是可以通过编译器优化的,有的时候,为了提高运行速度或者减少代码尺寸,会开启优化选项。
    的头像 发表于 10-23 16:35 315次阅读
    Keil<b class='flag-5'>编译器</b>优化方法

    AI编译器技术剖析

    随着人工智能技术的飞速发展,AI编译器作为一种新兴的编译技术逐渐进入人们的视野。AI编译器不仅具备传统编译器的功能,如将高级语言编写的源代码
    的头像 发表于 07-17 18:28 1458次阅读

    人工智能编译器与传统编译器的区别

    人工智能编译器(AI编译器)与传统编译器在多个方面存在显著的差异。这些差异主要体现在设计目标、功能特性、优化策略、适用范围以及技术复杂性等方面。以下是对两区别的详细探讨,旨在全面解析
    的头像 发表于 07-17 18:19 1670次阅读

    Meta发布基于Code Llama的LLM编译器

    近日,科技巨头Meta在其X平台上正式宣布推出了一款革命性的LLM编译器,这一模型家族基于Meta Code Llama构建,并融合了先进的代码优化和编译器功能。LLM编译器的推出,标志着Meta在人工智能领域的又一重大突破,将
    的头像 发表于 06-29 17:54 1453次阅读

    SEGGER编译器优化和安全技术介绍 支持最新C和C++语言

    SEGGER编译器是专门为ARM和RISC-V微控制设计的优化C/C++编译器。它建立在强大的Clang前端上,支持最新的C和C++语言功能。 除其他外,其主要功能包括: 1) 尺寸
    的头像 发表于 06-04 15:31 1397次阅读
    SEGGER<b class='flag-5'>编译器</b>优化和安全技术介绍 支持最新C和C++<b class='flag-5'>语言</b>

    C语言:嵌入式开发中的关键编译器角色

    嵌入式程序开发跟硬件密切相关,需要使用C语言来读写底层寄存、存取数据、控制硬件等,C语言和硬件之间由编译器来联系,一些C标准不支持的硬件特
    发表于 04-26 14:53 540次阅读
    C<b class='flag-5'>语言</b>:嵌入式<b class='flag-5'>开发</b>中的关键<b class='flag-5'>编译器</b>角色

    QT开发学习笔记1(安装交叉编译器

    QT安装交叉编译器
    的头像 发表于 02-18 10:02 853次阅读
    QT<b class='flag-5'>开发</b>学习笔记1(安装交叉<b class='flag-5'>编译器</b>)

    【飞腾派4G版免费试用】仙女姐姐的嵌入式实验室之三~配置PhyGCC飞腾编译器

    和编程语言的新世界 Grace Hopper是耶鲁大学第一位女博士,第一位女性美国海军将军,发明了世界上第一个编译器,第一个全美科技女性
    发表于 12-16 19:12

    Triton编译器的原理和性能

    Triton是一种用于编写高效自定义深度学习原语的语言编译器。Triton的目的是提供一个开源环境,以比CUDA更高的生产力编写快速代码,但也比其他现有DSL具有更大的灵活性。Triton已被采用
    的头像 发表于 12-16 11:22 2722次阅读
    Triton<b class='flag-5'>编译器</b>的原理和性能

    闪闪发光的“她”· Ladies in Tech |相聚女性开发者论坛

    2023开放原子开发者大会 . OPENATOM DEVELOPERS CONFERENCE Ladies In Tech 女性开发者论坛 2023.12.17 万众期待的2023开放原子开发
    的头像 发表于 12-08 19:50 523次阅读
    闪闪发光的“她”· Ladies in Tech |相聚<b class='flag-5'>女性</b><b class='flag-5'>开发者</b>论坛

    TVM编译器的整体架构和基本方法

    有将近两个月没有学习一些新东西,更新一下博客了。一直在忙公司的一个项目,是做一款支持LSTM和RNN的通用架构加速IP。自己恰好负责指令编译工作,虽然开始的指令比较粗糙,没有一套完整的编译器架构
    的头像 发表于 11-30 09:36 2278次阅读
    TVM<b class='flag-5'>编译器</b>的整体架构和基本方法

    常用的c语言开发环境有哪些

    )、文本编辑编译器等工具。 IDE(集成开发环境) IDE是一种集成了文本编辑编译器和调试工具等功能的
    的头像 发表于 11-27 16:14 5621次阅读

    为什么C语言要进行编译

    为什么我们编写的C语言要进行编译?什么是编译编译时发生了什么? 机器无法理解我们编写的C语言,而编译
    的头像 发表于 11-24 15:47 1249次阅读
    为什么C<b class='flag-5'>语言</b>要进行<b class='flag-5'>编译</b>

    编译器的优化选项

    一个程序首先要保证正确性,在保证正确性的基础上,性能也是一个重要的考量。要编写高性能的程序,第一,必须选择合适的算法和数据结构;第二,应该编写编译器能够有效优化以转换成高效可执行代码的源代码,要做到
    的头像 发表于 11-24 15:37 853次阅读
    <b class='flag-5'>编译器</b>的优化选项