WO2001084456A1 - A method for bit-map parsing using a cobol algorithm - Google Patents

A method for bit-map parsing using a cobol algorithm Download PDF

Info

Publication number
WO2001084456A1
WO2001084456A1 PCT/US2001/040644 US0140644W WO0184456A1 WO 2001084456 A1 WO2001084456 A1 WO 2001084456A1 US 0140644 W US0140644 W US 0140644W WO 0184456 A1 WO0184456 A1 WO 0184456A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
pic
bit
map
byte
Prior art date
Application number
PCT/US2001/040644
Other languages
French (fr)
Inventor
Glenn Hoechst
Steve Callahan
Charlie Miller
Patricia Smith
Original Assignee
Mastercard International Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mastercard International Incorporated filed Critical Mastercard International Incorporated
Priority to AU5762801A priority Critical patent/AU5762801A/en
Priority to CA002407730A priority patent/CA2407730A1/en
Priority to EP01931168A priority patent/EP1287464A1/en
Priority to JP2001581196A priority patent/JP2003532237A/en
Priority to AU2001257628A priority patent/AU2001257628B2/en
Publication of WO2001084456A1 publication Critical patent/WO2001084456A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms

Definitions

  • the present invention relates to financial transaction card messages and more specifically to "bit-mapped" messages or, in other words, messages which (1) may consist of a number of different identifiable components, any one of which may or may not be present in a given message; or (2) contain a bit-map of the components, the latter being a string of binary bits, each representing one potential component.
  • bit-map is placed at the front of the message as a header. A value of one indicates the presence of the corresponding component in the message; a value of zero indicates the component's absence.
  • the ISO 8583-1993 specification (for financial transaction card originated messages, incorporated herein by reference) defines 128 distinct elements whose presence or absence in any message is indicated by a 128-bit- map in the message.
  • One of the objectives of ISO 8583-1993 is to allow for the transmission of messages having different or varying sizes so that messages having a length longer than necessary are not sent. Each message may have a different size and each may have fields the others do not. The assortment of fields, therefore, varies from one message to another and these "floating" fields make it more difficult to extract data from the messages.
  • the bit-map which indicates the presence or absence of a particular field, allows for the proper extraction of data.
  • bit-map For processing by a COBOL program, therefore, it is necessary to convert the bit-map into a "character-map," an array having one byte (rather than one bit) per component. This allows the COBOL program to test for the presence of any element with a simple subscript or index. For example, present elements could be represented by an "X”, absent elements could be represented by a space in this array.
  • bit-map data there were many different ways to use bit-map data. For instance, provided below are descriptions of the division, subtraction, serial search, binary search, and evaluate processes used previously.
  • Bit-map data are moved four bytes at a time into a numeric area. Each resulting numeric value is then repeatedly divided by two. After each division, the remainder is examined. If the remainder is one, the corresponding character-map flag is set to "X"; if the remainder is zero, the flag is left as a space.
  • Bit-map data are moved one byte at a time to a numeric area. Each resulting numeric value is compared against 128, then 64, then 32, 16, 8, 4, 2, and 1. Whenever a greater-than-or-equal is met, a corresponding character-map flag is set to "X"; and the value 128, 64, 32, etc. is subtracted from the number.
  • Bit-map data are used, byte by byte, as search arguments into a table of:
  • Bit patterns (X'00 ⁇ X'01 ', X'02', X'03', etc.) and corresponding eight-byte character patterns (' DODDDDDD ',
  • COBOL's "SEARCH” verb is used to perform a serial search of the table. When a hit is found on a bit pattern, the corresponding character pattern is moved into the character-map. D. 4. Binary Search
  • Bit-map data are used, byte by byte, as in the serial search above; but COBOL' s "SEARCH ALL" verb is specified to perform a binary search of the table.
  • a new method for extracting data from bit-map messages using COBOL statements where the messages have one of many possible bit-map combinations representing messages of varying fields and lengths.
  • the preferable method comprises the steps of: assigning a numeric value for each possible bit-map combination; generating a conversion table associating a byte-map for each of the values; identifying a bit-map within a particular message; converting the bit-map into an associated byte-map; and determining, based on the resulting byte-map, the absence or presence of the data.
  • the conversion step includes generating a particular numeric value for the bit-map and associating the byte-map to the bit-map in accordance with the conversion table.
  • FIGURE 1 is an illustration showing the sequence of preferred steps to accomplish extraction of data in accordance with the present invention.
  • the present invention relates to computer programming and techniques and in particular to programming in COBOL (Common Business Oriented Language), a working knowledge of which is assumed.
  • COBOL Common Business Oriented Language
  • "PIC” is a clause used to describe the contents of an elementary data item, in this case 400-P and 400-P-X
  • "X" is a data character symbol which is alphanumeric
  • "9” is a data character symbol which is numeric
  • S indicates an operational sign
  • a number in parenthesis indicates the digit length of the item.
  • a process is provided whereby data may be extracted from bit-map messages using COBOL statements.
  • a two-byte area is defined in WORKING STORAGE (or a work area for storing intermediate results and constants that will be used in the program) as both alphanumeric and numeric:
  • Bit-map data are moved, one byte at a time, into a field 400-P-X.
  • Each resulting numeric value (in 400-P) is used as a subscript into a table of corresponding character-patterns, each eight characters long (' DDDDDDDD ', 'DDD ⁇ DDDX', 'D ⁇ DDDXD ', ' ⁇ DDDDDXX', etc.). These eight characters are then moved into the appropriate position in the character-map, and then data can be extracted from the message in accordance with the character map.
  • bits of the bit-map are individually named, rather than being selected by subscript, since this has been shown to be a more efficient method.
  • Figure 1 illustrates the sequence of preferred steps to accomplish extraction of data from messages having floating fields.
  • the messages have a header bit-map of 128 bits viewed as 16 bytes (10). Each byte will have a binary value which will vary from 00000000 to 11111111. As mentioned above, the bit-map is broken down into a two byte area (12) in memory defined as alphanumeric. The first byte (14) is always a binary 00000000. The second byte (16) receives a byte from the bit map (indicated in Figure 1 by the arrow (16)). The second byte therefore receives a binary value between 00000000 and 11111111 inclusively.
  • a redefinition occurs where the same two memory positions 14, 16 are redefined as a numeric in PIC 9(4) COMP having a value that will vary from hex 0000 through 00FF (0 through 255 decimal).
  • This numeric value is then used as an index into a table (18) containing 256 entries of 8 bytes each. For instance, a value of hex 0000 will point to the first row of eight spaces. A value of hex 00FF will point to the 256th row of XXXXXXX. In the figure, arrow (20) points to the third row of eight spaces.
  • the character map 22 is generated. This is an area in memory containing 16 groups of 8 bytes (128 bytes total). Each group receives an entry from the table 18.
  • the following data structure defines the message to be parsed. It is in ISO IPM format and is a typical of a bit-mapped message structure. (Note that the first subfield, MTI, is not material to this parsing technique.) Messages may be of variable length. 01 IP66102-IPM-MSG
  • parsing pattern table 18 (byte-map) follows:
  • This technique can preferably be used in the parsing of ISO 8583-1993 IPM financial transaction card originated messages, and can be incorporated into pre- edit and central site clearing systems. More generally it is useful in interpreting any bit-mapped record or message when implementation constraints dictate the use of COBOL.

Abstract

A method for extracting data from bit-map messages (10) using COBOL statements is provided where the messages have one of many possible bit-map (10) combinations by assigning a numeric value for each possible bit-map combination (10); generating a conversion table associating a byte-map )12) for each value; identifying a bit-map (10) within a particular message; converting the bit-map (10) into an associated byte-map (12); and determining, based on the resulting byte-map (12), the absence or presence of the data.

