<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
On 5/27/2011 2:32 AM, Simon Josefsson wrote:
<blockquote cite="mid:87oc2o7aky.fsf@latte.josefsson.org"
type="cite">
<pre wrap="">Thanks -- this helps my understanding. Having an algorithm defined only
implicitly in terms of equivalences is nice from a theoretical view.
>From a practical view, I think there are risks in having each
implementer (attempt to) translate the properties into an algorithm, and
pondering about each corner case. </pre>
</blockquote>
I agree. This, by the way, is the essential reason that the Unicode
Consortium<br>
long ago adopted the position that for complicated derived
properties that<br>
we publish, the *list* itself is normative, whereas the algorithm
used to define<br>
that list is only informative. If somebody turns up a mismatch
between the<br>
statement of the derivation and/or algorithm involved and the list,
then we<br>
can fix the derivation, the algorithm, and/or the list at the next
revision of the<br>
standard. But in the meantime, the implementers aren't flailing
around trying<br>
to patch algorithms; they know exactly what to implement for a
property for a particular<br>
version of the standard: <b>the list</b>. And the list itself is
unambiguous. That approach,<br>
we believe, promotes interoperability and early implementation.<br>
<br>
This approach also means that the particular black magic involved in<br>
working out the derivations and the algorithms for complex
derivations<br>
is contained within the UTC, and isn't scattered to implementers to<br>
figure out corner cases on the fly.<br>
<br>
--Ken<br>
<br>
<blockquote cite="mid:87oc2o7aky.fsf@latte.josefsson.org"
type="cite">
<pre wrap="">When I revisit this aspect for my
implementation, I'll write down the algorithm I will use with more
details and publish that as a draft -- hopefully that can serve as an
informational help to other implementers.
</pre>
</blockquote>
<br>
</body>
</html>