To develop applications (like the order entry program in the previous section), the following types of products may be used and DBCS supports of them ease applications' DBCS support.
This section talks about a hypothetical programming language compiler. To ease development of applications supporting DBCS as explained in the previous section and/or to be appreciated by non-English speaking programmers, our hypothetical programming language compiler should support DBCS in the following items:
The following should be DBCS-enabled and provided in national languages:
Comments can be categorized in this group. Programmers writing in their national language, need SBCS/DBCS mixed strings.
Variable name, label and procedure name are categorized here and DBCS support for them is desired for better readability and self-documentation of source code.
Character data type variables should contain any kind of data, including text and name. Since text and names require DBCS support, the character data type should support SBCS/DBCS mixed strings.
DBCS data type (or graphic data type) accepts only DBCS characters (and does not contain SO/SI even in EBCDIC environment). It is supported by many products in S/390 such as program languages and database manager. For SAA the DBCS data type has been introduced into the PC world.
Consequently, the following supports are required for the character data type and the DBCS data type:
Enhance character string literals to support SBCS/DBCS mixed string. DBCS string literal (or G-type literal) support should be added.
Enhance character string manipulation functions to support SBCS/DBCS mixed string, and DBCS string manipulation functions should be added.
Enhance I/O functions so that the enhanced character strings and the additionally supported DBCS strings can be handled correctly.
Since the source code may contain DBCS in comments, literal and/or DBCS name, the parser of your compiler should be enhanced so that it does not confuse the second bytes of DBCS characters with a delimiter and so on, which are significant to your parser.