dherman at ccs.neu.edu
Wed Oct 31 04:54:00 PDT 2007
> (A fallout of that (my victory or my fault, depending on how you see it)
> is that ES4 does not require things like definite assignment analysis,
> which would have required more elaborate data structures than a compiler
> on an embedded system would be happy with. Instead we have a syntactic
> workaround (the "settings" section of the constructor) and other rules
> to handle non-nullability. Kludgy? Depends on your point of view.
As an aside: in my view this design goal ("no complex static analyses in
the semantics") is not just a win for lightweight devices. It's also a
win for the simplicity of the semantics. A programmer doesn't have to
think about complex analyses to understand the *meaning* of a program;
similarly, when the compiler/interpreter freaks out because an analysis
failed, the programmer doesn't have to understand a complicated error.
Syntactic restrictions like lexical scope, the "settings" section, type
systems, etc. have the benefit of being based on simple syntactic
properties that are easy for the programmer to eyeball by inspection of
the source. The result is a cleaner and clearer language semantics.
More information about the Es4-discuss