" Javascript,The Good Parts":Railroad Diagrams

时间:2013-10-14 21:56:04

标签: javascript

我正在阅读道格拉斯·克罗克福德的“Javascript,The Good Parts”,并且难以理解所有铁路图的使用。他也没有详细说明这一点。他只是说了以下内容(第21页):

  

解释这些图表的规则很简单:

     
      
  • 从左边缘开始,沿着轨道向右边缘移动。
  •   
  • 当你走的时候,你会遇到椭圆形的文字,以及矩形的规则或描述。
  •   
  • 通过跟踪曲目可以制作的任何序列都是合法的。
  •   
  • 跟踪曲目无法制作的任何序列都不合法。
  •   
  • 每端有一个条形的铁路图允许在任何一对标记之间插入空格。两端有两根钢筋的铁路图没有。
  •   

我知道这本书被认为是任何真正认真对待Javascript的人的基本阅读,我非常想了解他正在解决的概念。但有些事情并不是点击整个铁路图的事情。

有人能解释他对铁路图的使用吗?例子很棒。

3 个答案:

答案 0 :(得分:7)

IBM page可能有最简单的解释。

Wikipedia page提供了有关如何构建它们的更多信息。

答案 1 :(得分:5)

铁路图(语法图,http://en.wikipedia.org/wiki/Syntax_diagram)是解释语法的图形方式。如果您只想了解铁路图,请了解您从左侧开始,然后沿着线(轨道)行驶。当你遇到一个符号/名字时,你会跟着那条轨道,直到它完成,然后回到你离开的地方。

另外,阅读BNF和EBNF(扩展?Backus-Naur Formalism,http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form),这是描述语言语法,使用一组制作或重写规则的正式方式。 BNF / EBNF的工作方式与铁路图相同,但使用符号表示法,:: =生产符号,以及更正式/数学方式来记录语法。

答案 2 :(得分:3)

我也在读这本书。这需要我很长时间,但最后了解铁路图。

首先,正如@ChuckCottrill所提到的,您应该对语法图 BNF / EBNF 有一个基本的认可。但在阅读之后,在我比较不同情况的三张图之前,它仍然让我感到困惑:

零或更多,零或一,一个或多个

要了解它们之间的差异(如下图所示),重点是 “你从左边开始,沿着轨道走到右边缘。” 所以想象你是火车,你只需向右转,就不能左转。

enter image description here

http://bottlecaps.de/rr/创建的上述图片 在“编辑语法”选项卡中,输入以下语法:

zeroormore ::= element*
zeroorone ::= element?
oneormore ::= element+