Language standards are indeed formal statements, but they cannot be entirely independent of the machine implementation(s).
Here, some relevant abstractions include: (1) functional vs. machine state semantics (2) parallel vs. serial implementation (3) current vs. future versions ... That said, I have not been able to construct any examples which illustrate the execution order ambiguity which you alluded to in your first paragraph at http://jsoftware.com/pipermail/programming/2022-January/059682.html As for the rank issue, that was described (albeit in a formal fashion) in the dictionary. https://www.jsoftware.com/help/dictionary/dict3.htm gives an overview, and rank is described in further detail in various parts of the dictionary. Thanks, -- Raul On Sat, Jan 22, 2022 at 4:16 AM Elijah Stone <[email protected]> wrote: > > There are formal definitions of substitutability. These do not apply to > real-world concepts (such as feet) but absolutely apply to formal > languages. > > Language semantics are distinct from implementation details. APL has > traditionally resisted standardization and, well, APL2 was a collossal > failure. It is a shame, IMO. > > It is a completely different thing to say 'JE 9.03 executes "y" before "x" > in "x f y"' and 'in the language implemented by JE 9.03, "y" must be > executed before "x" in "x f y"'. I find the latter much more interesting > than the former, because it is a statement of _intent_: which of x and y > _should_ JE execute first? I am not JE; how should _I_ interpret a > sentence such as 'x f y'? > > -E > > On Sat, 22 Jan 2022, Raul Miller wrote: > > > Hmm... > > > > First a tiny bit of philosophy, then a bit of my perspective: > > > > Equivalencies, generally speaking, carry assumptions about relevant > > abstractions. > > > > For example, when we are counting, we are counting things which are > > the "same", but for them to be counted we require them to be different > > in some fashion.. 1 foot is not equivalent to 1 foot if they have > > different locations. That sort of thing. > > > > Philosophy aside, details matter, and these sorts of specifics are > > worth documenting somewhere. In most contexts these kinds of details > > are noise. And, this kind of thing tends to be version specific. > > Still, it might be worth constructing some experiments and documenting > > the results of those experiments? > > > > Thanks, > > > > -- > > Raul > > > > On Sat, Jan 22, 2022 at 3:00 AM Elijah Stone <[email protected]> wrote: > >> > >> It has been pointed out (f g h) y is not strictly equivalent to (f y) g (h > >> y) > >> because it is not guaranteed that the right and left tines of a fork will > >> be applied in sequence. See also the recent thread 'can i trust `:0 to > >> always execute left to right?' > >> > >> Does the same caveat apply to & and &: (and &. and &.:)? > >> > >> The dictionary incorrectly claims that x u&v y ←→ (v x) u (v y). NuVoc > >> mentions this, but only points out the rank discrepancy (and NuVoc takes > >> pedagogic liberties anyway). Other NuVoc pages (including those for &. > >> and &.:) are silent regarding evaluation order. The dictionary says of &. > >> the same incorrect thing it says of &. > >> > >> It would be good to have documentation somewhere making explicit which > >> guarantees are provided regarding evaluation order (and which are not). > >> '(f g h) y ←→ (f y) g (h y)' was quietly scrubbed from early editions of > >> the dictionary (so I hear), but the motivation for preferring the > >> diagrammatic definitions was not included. And `:'s NuVoc page still does > >> not mention that evaluation order for `:0 is not guaranteed, even though > >> this _has_ caused confusion (e.g. forum thread referenced earlier). > >> > >> -E > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
