Details

    • Type: Bug
    • Status: Applied
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: ODF 1.2 CD 05
    • Fix Version/s: ODF 1.2 CD 06
    • Component/s: Conformance
    • Labels:
      None
    • Proposal:
      Hide

      We should put these definitions in a suitable location, perhaps in "Part 0" since they apply to all three parts. Maybe 1.2 Terminology?

      • implementation-defined behavior:

      behavior that depends on the implementation and that each implementation shall document.

      • implementation-dependent behavior:

      behavior that depends on the implementation. The implementation is not required to document which behavior occurs. [Note: usually, the range of possible behaviors is delineated by the Standard.]

      • undefined behavior:

      behavior for which the Standard imposes no requirements. Undefined behavior may also be expected when the standard omits the description of any explicit definition of behavior.

      -----------
      We should also search all 4 specification documents for synonyms of the above and replace them with one of these three terms, e.g.,

      application-defined -> implementation-defined
      application-dependent -> implementation-dependent
      "not specified" -> application-dependent
      unspecified ->application-dependent
      "not defined" -> undefined

      Show
      We should put these definitions in a suitable location, perhaps in "Part 0" since they apply to all three parts. Maybe 1.2 Terminology? implementation-defined behavior: behavior that depends on the implementation and that each implementation shall document. implementation-dependent behavior: behavior that depends on the implementation. The implementation is not required to document which behavior occurs. [Note: usually, the range of possible behaviors is delineated by the Standard.] undefined behavior: behavior for which the Standard imposes no requirements. Undefined behavior may also be expected when the standard omits the description of any explicit definition of behavior. ----------- We should also search all 4 specification documents for synonyms of the above and replace them with one of these three terms, e.g., application-defined -> implementation-defined application-dependent -> implementation-dependent "not specified" -> application-dependent unspecified ->application-dependent "not defined" -> undefined

      Description

      We need to be clear in our use of terms the allow "dimensions of variability" in implementations.

      Previous standards, e.g., C or C++ programming languages, have made use of three levels:

      1) implementation-defined behaviors (sometimes called application-defined). In this case the standard is allowing the implementation to chose the details of how a feature behaves. It might constrain it to a list of fixed choices ("is implementation-defined but shall be one of X, Y or Z") or it might be open-ended. The main requirement is that the implementation's choice must be documented ("defined") by the implementation. So saying something is "implementation-defined" is giving a documentation requirement on the application. Also, some standards (like C/C+) disallow extreme actions, like failing to compile or crashing. For example, in C/C+, sizeof(int) is implementation-defined. But that doesn't mean a C compiler can flag this statement as an error.

      2) implementation-dependant (sometimes called unspecified). This is like implementation-defined but without the documentation requirement.

      3) undefined. This is like implementation-dependent, but extreme behaviors are allowed. For example, dereferencing a null pointer is undefined C/C++. Why not just define this to be an error? It could be done. Java does that, for example. But generally undefined is used when the implementation cost or runtime cost of detecting the use undefined behaviors is unacceptable.

      Some standards also have a concept of "locale-dependent" behaviors, which is really just a species of implementation-dependent.
      I would recommend for ODF, that we adopt these definitions adapted from those used in ISO C++.

        Attachments

          Activity

            People

            • Assignee:
              rcweir Robert Weir (Inactive)
              Reporter:
              rcweir Robert Weir (Inactive)
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: