图灵奖:彼得·诺尔(2005)
图灵奖是计算机界最负盛名的奖项,有“计算机界诺贝尔奖”之称。”图灵奖”系列将介绍历届获奖者。每周二更新,本文为第 49 期。图灵奖:彼得·诺尔(2005)
文章来自微信公众号“科文路”,欢迎关注、互动。转发须注明出处。
本文来自 Peter Naur,翻译基于 谷歌翻译.
Backus–Naur form (巴科斯-诺尔范式)
Peter Naur(1928年10月25日- 2016年1月3日),丹麦计算机科学先驱,2005年图灵奖得主。他最为人所铭记的是,他与John Backus共同开发了用于描述大多数编程语言语法的Backus - naur形式(BNF)表示法。他还为创建ALGOL 60语言做出了贡献。
他于 2005 年获得图灵奖。
其图灵奖颁奖词为“表彰对编程语言 Algol 60 的设计、定义、编译器的设计,以及对计算机编程的艺术和实践做出的根本性的贡献”。(For fundamental contributions to programming language design and the definition of Algol 60, to compiler design, and to the art and practice of computer programming. )
生平
诺尔在 1957 年由获得了博士学位开始了天文学家的职业生涯,但他与计算机的邂逅导致了他的职业转变。
从1959年到1969年,他受雇于丹麦计算机公司Regnecentralen,同时在尼尔斯·玻尔研究所和丹麦技术大学讲课。1969年至1998年,诺尔在哥本哈根大学担任计算机科学教授。
他是国际信息处理联合会(IFIP)算法语言和演算2.1工作组的成员,该工作组定义、支持和维护 ALGOL 60 和 ALGOL 68 程序语言。1960 年至 1993 年间,他是《BIT数值数学》的编委会成员,这是一本专注于数值分析的杂志。
诺尔的主要研究领域是计算机程序和算法的设计、结构和性能。他也是软件工程和软件架构的先驱。在他的《计算:人类活动》(1992)一书中,他对计算机科学的贡献进行了汇总,他拒绝了将编程视为数学分支的形式主义编程学派。他不喜欢与巴克斯-诺尔范式(唐纳德·高德纳认为是他)联系在一起,他说他更喜欢被称为巴克斯范式。
诺尔不喜欢计算机科学这个词,他建议把它叫做数据学或数据科学。
BNF
搞过编译器的都不陌生。
在计算机科学中,巴克斯-诺尔形式(BNF或巴克斯范式)是一种用于描述编程语言或其他形式语言语法的符号。BNF可以被描述为上下文无关语法的元语法表示法。这在程序语言到指令集的中间表示中很有用。
BNF 由三部分组成:非终结符号、终结符号以及用一系列符号替换非终结符号的规则。
这些所谓的“推导规则”写成
1 | <symbol> ::= __expression__ |
<symbol>
是一个非终结符变量,总是括在<>
对之间::=
表示必须将左边的符号替换为右边的表达式__expression__
由一个或多个终结或非终结符号序列组成,其中每个序列由一个竖线|
分隔,表示可选替代
比如,
<postal-address> ::= <name-part> <street-address> <zip-part>
就是一个邮寄地址的 BNF,它由三部分组成,然后这三部分会继续由 BNF 表示成类似的形式。
~~
都看到这儿了,不如关注每日推送的“科文路”、互动起来~
至少点个赞再走吧~
觉得还不错?可以在公众号菜单栏找到“赞赏”入口~
图灵奖:彼得·诺尔(2005)