[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Yet again: The contract between the language and the programmer...
- From: sur-behoffski <sur_behoffski@...>
- Date: Sun, 11 Dec 2022 21:33:50 +1030
G'day,
As happens every so often, people stray outside of the bounds
set by the manual, and find that what they tried "works".
The manual draws up a contract between the language user and
the language implementation. To step outside of that contract
envelope, is nothing less than "Here be Dragons". You may be
lucky this time, but as soon as the contract is broken by a
foolhardy and/or overenthusiastic coder, absolutely everything
from then is not guaranteed to work -- not even a single
statement or declaration of any kind.
In Lua, the Reference Manual lays out the Contract. It needs
to be read very carefully, as boundary cases are sometimes not
evident on a casual scan.
Heed the "Here be Dragons" notes, which are sometimes given as
explicit things you should not do, and at other times are
given as carefully-chosen language explaining what you may
expect to work.
[I remember that some coding books use a "danger" icon -- such
as a foothold trap with spring-loaded jaws and a central
trigger pad -- to accompany and emphasise such "be wary" cases.
In my case, I remembered it was in the book "Version Control
with Git".]
s-b etc