Description

A METHOD FOR BIT-MAP PARSING USING A COBOL ALGORITHM
SPECIFICATION
PRIORITY APPLICATION This application claims priority to United States provisional application serial number 60/201,559, filed on May 1, 2000, and entitled "BIT-MAP PARSING USING COBOL ALGORITHM," which is hereby incorporated by reference.
BACKGROUND OF THE INVENTION The present invention relates to financial transaction card messages and more specifically to "bit-mapped" messages or, in other words, messages which (1) may consist of a number of different identifiable components, any one of which may or may not be present in a given message; or (2) contain a bit-map of the components, the latter being a string of binary bits, each representing one potential component. Generally, the bit-map is placed at the front of the message as a header. A value of one indicates the presence of the corresponding component in the message; a value of zero indicates the component's absence.
For example, the ISO 8583-1993 specification (for financial transaction card originated messages, incorporated herein by reference) defines 128 distinct elements whose presence or absence in any message is indicated by a 128-bit- map in the message. One of the objectives of ISO 8583-1993 is to allow for the transmission of messages having different or varying sizes so that messages having a length longer than necessary are not sent. Each message may have a different size and each may have fields the others do not. The assortment of fields, therefore, varies from one message to another and these "floating" fields make it more difficult to extract data from the messages. The bit-map, which indicates the presence or absence of a particular field, allows for the proper extraction of data.
In connection with the processing of financial transaction messages, however, in which the COBOL language is utilized, because COBOL statements are not well suited to examine bits in a message, the use of a bit-map cannot presently be efficiently utilized.
For processing by a COBOL program, therefore, it is necessary to convert the bit-map into a "character-map," an array having one byte (rather than one bit) per component. This allows the COBOL program to test for the presence of any element with a simple subscript or index. For example, present elements could be represented by an "X", absent elements could be represented by a space in this array.
In the past, there were many different ways to use bit-map data. For instance, provided below are descriptions of the division, subtraction, serial search, binary search, and evaluate processes used previously.
A. 1. Division
Bit-map data are moved four bytes at a time into a numeric area. Each resulting numeric value is then repeatedly divided by two. After each division, the remainder is examined. If the remainder is one, the corresponding character-map flag is set to "X"; if the remainder is zero, the flag is left as a space.
B. 2. Subtraction
Bit-map data are moved one byte at a time to a numeric area. Each resulting numeric value is compared against 128, then 64, then 32, 16, 8, 4, 2, and 1. Whenever a greater-than-or-equal is met, a corresponding character-map flag is set to "X"; and the value 128, 64, 32, etc. is subtracted from the number.
C. 3. Serial Search
Bit-map data are used, byte by byte, as search arguments into a table of:
Bit patterns (X'00\ X'01 ', X'02', X'03', etc.) and corresponding eight-byte character patterns (' DODDDDDD ',
'DDDDDΠDX', 'DDDDDDXD ', 'DDDDDDXX', etc.).
COBOL's "SEARCH" verb is used to perform a serial search of the table. When a hit is found on a bit pattern, the corresponding character pattern is moved into the character-map. D. 4. Binary Search
Bit-map data are used, byte by byte, as in the serial search above; but COBOL' s "SEARCH ALL" verb is specified to perform a binary search of the table.
E. 5. Evaluate The bit-map data are taken a byte at a time. Each byte is compared against all 256 possible values (X'00\ X'01', X'02', . . . X'FF'). COBOL's "EVALUATE" verb tests for the presence of one of many mutually exclusive conditions. EVALUATE is used here to determine which of 256 possible bit patterns matches one byte of the bit-map. When a match is found, the corresponding character pattern ' ', ' X', ' X.', ' XX', etc. — up to 'XXXXXXXX' is moved into the character map.
Despite these techniques, there is a need to develop an efficient technique that effectively extracts data from bit-map messages using COBOL statements.
SUMMARY OF THE INVENTION
According to the present invention, therefore, there is provided a new technique utilizing fewer lines of code and yet executing at a significantly faster rate.
In accordance with a preferred embodiment of the invention, there is provided a new method for extracting data from bit-map messages using COBOL statements, where the messages have one of many possible bit-map combinations representing messages of varying fields and lengths. The preferable method comprises the steps of: assigning a numeric value for each possible bit-map combination; generating a conversion table associating a byte-map for each of the values; identifying a bit-map within a particular message; converting the bit-map into an associated byte-map; and determining, based on the resulting byte-map, the absence or presence of the data. Preferably, the conversion step includes generating a particular numeric value for the bit-map and associating the byte-map to the bit-map in accordance with the conversion table.
This new technique has been shown to be significantly faster of execution than any previous algorithm: 1. The division parse took 75 to 88 times as long as the new algorithm (depending on the message mix)
2. Subtraction took 5.9 to 8.9 times as long 3. Serial search took 21.9 to 82.5 times as long
4. Binary search took 27.5 to 31.8 times as long
5. Evaluate took 6.9 to 32.1 times as long.
Moreover, because the present invention results in the fewest lines of code, it is easier to maintain.
BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing brief description as well as further objects, features, and advantages of the present invention will be understood more completely from the following detailed description of the presently preferred, but nonetheless illustrative, embodiments of the invention, with reference being made to the accompanying figure, in which:
FIGURE 1 is an illustration showing the sequence of preferred steps to accomplish extraction of data in accordance with the present invention.
While the subject invention will now be described in detail, it is done so in connection with a preferred embodiment. It is intended that changes and modifications can be made to the described embodiment without departing from the true scope and spirit of the subject invention as defined by the appended claims.
DETAILED DESCRIPTION OF THE EMBODIMENTS OF THE INVENTION
The present invention relates to computer programming and techniques and in particular to programming in COBOL (Common Business Oriented Language), a working knowledge of which is assumed. For instance, in the programming code presented below, in COBOL "PIC" is a clause used to describe the contents of an elementary data item, in this case 400-P and 400-P-X, and "X" is a data character symbol which is alphanumeric, "9" is a data character symbol which is numeric, "S" indicates an operational sign and a number in parenthesis indicates the digit length of the item. In accordance with a preferred embodiment of the invention a process is provided whereby data may be extracted from bit-map messages using COBOL statements. A two-byte area is defined in WORKING STORAGE (or a work area for storing intermediate results and constants that will be used in the program) as both alphanumeric and numeric:
05 400-P PIC S9 COMP VALUE 0.
05 REDEFINES 400-P.
10 PIC X.
10 400-P-X PIC X.
Bit-map data are moved, one byte at a time, into a field 400-P-X. Each resulting numeric value (in 400-P) is used as a subscript into a table of corresponding character-patterns, each eight characters long (' DDDDDDDD ', 'DDDΠDDDX', 'DΠΠDDDXD ', 'ΠDDDDDXX', etc.). These eight characters are then moved into the appropriate position in the character-map, and then data can be extracted from the message in accordance with the character map.
Preferably, bytes of the bit-map are individually named, rather than being selected by subscript, since this has been shown to be a more efficient method.
Figure 1 illustrates the sequence of preferred steps to accomplish extraction of data from messages having floating fields. The messages have a header bit-map of 128 bits viewed as 16 bytes (10). Each byte will have a binary value which will vary from 00000000 to 11111111. As mentioned above, the bit-map is broken down into a two byte area (12) in memory defined as alphanumeric. The first byte (14) is always a binary 00000000. The second byte (16) receives a byte from the bit map (indicated in Figure 1 by the arrow (16)). The second byte therefore receives a binary value between 00000000 and 11111111 inclusively.
In the next preferred step, a redefinition occurs where the same two memory positions 14, 16 are redefined as a numeric in PIC 9(4) COMP having a value that will vary from hex 0000 through 00FF (0 through 255 decimal). This numeric value is then used as an index into a table (18) containing 256 entries of 8 bytes each. For instance, a value of hex 0000 will point to the first row of eight spaces. A value of hex 00FF will point to the 256th row of XXXXXXXX. In the figure, arrow (20) points to the third row of eight spaces. Once the matching character pattern is determined the character map 22 is generated. This is an area in memory containing 16 groups of 8 bytes (128 bytes total). Each group receives an entry from the table 18.
Set forth below are the preferred COBOL programming steps to be utilized to carry out the preferred embodiment of the invention:
The following data structure defines the message to be parsed. It is in ISO IPM format and is a typical of a bit-mapped message structure. (Note that the first subfield, MTI, is not material to this parsing technique.) Messages may be of variable length. 01 IP66102-IPM-MSG
EXTERNAL.
05 IP66102-NORMAL-IPM-MSG.
10 IP66102-MTI PIC X(4).
10 IP66102-BIT-MAP.
15 IP66102-BIT-BYTE-1 PIC X.
15 IP66102-BIT-BYTE-2 PIC X.
15 IP66102-BIT-BYTE-3 PIC X.
15 IP66102-BIT-BYTE-4 PIC X.
15 IP66102-BIT-BYTE-5 PIC X.
15 IP66102-BIT-BYTE-6 PIC X.
15 IP66102-BIT-BYTE-7 PIC X.
15 IP66102-BIT-BYTE-8 PIC X.
15 IP66102-BIT-BYTE-9 PIC X.
15 IP66102-BIT-BYTE-10 PIC X.
15 IP66102-BIT-BYTE-11 PIC X.
15 IP66102-BIT-BYTE-12 PIC X.
15 IP66102-BIT-BYTE-13 PIC X.
15 IP66102-BIT-BYTE-14 PIC X.
15 IP66102-BIT-BYTE-15 PIC X.
15 IP66102-BIT-BYTE-16 PIC X.
10 IP66102-MSG-CONTENT PIC X(32747)
The following defines the items used in converting one byte of the bitmap into a usable subscript.
01 WORKING-VALUES. 05 400-P PIC S9(4) COMP VALUE 0.
05 REDEFINES 400-P.
10 PIC X.
10 400-P-X PIC X. The creation of the parsing pattern table 18 (byte-map) follows:
01 500-PARSLNG-PATTERN- VALUES.
05 PIC X(8) VALUE '
05 PIC X(8) VALUE ' X'. 05 PIC X(8) VALUE ' X'.
05 PIC X(8) VALUE ' XX'.
05 PIC X(8) VALUE ' X '.
05 PIC X(8) VALUE ' XX'.
05 PIC X(8) VALUE ' XX'. 05 PIC X(8) VALUE ' XXX'.
05 PIC X(8) VALUE ' X '.
05 PIC X(8) VALUE ' X X'.
05 PIC X(8) VALUE ' XX'.
05 PIC X(8) VALUE ' XXX'. 05 PIC X(8) VALUE ' XX '.
05 PIC X(8) VALUE ' XXX'.
05 PIC X(8) VALUE ' XXX'.
05 PIC X(8) VALUE ' XXXX'.
05 PIC X(8) VALUE ' X '. 05 PIC X(8) VALUE ' X X'.
05 PIC X(8) VALUE * X X'.
05 PIC X(8) VALUE ' X XX'.
05 PIC X(8) VALUE ' XX '.
05 PIC X(8) VALUE ' XXX1. 05 PIC X(8) VALUE ' XXX'.
05 PIC X(8) VALUE ' XXXX*.
05 PIC X(8) VALUE ' XX '.
05 PIC X(8) VALUE ' XX X'.
05 PIC X(8) VALUE ' XXX'. 05 PIC X(8) VALUE ' XXXX'.
05 PIC X(8) VALUE ' XXX '.
05 PIC X(8) VALUE ' XXXX'.
05 PIC X(8) VALUE ' XXXX'.
05 PIC X(8) VALUE ' XXXXX'. 05 PIC X(8) VALUE ' X '.
05 PIC X(8) VALUE ' X X'.
05 PIC X(8) VALUE ' X X'.
05 PIC X(8) VALUE ' X XX'.
05 PIC X(8) VALUE ' X X '. 05 PIC X(8) VALUE ' X XX'.
05 PIC X(8) VALUE ' X XX '.
05 PIC X(8) VALUE ' X XXX'.
05 PIC X(8) VALUE ' XX '.
05 PIC X(8) VALUE ' XX X'. 05 PIC X(8) VALUE ' XXX'. 05 PIC X(8 VALUE' XXXX*. 05 PIC X(8 VALUE' XXX '. 05 PIC X(8 VALUE' X XX X'. 05 PIC X(8 VALUE' X XXX '. 05 PIC X(8 VALUE' XXXXX'. 05 PIC X(8 VALUE' XX '.
05 PIC X(8 VALUE' XX X'. 05 PIC X(8 VALUE' XX X'. 05 PIC X(8 VALUE' XX XX'. 05 PIC X(8 VALUE' XXX '. 05 PIC X(8 VALUE' XX X X'. 05 PIC X(8 VALUE' XXXX*. 05 PIC X(8 VALUE' XXXXX'. 05 PIC X(8 VALUE' XXX '. 05 PIC X(8 VALUE' XXX X'. 05 PIC X(8 VALUE' XXXX'. 05 PIC X(8 VALUE ' XXXXX'. 05 PIC X(8 VALUE ' XXXX '. 05 PIC X(8 VALUE' XXXXX'. 05 PIC X(8 VALUE' XXXXX '. 05 PIC X(8 VALUE' XXXXXX'. 05 PIC X(8 VALUE' X '.
05 PIC X(8 VALUE' X'. 05 PIC X(8 VALUE ' X'. 05 PIC X(8 VALUE ' XX'. 05 PIC X(8 VALUE' X '.
05 PIC X(8 VALUE' XX'. 05 PIC X(8 VALUE' XX'. 05 PIC X(8 VALUE' XXX'. 05 PIC X(8 VALUE' X X '. 05 PIC X(8 VALUE' X X X'. 05 PIC X(8 VALUE ' X XX'. 05 PIC X(8 VALUE' X XXX'. 05 PIC X(8 VALUE ' X XX '. 05 PIC X(8 VALUE ' X XXX'. 05 PIC X(8 VALUE' X XXX '. 05 PIC X(8 VALUE' X XXXX'. 05 PIC X(8 VALUE' XX '. 05 PIC X(8 VALUE ' XX X'. 05 PIC X(8 VALUE' XX X'. 05 PIC X(8 VALUE' XX XX'. 05 PIC X(8 VALUE' XXX '. 05 PIC X(8 VALUE' XXXX'. 05 PIC X(8 VALUE' XXXX'. 05 PIC X(8 VALUE' XXXXX'. 05 PIC X(8 VALUE' XXX '. 05 PIC X(8 VALUE' XXX X'. 05 PIC X(8 ) VALUE 'XXXX'. 05 PIC X(8 ) VALUE ' X XX XX'. 05 PIC X(8 ) VALUE 'XXXX '. 05 PIC X(8 ) VALUE ' X XXX X'. 05 PIC X(8 ) VALUE X XXXX '. 05 PIC X(8 ) VALUE ' X XXXXX'. 05 PIC X(8 ) VALUE 'XX '. 05 PIC X(8 ) VALUE 'XX X*. 05 PIC X(8 ) VALUE 'XX X'. 05 PIC X(8 ) VALUE 'XX XX'. 05 PIC X(8 ) VALUE XX X '.
05 PIC X(8 ) VALUE ' XX X X'. 05 PIC X(8 ) VALUE 'XX XX'.
05 PIC X(8 ) VALUE 'XX XXX'. 05 PIC X(8 ) VALUE 'XXX '. 05 PIC X(8 ) VALUE ' XX X X'. 05 PIC X(8 ) VALUE 'XXXX'.
05 PIC X(8 ) VALUE ' XX X XX'. 05 PIC X(8 ) VALUE 'XXXX '. 05 PIC X(8 ) VALUE ' XX XX X'. 05 PIC X(8 ) VALUE ' XX XXX '. 05 PIC X(8 ) VALUE ' XX XXXX'. 05 PIC X(8 ) VALUE 'XXX *.
05 PIC X(8 ) VALUE 'XXX X'.
05 PIC X(8 ) VALUE ' XXX X '. 05 PIC X(8 ) VALUE XXX XX'.
05 PIC X(8 ) VALUE 'XXXX '. 05 PIC X(8 ) VALUE ' XXX X X'. 05 PIC X(8 ) VALUE ' XXX XX '. 05 PIC X(8 ) VALUE ' XXX XXX'. 05 PIC X(8 ) VALUE 'XXXX '. 05 PIC X(8 ) VALUE 'XXXX X'. 05 PIC X(8 ) VALUE 'XXXXX'.
05 PIC X(8 ) VALUE ' XXXX XX'. 05 PIC X(8 ) VALUE 'XXXXX '.
05 PIC X(8 ) VALUE XXXXX X'. 05 PIC X(8 ) VALUE ' XXXXXX '.
05 PIC X(8 ) VALUE ' XXXXXXX'. 05 PIC X(8 ) VALUE x
05 PIC X(8 ) VALUE x X'. 05 PIC X(8 ) VALUE 'X X'. 05 PIC X(8 ) VALUE 'X XX'. 05 PIC X(8 ) VALUE 'X X '. 05 PIC X(8 ) VALUE 'X XX'. 05 PIC X(8 ) VALUE 'X XX'. 05 PIC X(8 ) VALUE x XXX'.
05 PICX(8 ) VALUE x X '. 05 PICX(8 VALUE 'X X X'. 05 PICX(8 VALUE 'X XX'. 05 PICX(8 VALUE 'X XXX'. 05 PICX(8 VALUE 'X XX '. 05 PICX(8 VALUE x XXX'. 05 PICX(8 VALUE 'X XXX'. 05 PICX(8 VALUE x XXXX'. 05 PICX(8 VALUE 'X X '. 05 PICX(8 VALUE 'X X X'. 05 PICX(8 VALUE 'X X X'. 05 PICX(8 VALUE X X XX'. 05 PICX(8 VALUE 'X XX '. 05 PICX(8 VALUE 'X XXX'. 05 PICX(8 VALUE 'X XXX'. 05 PICX(8 VALUE 'X XXXX'. 05 PICX(8 VALUE 'X XX '. 05 PICX(8 VALUE 'X XX X'. 05 PICX(8 VALUE 'X XXX'. 05 PICX(8 VALUE 'X XXXX'. 05 PICX(8 VALUE 'X XXX '. 05 PICX(8 VALUE 'X XXXX'. 05 PICX(8 VALUE 'X XXXX'. 05 PICX(8 VALUE 'X XXXXX'. 05 PICX(8 VALUE 'XX '. 05 PICX(8 VALUE 'XX X'. 05 PICX(8 VALUE 'XX X'. 05 PICX(8 VALUE 'XX XX'. 05 PICX(8 VALUE xx X '. 05 PICX(8 VALUE 'XX XX'. 05 PICX(8 VALUE 'XX XX'. 05 PICX(8 VALUE XX XXX'. 05 PICX(8 VALUE 'XXX '. 05 PICX(8 VALUE XXX X'. 05 PICX(8 VALUE 'XXXX'. 05 PICX(8 VALUE 'XXX XX'. 05 PICX(8 VALUE 'XXXX '. 05 PICX(8 VALUE 'X X XX X'. 05 PICX(8 VALUE x X XXX '. 05 PICX(8 VALUE 'X X XXXX'. 05 PICX(8 VALUE 'X XX '. 05 PICX(8 VALUE 'XXX X'. 05 PICX(8 VALUE X XX X '. 05 PICX(8 VALUE 'XXX XX'. 05 PICX(8 VALUE 'XXXX '. 05 PICX(8 VALUE 'X XX X X'. 05 PICX(8 VALUE 'X XX XX '. 05 PICX(8 VALUE 'X XX XXX'. 05 PIC X(8 ) VALUE 'XXXX '. 05 PIC X(8 ) VALUE 'XXXX X'. 05 PIC X(8 ) VALUE 'X XXXX '. 05 PIC X(8 ) VALUE 'XXXXXX'. 05 PIC X(8 ) VALUE 'XXXXX '. 05 PIC X(8 ) VALUE 'X XXXX X'. 05 PIC X(8 ) VALUE *X XXXXX '. 05 PIC X(8 ) VALUE 'X XXXXXX'.
05 PIC X(8 ) VALUE xx *. 05 PIC X(8 ) VALUE xx X'. 05 PIC X(8 ) VALUE 'XX X'. 05 PIC X(8 ) VALUE 'XX XX*.
05 PIC X(8 ) VALUE 'XX X '. 05 PIC X(8 ) VALUE 'XX XX'. 05 PIC X(8 ) VALUE 'XX XX'. 05 PIC X(8 ) VALUE 'XX XXX'. 05 PIC X(8 ) VALUE 'XX X '. 05 PIC X(8 ) VALUE 'XX X X'. 05 PIC X(8 ) VALUE 'XX XX '. 05 PIC X(8 ) VALUE 'XX XXX'. 05 PIC X(8 ) VALUE 'XX XX '. 05 PIC X(8 ) VALUE 'XX XXX'. 05 PIC X(8 ) VALUE 'XX XXX '. 05 PIC X(8 ) VALUE 'XX XXXX'. 05 PIC X(8 ) VALUE 'XX X '. 05 PIC X(8 ) VALUE 'XXX X'. 05 PIC X(8 ) VALUE 'XX X X '. 05 PIC X(8 ) VALUE 'XX X XX'. 05 PIC X(8 ) VALUE 'XXXX '. 05 PIC X(8 ) VALUE xx X X X*. 05 PIC X(8 ) VALUE 'XX X XX '. 05 PIC X(8 ) VALUE XX X XXX'. 05 PIC X(8 ) VALUE xxxx '. 05 PIC X(8 ) VALUE XX XX X'.
05 PIC X(8 ) VALUE 'XX XX X '. 05 PIC X(8 ) VALUE 'XX XX XX'.
05 PIC X(8 ) VALUE 'XX XXX '. 05 PIC X(8 ) VALUE 'XX XXX X'.
05 PIC X(8 ) VALUE 'XX XXXX '. 05 PIC X(8 ) VALUE XX XXXXX'. 05 PIC X(8 ) VALUE 'XXX '. 05 PIC X(8 ) VALUE 'XXX X'.
05 PIC X(8 ) VALUE 'XXX X '.
05 PIC X(8 ) VALUE 'XXX XX'. 05 PIC X(8 ) VALUE 'XXX X *.
05 PIC X(8 ) VALUE 'XXX X X'. 05 PIC X(8 ) VALUE xxx XX '. 05 PIC X(8 VALUE 'XXX XXX'. 05 PIC X(8 VALUE 'XXX X '. 05 PIC X(8 VALUE 'XXX X X'. 05 PIC X(8 VALUE 'XXX X X '. 05 PIC X(8 VALUE 'XXX X XX'. 05 PIC X(8 VALUE XXX XX '. 05 PIC X(8 VALUE XXX XX X'. 05 PIC X(8 VALUE 'XXX XXX '. 05 PIC X(8 VALUE 'XXX XXXX'. 05 PIC X(8 VALUE 'XXXX '. 05 PIC X(8 VALUE 'XXXX X'. 05 PIC X(8 VALUE 'XXXX X '. 05 PIC X(8 VALUE XXXX XX'.
05 PIC X(8 VALUE XXXX X '. 05 PIC X(8 VALUE 'XXXX X X'.
05 PIC X(8 VALUE 'XXXX XX '. 05 PIC X(8 VALUE 'XXXX XXX'. 05 PIC X(8 VALUE 'XXXXX '. 05 PIC X(8 VALUE 'XXXXX X'. 05 PIC X(8 VALUE 'XXXXX X '. 05 PIC X(8 VALUE 'XXXXX XX'. 05 PIC X(8 VALUE XXXXXX '. 05 PIC X(8 VALUE XXXXXX X'. 05 PIC X(8 VALUE XXXXXXX '. 05 PIC X(8 VALUE 'XXXXXXXX'.
31000-EXPAND-THE-BIT-MAP.
The following describes the preferable steps by which the character map is generated. For each byte of the bit-map, move the byte to the right-most byte (16) of P-X, a two-byte field which is redefined as a half-word binary number, P. Then use P as a subscript to find the parsing-pattern in table 18 which will contain a string of eight 'X's and/or spaces equivalent to the eight bits. Move that pattern into SEL-ELEM-ENTRIES-ALL which is the "byte-map" 22. MOVE IP66102-BIT-BYTE-1 TO 400-P-X
MOVE 500-PARSING-PATTERN (400-P + 1 )
ADD ONE BECAUSE A BIT PATTERN OF X'00' MUST RETRIEVE PARSING-PATTERN (1)
TO IP65504-SEL-ELEM-ENTRIES-ALL (1 :8)
MOVE IP66102-BIT-BYTE-2 TO 400-P-X
MOVE 500-PARSING-PATTERN (400-P + 1)
TO IP65504-SEL-ELEM-ENTRIES-ALL (9:8)
MOVE IP66102-BIT-BYTE-3 TO 400-P-X
MOVE 500-PARSING-PATTERN (400-P + 1)
TO IP65504-SEL-ELEM-ENTRIES-ALL (17:8)
MOVE IP66102-BIT-BYTE-4 TO 400-P-X
MOVE 500-PARSTNG-PATTERN (400-P + 1)
TO IP65504-SEL-ELEM-ENTRIES-ALL (25:8)
MOVE IP66102-BIT-BYTE-5 TO 400-P-X
MOVE 500-PARSLNG-PATTERN (400-P + 1 )
TO IP65504-SEL-ELEM-ENTRIES-ALL (33:8)
MOVE IP66102-BIT-BYTE-6 TO 400-P-X
MOVE 500-PARSLNG-PATTERN (400-P + 1 )
TO IP65504-SEL-ELEM-ENTRIES-ALL (41 :8)
MOVE IP66102-BIT-BYTE-7 TO 400-P-X
MOVE 500-PARSLNG-PATTERN (400-P + 1 )
TO IP65504-SEL-ELEM-ENTRIES-ALL (49:8)
MOVE IP66102-BIT-BYTE-8 TO 400-P-X
MOVE 500-PARSING-PATTERN (400-P + 1 )
TO IP65504-SEL-ELEM-ENTRIES-ALL (57:8)
MOVE IP66102-BIT-BYTE-9 TO 400-P-X
MOVE 500-P ARSING-P ATTERN (400-P + 1 )
TO IP65504-SEL-ELEM-ENTRIES-ALL (65:8)
MOVE IP66102-BIT-BYTE-10 TO 400-P-X
MOVE 500-PARSLNG-P ATTERN (400-P + 1)
TO IP65504-SEL-ELEM-ENTRIES-ALL (73:8)
MOVE IP66102-BIT-BYTE-11 TO 400-P-X
MOVE 500-P ARSING-P ATTERN (400-P + 1 )
TO IP65504-SEL-ELEM-ENTRIES-ALL (81 :8)
MOVE IP66102-BIT-BYTE-12 TO 400-P-X
MOVE 500-PARSLNG-P ATTERN (400-P + 1 )
TO IP65504-SEL-ELEM-ENTRIES-ALL (89:8)
MOVE IP66102-BIT-BYTE-13 TO 400-P-X
MOVE 500-PARSLNG-P ATTERN (400-P + 1)
TO IP65504-SEL-ELEM-ENTRIES-ALL (97:8)
MOVE IP66102-BIT-BYTE-14 TO 400-P-X
MOVE 500-P ARSING-P ATTERN (400-P + 1)
TO IP65504-SEL-ELEM-ENTRIES-ALL (105:8)
MOVE IP66102-BIT-BYTE-15 TO 400-P-X
MOVE 500-P ARSING-P ATTERN (400-P + 1 )
TO IP65504-SEL-ELEM-ENTRIES-ALL (113:8) MOVE IP66102-BIT-BYTE-16 TO 400-P-X
MOVE 500-P ARSING-P ATTERN (400-P + 1 )
TO IP65504-SEL-ELEM-ENTRIES-ALL (121:8)
This technique can preferably be used in the parsing of ISO 8583-1993 IPM financial transaction card originated messages, and can be incorporated into pre- edit and central site clearing systems. More generally it is useful in interpreting any bit-mapped record or message when implementation constraints dictate the use of COBOL.
The foregoing merely illustrates the principles of the invention. It will thus be appreciated that those skilled in the art will be able to devise numerous systems and methods which, although not explicitly shown or described herein, embody the principles of the invention and thus within the spirit and scope of the invention.

Claims

1. A method for extracting data from bit-map messages using COBOL statements, said messages having one of many possible bit-map combinations representing messages having varying fields and lengths, comprising the steps of: assigning a numeric value for each possible bit-map combination; generating a conversion table associating a byte-map for each of said values; identifying a bit-map within a particular message; converting said bit-map into an associated byte-map, said conversion step including generating a particular numeric value for said bit-map and associating said byte-map to said bit-map as a function of said conversion table; and determining, based on the resulting byte-map, the absence or presence of said data.
2. The method of claim 1 wherein said bit-map messages are transmitted in accordance with ISO 8583-1993.
3. The method of claim 2 wherein said determining step includes determining the presence or absence of a particular field in said particular message and, if present, the length of said field.
PCT/US2001/040644 2000-05-01 2001-05-01 A method for bit-map parsing using a cobol algorithm WO2001084456A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
AU5762801A AU5762801A (en) 2000-05-01 2001-05-01 A method for bit-map parsing using a cobol algorithm
CA002407730A CA2407730A1 (en) 2000-05-01 2001-05-01 A method for bit-map parsing using a cobol algorithm
EP01931168A EP1287464A1 (en) 2000-05-01 2001-05-01 A method for bit-map parsing using a cobol algorithm
JP2001581196A JP2003532237A (en) 2000-05-01 2001-05-01 Bitmap parsing method using Kobol algorithm
AU2001257628A AU2001257628B2 (en) 2000-05-01 2001-05-01 A method for bit-map parsing using a cobol algorithm

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US20155900P 2000-05-01 2000-05-01
US60/201,559 2000-05-01

Publications (1)

Publication Number Publication Date
WO2001084456A1 true WO2001084456A1 (en) 2001-11-08

Family

ID=22746315

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/040644 WO2001084456A1 (en) 2000-05-01 2001-05-01 A method for bit-map parsing using a cobol algorithm

Country Status (6)

Country Link
EP (1) EP1287464A1 (en)
JP (1) JP2003532237A (en)
AU (2) AU2001257628B2 (en)
CA (1) CA2407730A1 (en)
WO (1) WO2001084456A1 (en)
ZA (1) ZA200208653B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10761841B2 (en) 2018-10-17 2020-09-01 Denso International America, Inc. Systems and methods for identifying source code from binaries using machine learning

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151899A (en) * 1991-02-11 1992-09-29 Digital Equipment Corporation Tracking sequence numbers in packet data communication system
US5668803A (en) * 1989-06-29 1997-09-16 Symbol Technologies, Inc. Protocol for packet data communication system
US5838226A (en) * 1996-02-07 1998-11-17 Lutron Electronics Co.Inc. Communication protocol for transmission system for controlling and determining the status of electrical devices from remote locations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668803A (en) * 1989-06-29 1997-09-16 Symbol Technologies, Inc. Protocol for packet data communication system
US5151899A (en) * 1991-02-11 1992-09-29 Digital Equipment Corporation Tracking sequence numbers in packet data communication system
US5838226A (en) * 1996-02-07 1998-11-17 Lutron Electronics Co.Inc. Communication protocol for transmission system for controlling and determining the status of electrical devices from remote locations

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10761841B2 (en) 2018-10-17 2020-09-01 Denso International America, Inc. Systems and methods for identifying source code from binaries using machine learning

Also Published As

Publication number Publication date
ZA200208653B (en) 2003-05-19
JP2003532237A (en) 2003-10-28
AU5762801A (en) 2001-11-12
AU2001257628B2 (en) 2006-07-06
CA2407730A1 (en) 2001-11-08
EP1287464A1 (en) 2003-03-05

Similar Documents

Publication Publication Date Title
US7240048B2 (en) System and method of parallel pattern matching
US10169426B2 (en) Fast identification of complex strings in a data stream
JP3009727B2 (en) Improved data compression device
US20080319987A1 (en) System, method and program for creating index for database
EP1280050A2 (en) Data sort method, data sort apparatus, and data sort program
US20110099175A1 (en) Pluperfect hashing
Fraenkel et al. Bidirectional huffman coding
US5585793A (en) Order preserving data translation
CN102867049B (en) Chinese PINYIN quick word segmentation method based on word search tree
Srivastav et al. An Approach for fast Compressed text Matching and to avoid false Matching using WBTC and Wavelet Tree
WO2002052731A3 (en) System and method for compressing and decompressing data in real time
CN100361128C (en) Multi-keyword matching method for text or network content analysis
AU2001257628B2 (en) A method for bit-map parsing using a cobol algorithm
AU2001257628A1 (en) A method for bit-map parsing using a cobol algorithm
Morita et al. Fast insertion methods of a double‐array structure
CN113239052B (en) Alliance chain grouping method, device, equipment and medium
KR102103525B1 (en) CityGML file watermarking method, watermark extraction method and watermarking system using isomorphic characters
JP3210183B2 (en) Data compression method and apparatus
JP2018014003A (en) Item value extraction model learning device, item value extraction device, method and program
Singer A wavelet tree based fm-index for biological sequences in seqan
Larkin Variables and Reversibility in Object Oriented Regular Expressions
CA2873011C (en) Fast identification of complex strings in a data stream
CN112016328A (en) Text feature-based academic institution name entity alignment method
JPH0820940B2 (en) Attribute management method of indefinite byte length character in computer system.
Torres et al. The Self-Indexed Search Algorithm: A bit-level approach to minimal perfect hashing

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWE Wipo information: entry into national phase

Ref document number: 2002/08653

Country of ref document: ZA

Ref document number: 2407730

Country of ref document: CA

Ref document number: 200208653

Country of ref document: ZA

WWE Wipo information: entry into national phase

Ref document number: 2001257628

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 2001931168

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2001931168

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 2001931168

Country of ref document: EP