Re: [abnf-discuss] ABNF colloquialism for end-of-line

Dave Crocker <> Sun, 19 November 2017 18:56 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 2384B12025C for <>; Sun, 19 Nov 2017 10:56:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id OzdK1YMHUaXj for <>; Sun, 19 Nov 2017 10:56:20 -0800 (PST)
Received: from ( [IPv6:2607:f8b0:4003:c0f::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 7F3571200E5 for <>; Sun, 19 Nov 2017 10:56:20 -0800 (PST)
Received: by with SMTP id d27so5963524ote.11 for <>; Sun, 19 Nov 2017 10:56:20 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=yMMpsWYjW445p9ZSvzHqke//GNs7zxVCe5jrQKUuwJM=; b=PUk1/sZTGeicJZH9sQZlRqbOmNUTowRZDq6evXMxgKqIorZxkeSzwGgnRJY6xEPqpL eRfI84a++iXGXdU+i9grJL3nwOy8HlX1MvFueIDZrH8kSY7m9RxLSETq+6Qp0OQxl+tM XmnvnvvPtn4K9SgFln6/TzNeFbHckb7PGTc+Upf3QyejT4kjDQSaiWguLM/ORUa4i4z0 1Oggaht8XAQsEd2upcZC+aH4jFmMKbWp22+VuQ9dyjylnFeKsURM4ub00eFS4b5V6EKf ymXRbQ07LStr94BCJBF22G18/wkWF7pH2Gn5Fb+5YQI/O1RC4m6tVRg++hit8RXJeCgA CFAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=yMMpsWYjW445p9ZSvzHqke//GNs7zxVCe5jrQKUuwJM=; b=UyQb+J80ywh5Z5T2LXcF8Avr6Ft5d9htCQ+MZ9itQOQ/RZkEH65Xqrqm871nedUOza ZDCNlJRhay8/Z69iFS5zBcDUiEPoPQy+kh54WzuLLayKfOL25GIi5ZZ3x8BI7Bc6CjQy jt1xxsNbrt1aDrQOCNqkTPmTUwSF+o9kpX41u9AV/24xU9oMX7LIinsl6MUzqlOmcBV1 VJUhy5iZb5TcLxuZfkIxVUrjjoOHpG9oX1IvCxguwfHrqhdzmXM0HYfklTIC7ntT4fsQ V5M25688gmdyfIbOkzLUzjt5MfNBI3d8ey+86wtXv1FK8XzsdXpt3pvdLRLrUCC2AU0I kSxw==
X-Gm-Message-State: AJaThX7HgqeqOkgyAsCRgPrAmLi9epouy99KXhY7nIrp5enmLCv1LlOL PtvUTDMKa4oTqiPWKe+56zScebY4
X-Google-Smtp-Source: AGs4zMbBygOzBhrKBw77fsSRemCpNpZXW8Sa/AyJ9Y6Q0rsGJGlYmZJTiEDEFKJEScsHIl1yKboMnA==
X-Received: by with SMTP id m58mr5939844otd.212.1511117778952; Sun, 19 Nov 2017 10:56:18 -0800 (PST)
Received: from ?IPv6:2602:304:cda0:8800:c4e8:d795:bbab:6d47? ([2602:304:cda0:8800:c4e8:d795:bbab:6d47]) by with ESMTPSA id t124sm3770831oih.48.2017. (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Nov 2017 10:56:16 -0800 (PST)
To: Sean Leonard <>
Cc: Carsten Bormann <>, ABNF-Discuss <>
References: <> <> <> <> <>
From: Dave Crocker <>
Message-ID: <>
Date: Sun, 19 Nov 2017 10:56:10 -0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Archived-At: <>
Subject: Re: [abnf-discuss] ABNF colloquialism for end-of-line
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "General discussion about tools, activities and capabilities involving the ABNF meta-language" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Sun, 19 Nov 2017 18:56:22 -0000

On 11/16/2017 1:26 PM, Sean Leonard wrote:
> To add some color to this point, “cuts” was discussed in the CBOR WG in the context of CDDL. It is a technique from Parsing Expression Grammars. Here is overview:
> Basically it commits the parser at a particular point, so that it does not backtrack.
> However, PEGs are ordered; ABNF is unordered. With ABNF (as presently constituted), all alternatives in a choice are considered simultaneously (order is not relevant). Even if you match one alternative, you’re supposed to try all other alternatives.

(Disclaimer:  What follows is pure personal opinion.)

I'll offer this for consideration, without also offering any specific 

Why did ABNF become popular?

(For a time, RFC 733 and then RFC 822 were the most-cited RFCs.  It 
turned out this was not due to the email portion but folk were re-using 
the ABNF meta-specification, which is why the later, revision effort to 
RFC 822 split the ABNF text out into its own RFC.)

At the time ABNF was defined in the latter 1970s, most specs provided 
their own variation of BNF.  Everyone wanted tailoring to the basic 
tool.  But while folk have often wanted to enhance ABNF, over the years, 
the 'let's define a new variant' tendency mostly died out -- ignoring 
the much more recent move towards JSON...  Why did this popularity happen?

Languages need to balance expressive power against human usage 
complexity.  Enough but not too much, of each.  ABNF seemed to strike a 
good balance.  (I like to think the documentation clarity in RFC 733 
also helped, but then I'm quite biased about this, given how much effort 
I put into that aspect of the work...)

I think the biggest danger in creating a meta-language is specification 
obscurity.  The tendency to want to add features can too-easily create 
too much complexity for easy human comprehension.  The result is that 
seemingly-simple specifications can too-easily have implications that 
are not understood by most readers.

Computers are not the target audience for computer languages.  Human 
readers are.  Subtle effects (nevermind side-effects) are very easily 
missed by human readers.

Dave Crocker
Brandenburg InternetWorking