<!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>