Programming model

The programming model presented here highlights changes you need to make when an existing program is globalized or when a new program is developed:

  • Provide complete globalization. Do not assume that characters have any specific properties. Determine the properties dynamically by using the appropriate interfaces. Do not assume properties of code sets, except for the ASCII characters with code points in the unique code-point range.
  • Make programs code set-independent. Programs should not assume single-byte, double-byte, or multibyte encoding of any sort. Data can be processed in either process-code or file-code form by using the appropriate subroutines.
  • Provide interaction with the kernel in file-code form only. The kernel does not handle process codes.
  • The multicultural support subroutine library can handle processing based on file code as well as processing based on process code.
    Note: Several subroutines based on process-code form do not have corresponding subroutines based on file code form. Due to this asymmetry, it may be necessary to convert strings to process-code form and invoke the appropriate process-code subroutines.
  • Some libraries may not provide processing in process-code form. An application needing these libraries must use file-codes when invoking functions from them.
  • Programs can process characters either in process-code form or file-code form. It is possible to write code set-independent programs using both methods.