|
Core lexical syntax
Lassi Kortela
(25 Sep 2019 10:15 UTC)
|
||
|
Re: Core lexical syntax
John Cowan
(25 Sep 2019 14:09 UTC)
|
||
|
Machines vs humans
Lassi Kortela
(25 Sep 2019 14:25 UTC)
|
||
|
Re: Core lexical syntax Alaric Snell-Pym (25 Sep 2019 15:44 UTC)
|
||
|
Re: Core lexical syntax
John Cowan
(25 Sep 2019 19:18 UTC)
|
||
|
Mechanism vs policy
Lassi Kortela
(25 Sep 2019 19:58 UTC)
|
||
|
Re: Mechanism vs policy
Arthur A. Gleckler
(25 Sep 2019 21:17 UTC)
|
||
|
Re: Mechanism vs policy
Lassi Kortela
(26 Sep 2019 07:40 UTC)
|
||
|
Re: Mechanism vs policy
John Cowan
(25 Sep 2019 22:25 UTC)
|
||
|
Re: Mechanism vs policy
Arthur A. Gleckler
(26 Sep 2019 01:34 UTC)
|
||
|
Limits, symbols and bytevectors, ASN.1 branding
Lassi Kortela
(26 Sep 2019 08:23 UTC)
|
||
|
Re: Limits, symbols and bytevectors, ASN.1 branding
Alaric Snell-Pym
(26 Sep 2019 08:56 UTC)
|
||
|
Re: Limits, symbols and bytevectors, ASN.1 branding
John Cowan
(27 Sep 2019 02:38 UTC)
|
||
|
ASN.1 branding
Lassi Kortela
(27 Sep 2019 14:56 UTC)
|
||
|
Re: ASN.1 branding
Alaric Snell-Pym
(27 Sep 2019 15:24 UTC)
|
||
|
Re: ASN.1 branding
Lassi Kortela
(27 Sep 2019 18:54 UTC)
|
||
|
Re: Limits, symbols and bytevectors, ASN.1 branding
John Cowan
(27 Sep 2019 01:57 UTC)
|
||
|
Re: Limits, symbols and bytevectors, ASN.1 branding
Lassi Kortela
(27 Sep 2019 16:24 UTC)
|
||
|
Re: Limits, symbols and bytevectors, ASN.1 branding
John Cowan
(27 Sep 2019 17:37 UTC)
|
||
|
Re: Limits, symbols and bytevectors, ASN.1 branding
Lassi Kortela
(27 Sep 2019 18:28 UTC)
|
||
|
Re: Limits, symbols and bytevectors, ASN.1 branding
John Cowan
(27 Sep 2019 18:39 UTC)
|
||
|
Re: Limits, symbols and bytevectors, ASN.1 branding
Lassi Kortela
(27 Sep 2019 18:46 UTC)
|
||
|
Re: Limits, symbols and bytevectors, ASN.1 branding
John Cowan
(27 Sep 2019 21:19 UTC)
|
||
|
Re: Mechanism vs policy
Alaric Snell-Pym
(26 Sep 2019 08:45 UTC)
|
||
|
Implementation limits
Lassi Kortela
(26 Sep 2019 08:57 UTC)
|
||
|
Re: Implementation limits
Alaric Snell-Pym
(26 Sep 2019 09:09 UTC)
|
||
|
Re: Implementation limits
Lassi Kortela
(26 Sep 2019 09:51 UTC)
|
||
|
Meaning of the word "format"
Lassi Kortela
(26 Sep 2019 10:31 UTC)
|
||
|
Stacking it all up
Lassi Kortela
(26 Sep 2019 11:05 UTC)
|
||
|
Brief spec-writing exercise
Lassi Kortela
(26 Sep 2019 11:46 UTC)
|
||
|
Re: Brief spec-writing exercise
John Cowan
(26 Sep 2019 15:45 UTC)
|
||
|
Standards vs specifications
Lassi Kortela
(26 Sep 2019 21:24 UTC)
|
||
|
Re: Standards vs specifications
John Cowan
(27 Sep 2019 04:29 UTC)
|
||
|
Re: Standards vs specifications
Lassi Kortela
(27 Sep 2019 13:47 UTC)
|
||
|
Re: Standards vs specifications
John Cowan
(27 Sep 2019 14:53 UTC)
|
||
|
Re: Meaning of the word "format"
John Cowan
(26 Sep 2019 20:59 UTC)
|
||
|
Re: Meaning of the word "format"
Lassi Kortela
(26 Sep 2019 21:09 UTC)
|
||
|
Re: Meaning of the word "format"
John Cowan
(27 Sep 2019 02:44 UTC)
|
||
|
Length bytes and lookahead in ASN.1
Lassi Kortela
(27 Sep 2019 13:58 UTC)
|
||
|
Re: Length bytes and lookahead in ASN.1
John Cowan
(27 Sep 2019 14:22 UTC)
|
||
|
Re: Length bytes and lookahead in ASN.1
Alaric Snell-Pym
(27 Sep 2019 15:02 UTC)
|
||
|
Re: Length bytes and lookahead in ASN.1
hga@xxxxxx
(27 Sep 2019 15:26 UTC)
|
||
|
(missing)
|
||
|
Fwd: Length bytes and lookahead in ASN.1
John Cowan
(27 Sep 2019 16:40 UTC)
|
||
|
Re: Fwd: Length bytes and lookahead in ASN.1
Alaric Snell-Pym
(27 Sep 2019 16:51 UTC)
|
||
|
Re: Fwd: Length bytes and lookahead in ASN.1
John Cowan
(27 Sep 2019 17:18 UTC)
|
||
|
Length bytes and lookahead in ASN.1
hga@xxxxxx
(27 Sep 2019 16:58 UTC)
|
||
|
Re: Length bytes and lookahead in ASN.1
John Cowan
(27 Sep 2019 17:21 UTC)
|
||
|
Re: Mechanism vs policy
John Cowan
(27 Sep 2019 03:52 UTC)
|
||
|
Re: Core lexical syntax
Alaric Snell-Pym
(26 Sep 2019 08:36 UTC)
|
||
|
Re: Core lexical syntax
John Cowan
(25 Sep 2019 14:13 UTC)
|
||
On 25/09/2019 15:09, John Cowan wrote:
> The hyphen and underscore situation is a bit different. Lisp programmers
> like hyphens in identifiers, as do Cobol programmers (even though Cobol has
> infix minus, which means you have to use spaces around it), because our
> languages date back to early punch card systems where underscore did not
> exist. (In early Fortran, identifiers were limited to six characters and
> you didn't waste any of them on internal delimiters, or rather IDLTRS.)
> The younger languages, if they allow internal delimeters at all, use
> underscore, thus clearly separating it from infix minus.
>
> Nobody really needs _two_ internal delimiters, so I suggest that we either
> allow only "-" and leave it up to non-Lisp systems to change it to "_" if
> they are happier with that, or allow both but warn sternly against using
> both foo-bar and foo_bar for different purposes.
When will symbols be used as identifiers in other programming languages?
Lisp happens to use s-expressions to represent source code so symbols
are used to represent Lisp identifiers, but that relationship doesn't
hold for other languages!
>
>> Improper list (exprs . expr)
>>
>
> *Nobody* outside the Lisp community knows what this is. Even languages
> with linked-list support internally almost always allow only a pair or ()
> in the cdr slot. To make it interoperate would require non-Lisp
> implementations to wrap their native array, vector, or list (in the case of
> Python) type in an opaque record type wrapper, which would block the use of
> native operations on it. It's nothing but a nuisance to them. And for
> data interchange as opposed to serialization, who cares about the
> difference between (a b) and (a . b) anyway, even in Lisp? The extra pair
> is esssentially free. (I have added an improper-list type to ASN.1 LER,
> primarily for serialization.)
Although I find it desirable to support as many Scheme values as
possible in the serialisation format, I am willing to be swayed on
improper lists, as they're almost deprecated in Scheme itself in many
respects!
>
> Vector #{exprs}
>> Character #\a #\newline #\x1234
>>
>
> These also, to a lesser degree, are distinctions without a difference.
> Lists vs. vectors? Characters vs. strings of length 1? Who cares? One
> type is enough for each: general-purpose sequence and
> sequence-of-Unicode-codepoints.
Well, Scheme makes a distinction, and not being able to round-trip
Scheme values as simple as vectors and characters seems a shame...
Meta Question: Are we defining a serialisation format for Scheme values
(modulo some impractical things, like closures and ports) - in which
case we want to be able to cleanly round-trip as much as possible, in
general - or a new data format/model that just happens to have a
correspondence to a subset of Scheme?
Such talk as "not distinguishing vectors from lists" makes sense in the
latter case, but not in the former.
>> Special value #!any-plain-symbol
>> Special type #any-plain-symbol{exprs}
>>
>
> These are good on human readability and simplicity, but not so good for
> stability. Are they really safe to ignore if you don't understand them?
> (I wish ASN.1 had such a must-understand flag.)
There's two levels of "safe to ignore" we need to think about here.
1. In an editor that lets you navigate subexpressions in a smart way,
like emacs+paredit; it would benefit from knowing that #SYMBOL{EXPR...}
is a subexpression without needing to special-case certain values of
SYMBOL. Sure, it might well special-case some things that it has special
behaviour for, but it can ignore any unknown type tags and fall back on
a more simple "I can just find the delimiters" mode.
2. In some application that's processing this data with some kind of
higher-level semantic knowledge. In this case, when it encounters an
unknown object, it needs to decide whether to skip (and HOW to skip it;
for instance, HTML renderers that don't understand an element will
usually interpret its contents as if the element wasn't there but skip
its attributes - s-expressions lack that distinction, so do we recurse
into any sub-expressions of the skipped expression in our processing, or
just skip the whole sub-expression?) or to error. File formats like PNG
assign a header bit to indicate chunks that can't be skipped, and have
no notion of nesting so there's no recursion issues.
We can approach this in one of two ways:
1. Push it to higher levels; the notion of what it means to "skip
unknown things" is somewhat domain-dependent, so a general mechanism
built into the data representation isn't necessarily universal.
2. Put safe-to-skip-subexpression markers and safe-to-recurse-through
markers (the latter with some indication of which subexpressions of the
expression to recurse into versus skip) into the syntax...
> In practice, people will
> use these to refer to concepts that other programmers don't get and will
> misunderstand or misuse. Worse, one group may use #hash and another #dict,
> and who will know that they are the same concept?
This is a human, not technological, problem :-)
> However, I think JSON has shown that dictionaries are important enough that
> they should be first-class. I currently recommend {key value ...}.
>
> Line comments should be provided: they are one of the things often asked
> for in JSON.
Yeah, probably.
ABS
--
Alaric Snell-Pym (M7KIT)
http://www.snell-pym.org.uk/alaric/