Browse Prior Art Database

ASCII Application-Layer for S/390-System

IP.com Disclosure Number: IPCOM000130143D
Original Publication Date: 2005-Oct-13
Included in the Prior Art Database: 2005-Oct-13
Document File: 2 page(s) / 24K

Publishing Venue

IBM

Abstract

Porting UNIX* applications to a non-ASCII environment is often hindered by semantic dependencies within the original source-code to the ASCII-characterset. The EBCDIC-characterset for example follows very different rules. These dependencies are often hard to find and scattered within the code in a way that cannot be fixed through a brute-force-algorithm.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 2

ASCII Application ASCII ApplicationASCII Application ASCII Application -

---Layer for SLayer for SLayer for S

Layer for S /

///390-390-390-

390-System

SystemSystem System

1 Problem porting Application to a non-ASCII environment

Porting UNIX* applications to a non-ASCII environment is often hindered by semantic dependencies within the original source-code to the ASCII-characterset. The EBCDIC-characterset for example follows very different rules. These dependencies are often hard to find and scattered within the code in a way that cannot be fixed through a brute-force-algorithm. An simple example is the frequently found statement in C-code to check for lowercase-characters:

if (c >='A' && c <= 'Z')

which cannot be translated properly to EBCDIC since that characterset is not contiguous and errors would occur even if the correct symbol-representations for 'A' and 'Z' are taken.

2 Existing Solutions

    The program is compiled using the ASCII-characterset. Enhancements of the Library (eg. C-Library) are implemented to convert the ASCII-symbols to EBCDIC-symbols within the library. Each function that deals with characters is featured to convert between the charactersets.

    The disadvantage of this method is, that much effort is needed to convert and adapt all related functions. In reality, this leads to lots of shortcomings and holes in the existing implementations, which are far from being complete or getting complete for all possible environments. Additionally, performance impacts cannot be avoided by translating characters in small portions during each call to a library-function.

3 ASCII Translation layer

    The program is compiled using the ASCII-characterset. Additionally, the whole underlying library (eg, C-Library) is also compiled using the ASCII-environment. Each existing Unix*-library can be used for that. An additional layer is introduced, between the library and the operating-systems which emulates a real Unix-API and which translates all characters from ASCII to E...