Re: [新闻] 她会个屁程式设计! 维密超模惊人简历

楼主: jserv (松鼠)   2018-10-10 18:24:52
※ 引述《jfsu (水精灵)》之铭言:
: 另外,有此一说,工程师常挂在嘴边的“bug”是从一位著名的女性程式设计师霍普
: (Grace Murray Hopper, 1906.12.9~1992.1.1,计算机科学家,亦是第一位官拜美国
: 海军少将的女性。) 在无意间的小发现。
[...]
: 在她44年的职业生涯中,最为著名的是她开发的商用电脑语言“COBOL”。此外,
: 她也发明了编译器(compilers),让程式设计师便于撰写、阅读与维护程式码。
Grace Hopper 的军衔应为海军“准将”(Rear Admiral Lower Half,位阶介于少将和
上校之间) [1],美国海军驱逐舰霍珀号驱逐舰以她来命名 (USS Hopper),耶鲁大学
也有 Hopper 学院 [2]。
说 Grace Hopper “开发”COBOL 程式语言不精准,说“影响”和“主导”COBOL 的
工业标准会更好,毕竟 COBOL 是缘自美国海军和多个承包商的协作。
1951 至 1952 年间,Hopper 在 UNIVAC I 上发展了第一套编译器 A-0 System [3],
能将高阶程式转换为机器码,但具体功能更接近程式码加载器或连结器,而真正我们
今天概念上的编译器是 Corrado Bohm 教授在 1951 年博士论文描述的 meta-circular
compiler [4],自始为结构化程式设计的滥觞。当然,Bohm 教授的研究受到 A-0
System 直接的影响。
* 延伸阅读: #1RhWSNPG
Hopper 的 A0 后续有 A-1, A-2, A-3, AT-3 (那年代电脑技术术语比较没创意),而
演化到 B-0 (取自 Business Language version 0 的意思) 时,就以 FLOW-MATIC [5]
为人们所熟知,这也是 Hopper 对后世极大启发的作品:当时任职于 Remington Rand
公司的 Hopper 坚信可用类似英语书写的方式去撰写电脑程式,而 COBOL 则可视为
贯彻 Hopper 信念的工业化程式语言。
FLOW-MATIC 范例程式码如下:
(0) INPUT INVENTORY FILE-A PRICE FILE-B ;
OUTPUT PRICED-INV FILE-C UNPRICED-INV FILE-D ;
HSP D .
(1) COMPARE PRODUCT-NO (A) WITH PRODUCT-NO (B) ;
IF EQUAL GO TO OPERATION 4 ; OTHERWISE GO TO OPERATION 2 .
(2) TRANSFER A TO D .
(3) WRITE-ITEM D .
(4) TRANSFER A TO C .
注意到每行后方的句点 (.) 和中间的分号 (;),是不是有点像英语呢?
对应的 COBOL 程式 [6] 类似以下:
IF invalid-record
IF no-more-records
NEXT SENTENCE
ELSE
READ record-file
AT END SET no-more-records TO TRUE.
美国海军采纳了 FLOW-MATIC,但很快就发现海军的承包商自行发展编译器和执行
环境,致使 FLOW-MATIC 程式出现彼此不相容的状况,为此海军大为苦恼。Hopper
于是出手开发 Validation 程式,用来检验 FLOW-MATIC 程式是否用同一套编译器
产生,从而确认程式得以运作。
1959 年,为解决编译器之间不一致的问题,在五角大厦的推动下,军方与民间专家
召开 Conference/Committee on Data Systems Languages (简称 CODASYL),并任命
Hopper 作为首席技术顾问。会议中通过新的程式语言标准 Common Business Oriented
Language,简称 COBOL,需要注意的是,COBOL 除了采用 FLOW-MATIC 的语法,也
借镜了 IBM 发展的 COMTRAN (取自 COMmercial TRANslator 的意思,对比于 1950
年代针对科学运算发展的 FORTRAN [Formula Translation] 程式语言) [7] 的许多
设计想法。
COBOL 除了语法和关键字大量借用英文书写,原始版本也规范若干程式码排版的规范,
可参照 The Beauty of the COBOL Programming Language [8],可比 Python 程式语言
的空白缩排更奇特多了。
当然,Hopper 作为“COBOL 之母”当之无愧,不过“发明”(invent) 或“发展”
(develop) 一词不能精准描述 Hopper 所为。
1966 年 Hopper 届满 60 岁,因为她当时的官阶是海军的中校,美国海军认定 60 岁
就该届龄退休了。在退休的那日,Hopper 说这是她一生中最悲伤的一日, 因为人家已经
告诉她她太老了 (1986 年 Hopper 再度退休)。可是海军在 Hopper 退休不久后,发现没
有她是不行的,因为海军里头仍有各种资讯处理、 自动化、正规化的工作尚未完成,所以
在 Hopper 退休的五个月后,海军就要求她复职。于是 Hopper 在 1967 年 8 月 1 日又
回到美国海军服役,并担任多项海军电脑相关计画的主持人和顾问。
1967 至 1977 年间,Hopper 供职于美国海军资讯系统计画办公室旗下的美国海军程式
语言小组,领导 COBOL 验证软件与编译器的发展,后者成为美国海军 COBOL 标准化的
一部份。
[1] Named for Rear Admiral "Amazing" Grace Hopper
https://www.public.navy.mil/surfor/ddg70/pages/namesake.aspx
Amazing Grace的典故来自于一个著名英文基督教圣诗,中译为《奇异恩典》,
这里是双关语
[2] On Feb. 11 (2017), President Peter Salovey announced that he and the
Yale Corporation had voted to change the name of Calhoun College, one
of the university's undergraduate residential colleges, to honor alumna
Grace Murray Hopper.
https://news.yale.edu/2017/02/10/ \
grace-murray-hopper-1906-1992-legacy-innovation-and-service
[3] A0 System
https://en.wikipedia.org/wiki/A-0_System
[4] meta-circular compiler 和 Corrado Bohm 教授
https://en.wikipedia.org/wiki/Corrado_B%C3%B6hm
[5] FLOW-MATIC
https://en.wikipedia.org/wiki/FLOW-MATIC
[6] 若干 COBOL 范例和解说
https://en.wikipedia.org/wiki/COBOL
[7] COMTRAN
https://en.wikipedia.org/wiki/COMTRAN
[8] https://devops.com/the-beauty-of-the-cobol-programming-language-v2/

Links booklink

Contact Us: admin [ a t ] ucptt.com