博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
程序之父: Pascal之父:尼克劳斯·沃思(二)
阅读量:4109 次
发布时间:2019-05-25

本文共 2234 字,大约阅读时间需要 7 分钟。

除了程序设计语言之外,沃思在其他方面也有许多创造。为了定义和描述语言,沃思对著名的“巴科斯-诺尔范式”BNF进行了扩充,成为EBNF(Extended BNF)。我们目前所看到的许多语言的 BNF实际上是EBNF,不过人们往往忽略掉这个E字。和BNF一起出现的,还常常有一些看上去像铁路图那样的图形,称作“语法图”(syntax chart或 syntax diagram)或“铁路图”(railroad diagram),这也是由沃思所设计与发明的,这种图形标记法的描述能力等价于BNF,但当然更易于阅读与理解,更加直观。在语法图中,用圆圈表示终结符,用方框表示非终结符,用有向弧表示走向,图上一条通路就表示该语法结构的一种正确定义方法。语法图的4种基本构造方法如下。
  (1) 若产生式为W→W1W2W3,则语法图如图1。
  (2) 若产生式为W→W1W2|W3a|bcW4 ,则语法图如图2。
  (3) 若产生式为W→abW,则语法图如图3。
  (4) 若产生式为W→ab|abW,则语法图如图4。
  对于较复杂的产生式,其语法图一般可通过上述4种语法图进行组合而得。
  在对上下文无关文法的研究中,一个很重要的问题是如何确定两个符号之间的优先关系。现在一般采用的办法也是由沃思和他的同事韦伯提出来的,就叫沃思-韦伯优先关系(Wirth- Weber precedence relation),或叫简单优先关系。它规定上下文无关文法 G中任意两个符号的优先关系如下。
  (1)X<Y,当且仅当有产生式 A→αXBβ,且有推导B+→Yr。
  (2)X=Y,当且仅当有产生式A→αXYβ。
  (3)X> Y,当且仅当有产生式 A→αBYβ,且有推导B+→rX及Y →*aδ。
  其中A、B为非终结符,X、Y为待定优先关系的两个任意符号,α、β、Υ和δ为由终结符和非终结符组成的任意符号串,可以是空串。a是终结符。
  沃思的学术著作很多,主要有如下几种,其中一些原版是用德文写的,翻译成了英文。
  《系统程序设计导论》( Systematic Programming: An Introduction,Prentice- Hall,1973。其德文版已出至第 5版)
  《算法十数据结构=程序》(Algorithms+ Data Structures= Programs,Prentice-Hall,1976)
  《算法和数据结构》(Algorithms and Data Structures, Prentice - Hall ,1986)
  《Modula-2程序设计》(Programming in M0dula-2,Spring6r,1988,第4版)
  《PASCAL用户手册和报告: ISO PASCAL标准》 (PASCAL UserManual and Report: ISO PASCAL Standard, Sprillger, 1991)
  《Oberon计划:操作系统和编译器的设计》( Project Oberon:the Design of an Operating System and Compiler,ACM Pr.,1992)
  《Oberon程序设计:超越Pascal和Modula》(Programming in Oberon: Steps beyond Pascal and Modula, ACM Pr,1992)
  《数字电路设计教材》(Digital Circuit Design for Computer Science Students:An Introductory Textbook, Spnnger, 1995)
  《编译器构造的原理和技术》(Theory and Techniques of Compiler Construction,Addison- Wesley,1996)
  ACM除了1984年授予沃思图灵奖外,1987年又授予他“计算机科学教育杰出贡献奖”。另一重要的国际学术组织IEEE也授予过沃思两个奖项: 1983年的 Emanual Piore奖和 1988年的计算机先驱奖(Computer Pioneer Award)。1992年,加州大学伯利分校命名沃思为“杰出校友”。
  沃思是在1984年10月于旧金山举行的ACM年会上接受图灵奖的。沃思发表了题为“从程序设计语言设计到计算机建造”(From Programming Language Design to Computer Construction)的图灵奖演说,回顾了自己在计算机领域所做的工作。演说全文刊载于Communications of ACM,1985年 2月,159- 164页,也可见《前 20年的 ACM图灵奖演说集》(ACM Turing Award Lectures——The First 20 Years:1966-1985,ACM Pr.),179-196页。沃思在演说中强调了程序设计语言简 性的重要意义,也讨论了它所需的硬件和软件环境(因为沃思一直很重视语言的实现问题)。他介绍了在设计Modula-2和Lilith中的经验,指出第一手经验和选择良好开发工具的无比价值。
  沃思现仍在苏黎世工学院任教,他的电子箱为:wirth @ inf.ethz.ch

转载地址:http://fbasi.baihongyu.com/

你可能感兴趣的文章
一篇搞懂Java反射机制
查看>>
一篇彻底搞懂Java注解与枚举类
查看>>
【2021-MOOC-浙江大学-陈越、何钦铭-数据结构】树
查看>>
MySQL主从复制不一致的原因以及解决方法
查看>>
RedisTemplate的key默认序列化器问题
查看>>
序列化与自定义序列化
查看>>
ThreadLocal
查看>>
从Executor接口设计看设计模式之最少知识法则
查看>>
OKhttp之Call接口
查看>>
application/x-www-form-urlencoded、multipart/form-data、text/plain
查看>>
关于Content-Length
查看>>
WebRequest post读取源码
查看>>
使用TcpClient可避免HttpWebRequest的常见错误
查看>>
EntityFramework 学习之一 —— 模型概述与环境搭建 .
查看>>
C# 发HTTP请求
查看>>
初试visual studio2012的新型数据库LocalDB
查看>>
启动 LocalDB 和连接到 LocalDB
查看>>
Palindrome Number --回文整数
查看>>
Reverse Integer--反转整数
查看>>
Container With Most Water --装最多水的容器(重)
查看>>