Ask HN: What should an undefined variable evaluate to?
1 point by carlosneves 9 months ago | 2 commentsI think most (all?) compiled languages evaluate to a compilation error.
As for NodeJS, I thought it would evaluate to `undefined`, but it seems to consistently throw a `ReferenceError` for version 20.
What's the result for other languages?
- Doctor-R 9 months agoAges ago, the Digital Equipment VAX had a hardware hack where a null pointer (value is 0) would return a 0 when de-referenced. Which is the null character, the end of a string. So most of the time operations moving characters would terminate correctly. Obviously not portable to other computers.
In the IEEE 754 floating point definition, there are specific values for errors: mathematically undefined, division by zero, overflow, underflow, and inexact. These MUST be implemented in hardware to meet the specification.
- carlosneves 9 months agoThere seems to be a trade-off between letting the program run and halting it with an error in these cases. Sometimes letting it keep going is useful, sometimes not.
But overall, having dedicated "error modes" seems to be the preferred route.
Thanks for the reply!
I wasn't aware of the VAX series of computers, successors of the PDPs. I knew Unix was first written on a PDP-11. Also wasn't aware of the hardware requirements for floating points.
- carlosneves 9 months ago