代码之家  ›  专栏  ›  技术社区  ›  Stephane Rolland

在Backus-Naur形式中,逗号“,”在定义符号时是什么意思

  •  1
  • Stephane Rolland  · 技术社区  · 14 年前

    我是π微积分的新手,就像我是巴克斯诺尔形式的新手一样。 这里是Pi微积分的核心BNF之一(在Peter Sewell的“Applied Pi-A Brief Tutorial”中找到)

    P,Q ::= 0                        nil
            P | Q                    parallel composition of P and Q
            ~cv                      output v on channel c
            cw.P                     input from channel c
            new c in P               new channel name creation
    

    实际上,我专注于学习π微积分。但我确实想知道P,Q::=在BNF定义中的含义。

    我理解P::=意味着π演算的过程P是this,this,this。 但是P,Q::=代表什么呢?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Gilles 'SO- stop being evil'    14 年前

    这里,这意味着字母 P Q 两者都用来表示过程。例如,在 P | Q ,

    P ::= 0
          P1 | P2
          ~cv
          cw.P
          new c in P
    

    但为了使公式更具可读性,我们倾向于允许两个不同的字母引用同一个概念。

    顺便说一句,BNF中的备选方案通常用竖条隔开;但是自从竖条 |