Re: Fusion Laws?
Jason Orendorff <[email protected]>
| Newsgroups | gmane.comp.mozilla.devel.jseng |
|---|---|
| Message-ID | <CA+W3DWFpYao7jPJS=aKyx_QJ-HNx-zK6vTpuwQmwW-Lmkkkg0Q@mail.gmail.com> |
On Thu, Mar 31, 2016 at 1:45 PM, Michael Haufe < [email protected]> wrote: > On Thursday, March 31, 2016 at 1:22:14 PM UTC-5, Jason Orendorff wrote: > > The specification technique isn't the problem. It's the semantics being > > specified. They are the semantics of a dynamic language. Reasoning about > > such code is an exercise in hand-waving. > > Perhaps I'm misreading your statement here, but are you saying that the > current spec is hand-waving the runtime semantics of the language, or are > you instead saying that one can't formalize the semantics of a dynamic > language? > No and no. (The current spec is very detailed. The semantics of JS could certainly be formalized; I'm not sure you'd learn anything new though.) I'm saying that the way JS programmers reason about their code---when we reason about it at all---hand-waves away all the complicating factors that JS engines are forced to treat seriously. We take for granted that many possible things that *could* theoretically happen, won't happen. We assume (rather than prove or propagate) a bunch of antecedents like "well, x and y are both gonna be numbers here, and neither one can be NaN, and this addition won't overflow, and this object won't be a proxy..." JS implementations (and the spec itself) don't have that luxury. -j