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 14:13 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)
|
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/